Implements one of three variance estimation procedures for matrix data sets on each matricization of a data tensor. These estimates are then averaged to come up with a final variance estimate.

tensor_var_est(Y, sig_method = c("soft", "mp", "naive"), r = NULL)

Arguments

Y

An array of numerics. The data tensor. Assumed to have a mean that is low multilinear rank.

sig_method

A string. The variance estimation procedure to use on each matricization of the data tensor. Either "soft" for calling sig_soft, "mp" for calling sig_mp, or "naive" for calling sig_naive. See those functions for descriptions of these procedures.

r

A vector of positive integers. The known multilinear rank of the mean tensor. Only needed if sig_method == "naive".

Value

sig2_est A positive numeric. The final variance estimate.

sig2_vec A vector of positive numerics. The estimates of the variance when using each matricization of the data tensor. If these numbers are wildly different, then you should be skeptical of this variance estimation approach.

Details

If a data tensor has low multilinear rank mean, then this function will use matrix-specific variance estimation procedures along each matricization of the data tensor to estimate the variance. These estimates are then averaged to provide the final estimate of the variance.

References

Choi, Yunjin, Jonathan Taylor, and Robert Tibshirani. "Selecting the number of principal components: Estimation of the true rank of a noisy matrix." arXiv preprint arXiv:1410.8260 (2014).

Gavish, M., & Donoho, D. L. (2014). The optimal hard threshold for singular values is 4/sqrt(3). Information Theory, IEEE Transactions on, 60(8), 5040-5053.

See also

sig_soft for the soft-thresholding procedure, sig_mp for a procedure based on a specific asymptotic framework, and sig_naive for a basic estimator when the multilinear rank is known.