Summary

hose is a package designed for working with higher-order spectral estimators, which were first introduced in Gerard and Hoff (2017). These estimators are based on the higher-order singular value decomposition of De Lathauwer, De Moor, and Vandewalle (2000) and are useful when your data exhibit tensor-specific structure, such as having approximately low multilinear rank. This code will allow you to:

  • Calculate Stein’s unbiased risk estimate (SURE) for all higher-order spectral estimators that are weakly differentiable and satisfy mild integrability conditions.
  • Calculate the mode-specific soft-thresholding estimator that minimizes the SURE using a coordinate descent algorithm.
  • Iterate through all the possible multilinear ranks of a mean tensor and choose the multilinear rank the minimizes the SURE.
  • Calculate a generalized SURE, motivated by generalized cross validation (Josse and Sardy 2016), for all higher-order spectral estimators.
  • Calculate the SURE of estimators that apply higher-order spectral shrinkage to sub-tensors of the overall data tensor.
  • Calculate the SURE for estimators that individually shrink elements of the core array of the HOSVD of the data tensor.
  • Non-parametrically estimate the variance to use in these SURE procedures.

The main functions are:

  • get_c(): Pre-format the data before applying mode-specific singular value shrinkage.
  • tensor_var_est(): Estimate the variance of the data from multiple options.
  • soft_coord(): Estimate the underlying low-rank mean tensor via soft-thresholding.

Citation

If you find these methods useful, please cite

Gerard, David, and Peter Hoff. 2017. “Adaptive Higher-Order Spectral Estimators.” Electron. J. Statist. 11 (2). The Institute of Mathematical Statistics; the Bernoulli Society: 3703–37. https://doi.org/10.1214/17-EJS1330.

Or, using BibTex:

Installation

You can install from CRAN in the usual way:

Or, to install the latest (unstable) version, run the following code in R:

install.packages(c("tensr", "softImpute", "RMTstat", "devtools"))
devtools::install_github("dcgerard/hose")

Vignette

I’ve provided a vignette demonstrating the methods available in hose. You can find it here. Or you can build the vignette on install with

install.packages("devtools")
devtools::install_github("dcgerard/hose", build_vignettes = TRUE)

and access the vignette by running the following code in R:

utils::vignette("sure_example", package = "hose")

References

De Lathauwer, L., B. De Moor, and J. Vandewalle. 2000. “A Multilinear Singular Value Decomposition.” SIAM Journal on Matrix Analysis and Applications 21 (4): 1253–78. https://doi.org/10.1137/S0895479896305696.

Gerard, David, and Peter Hoff. 2017. “Adaptive Higher-Order Spectral Estimators.” Electron. J. Statist. 11 (2): 3703–37. https://doi.org/10.1214/17-EJS1330.

Josse, Julie, and Sylvain Sardy. 2016. “Adaptive Shrinkage of Singular Values.” Statistics and Computing 26 (3): 715–24. https://doi.org/10.1007/s11222-015-9554-9.