Recompute eclairs after dropping features
Arguments
- ecl
covariance/correlation matrix as an eclairs object
- k
the rank of the low rank component
- drop
array of variable names to drop.
Value
eclairs decomposition for a subset of features
Details
Reform the dataset from the eclairs decomposition, drop features, then recompute the eclairs decomposition. If the original SVD/eigen was truncated, then the reconstruction of the original data will be approximate. Note that the target shrinkage matrix is the same as in ecl, so \(\nu\) is not recomputed from the retained features.
Examples
library(Rfast)
n <- 800 # number of samples
p <- 200 # number of features
# create correlation matrix
Sigma <- autocorr.mat(p, .9)
# draw data from correlation matrix Sigma
Y <- rmvnorm(n, rep(0, p), sigma = Sigma * 5.1, seed = 1)
rownames(Y) <- paste0("sample_", seq(n))
colnames(Y) <- paste0("gene_", seq(p))
# Correlation
#------------
# eclairs decomposition
Sigma.eclairs <- eclairs(Y, compute = "correlation")
# features to drop
drop <- paste0("gene_", 1:100)
# Compute SVD on subset of eclairs decomposition
ecl1 <- reform_decomp(Sigma.eclairs, drop = drop)
ecl1
#> Estimate correlation with low rank and shrinkage
#>
#> Original data dims: 800 x 100
#> Low rank component: 100
#> lambda: 0.0144
#> nu: 1
#> Avg corr (EB): 0.16
#> Avg corrSq (EB): 0.0807
#> logLik: -55420