fill.SVDimpute {filling}R Documentation

Iterative Regression against Right Singular Vectors

Description

Singular Value Decomposition (SVD) is the best low-rank approximation of a given matrix. fill.SVDimpute exploits such idea. First, it starts with simple filling using column mean values for filling. Second, it finds SVD of a current matrix. Then, each row vector is regressed upon top-k right singular vectors. Missing entries are then filled with predicted estimates.

Usage

fill.SVDimpute(A, k = ceiling(ncol(A)/2), maxiter = 100, tol = 0.01)

Arguments

A

an (n\times p) partially observed matrix.

k

the number of regressors to be used.

maxiter

maximum number of iterations to be performed.

tol

stopping criterion for an incremental progress.

Value

a named list containing

X

an (n\times p) matrix after completion.

References

Troyanskaya O, Cantor M, Sherlock G, Brown P, Hastie T, Tibshirani R, Botstein D, Altman RB (2001). “Missing value estimation methods for DNA microarrays.” Bioinformatics, 17(6), 520–525. ISSN 1367-4803.

See Also

fill.KNNimpute

Examples

## Not run: 
## load image data of 'lena128'
data(lena128)

## transform 5% of entries into missing
set.seed(5)
A <- aux.rndmissing(lena128, x=0.05)

## apply the method with 3 different number of regressors
fill1 <- fill.SVDimpute(A, k=5)
fill2 <- fill.SVDimpute(A, k=25)
fill3 <- fill.SVDimpute(A, k=50)

## visualize only the last ones from each run
opar <- par(no.readonly=TRUE)
par(mfrow=c(2,2), pty="s")
image(A, col=gray((0:100)/100), axes=FALSE, main="5% missing")
image(fill1$X, col=gray((0:100)/100), axes=FALSE, main="5 regressors")
image(fill2$X, col=gray((0:100)/100), axes=FALSE, main="25 regressors")
image(fill3$X, col=gray((0:100)/100), axes=FALSE, main="50 regressors")
par(opar)

## End(Not run)



[Package filling version 0.2.3 Index]