View source: R/estimate_rank_double_posterior.R
estimate_rank_double_posterior | R Documentation |
Estimate the dimension of a signal-rich subspace in large, high-dimensional data.
estimate_rank_double_posterior(s, p, verbose, ...)
s |
a subspace class. |
p |
threshold for selecting changepoint. Default is 0.90. |
verbose |
output message |
... |
Extra parameters |
Returns a list with entries:
The number of degrees of freedom of x.
The number of dimensions of x.
A series of right singular vectors estimated.
Corrected population variance for Marcenko-Pastur distribution.
A logical value indicating whether the matrix x is transposed.
A data frame of scaled eigenvalues for specified components and corresponding dimensions.
A vector of corrected eigenvalues up to max(components).
A data frame of sampled expected eigenvalues from Marcenko-Pastur for specified components and corresponding dimensions.
A vector of samped expected eigenvalues from Marcenko-Pastur up to max(components).
Right singular vectors of x matrix for specified components.
Left singular vectors of x matrix or specified components.
Estimated signal subspace dimension.
Probability of change in mean and posterior means of eigenvalue difference between $x$ and $N$.
Probability of change in mean and posterior means of bcp_rirl.
We estimate the intrinsic dimension of a signal-rich subspace in large high-dimensional data by decomposing matrix into a signal-plus-noise space and approximate the signal-rich subspace with a rank K approximation \hat{x}=∑_{k=1}^{K}d_ku_k{v_k}^T. To estimate rank K, we propose a simple procedure assuming that matrix x is composed of a low-rank signal matrix S and an average general noise random matrix \bar{N}. It has been shown that the average eigenvalues of random matrices N follows a universal Marchenko-Pastur (MP) distribution. We hypothesize that the deviation of eigenvalues of x from the MP distribution indicates the intrinsic dimension of signal-rich subspace.
[RMTstat] for details of Marchenko-Pastur distribution.
https://dracodoc.wordpress.com/2014/07/21/ a-simple-algorithm-to-detect-flat-segments-in-noisy-signals/ for detection of flat and spike in noisy signals
x <- x_sim(n = 100, p = 150, ncc = 10, var = c(rep(10, 5), rep(1, 5))) results <- x %>% create_subspace(components = 8:30) %>% correct_eigenvalues() %>% estimate_rank_double_posterior() str(results) plot(results$subspace, changepoint = results$dimension, annotation = 10) modified_legacyplot(results$bcp_irl, annotation = 10) modified_legacyplot(results$bcp_post, annotation = 10)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.