primePCA {primePCA}R Documentation

primePCA algorithm

Description

primePCA algorithm

Usage

primePCA(
  X,
  K,
  V_init = NULL,
  thresh_sigma = 10,
  max_iter = 1000,
  thresh_convergence = 1e-05,
  thresh_als = 1e-10,
  trace.it = F,
  prob = 1,
  save_file = "",
  center = T,
  normalize = F
)

Arguments

X

an n-by-d data matrix with NA values

K

the number of the principal components of interest

V_init

an initial estimate of the top K eigenspaces of the covariance matrix of X. By default, primePCA will be initialized by the inverse probability method.

thresh_sigma

used to select the "good" rows of X to update the principal eigenspaces \sigma_* in the paper).

max_iter

maximum number of iterations of refinement

thresh_convergence

The algorithm is halted if the Frobenius-norm sine-theta distance between the two consecutive iterates

thresh_als

This is fed into thresh in svd.als of softImpute. is less than thresh_convergence.

trace.it

report the progress if trace.it = TRUE

prob

probability of reserving the "good" rows. prob == 1 means to reserve all the "good" rows.

save_file

the location that saves the intermediate results, including V_cur, step_cur and loss_all, which are introduced in the section of returned values. The algorithm will not save any intermediate result if save_file == "".

center

center each column of X if center == TRUE. The default value is TRUE.

normalize

normalize each column of X such that its sample variance is 1 if normalize == TRUE. The default value is False.

Value

a list is returned, with components V_cur, step_cur and loss_all. V_cur is a d-by-K matrix of the top K eigenvectors. step_cur is the number of iterations. loss_all is an array of the trajectory of MSE.

Examples

X <- matrix(1:30 + .1 * rnorm(30), 10, 3)
X[1, 1] <- NA
X[2, 3] <- NA
v_tilde <- primePCA(X, 1)$V_cur

[Package primePCA version 1.2 Index]