networkEiganat.Rd
Decomposes a matrix into sparse eigenevectors to maximize explained variance.
networkEiganat( Xin, sparseness = c(0.1, 0.1), nvecs = 5, its = 5, gradparam = 1, mask = NA, v, prior, pgradparam = 0.1, clustval = 0, downsample = 0, doscale = T, domin = T, verbose = F, dowhite = 0, timeme = T, addb = T, useregression = T )
Xin | n by p input images , subjects or time points by row , spatial variable lies along columns |
---|---|
sparseness | sparseness pair c( 0.1 , 0.1 ) |
nvecs | number of vectors |
its | number of iterations |
gradparam | gradient descent parameter for data |
mask | optional antsImage mask |
v | the spatial solultion |
prior | the prior |
pgradparam | gradient descent parameter for prior term |
clustval | integer greater than or equal to zero |
downsample | bool |
doscale | bool |
domin | bool |
verbose | bool |
dowhite | bool |
timeme | bool |
addb | bool |
useregression | bool |
outputs a decomposition of a population or time series matrix
Avants BB
if (FALSE) { mat<-replicate(100, rnorm(20)) mydecom<-networkEiganat( mat, nvecs=5 ) ch1<-usePkg('randomForest') ch2<-usePkg('BGLR') if ( ch1 & ch2 ) { data(mice) snps<-quantifySNPs( mice.X ) numericalpheno<-as.matrix( mice.pheno[,c(4,5,13,15) ] ) numericalpheno<-residuals( lm( numericalpheno ~ as.factor(mice.pheno$Litter) ) ) phind<-3 nfolds<-6 train<-sample( rep( c(1:nfolds), 1800/nfolds ) ) train<-( train < 4 ) lowr<-lowrankRowMatrix(as.matrix( snps[train,] ),900) snpdS<-sparseDecom( lowr , nvecs=2 , sparseness=( -0.001), its=3 ) snpdF<-sparseDecom( lowrankRowMatrix(as.matrix( snps[train,] ),100), nvecs=2 , sparseness=( -0.001), its=3 ) projmat<-as.matrix( snpdS$eig ) projmat<-as.matrix( snpdF$eig ) snpdFast<-networkEiganat( as.matrix( snps[train,] ), nvecs=2 , sparseness=c( 1, -0.001 ) , downsample=45, verbose=T, its=3, gradparam=10 ) snpdSlow<-networkEiganat( as.matrix( snps[train,] ), nvecs=2 , sparseness=c( 1, -0.001 ) , downsample=0, verbose=T, its=3, gradparam=10 ) snpd<-snpdSlow snpd<-snpdFast projmat<-as.matrix( snpd$v ) snpdF<-sparseDecom( lowrankRowMatrix(as.matrix( snps[train,] ),10) , nvecs=2 , sparseness=( -0.001), its=3 ) projmat<-as.matrix( snpdS$eig ) snpse<-as.matrix( snps[train, ] ) %*% projmat traindf<-data.frame( bmi=numericalpheno[train,phind] , snpse=snpse) snpse<-as.matrix( snps[!train, ] ) %*% projmat testdf <-data.frame( bmi=numericalpheno[!train,phind] , snpse=snpse ) myrf<-glm( bmi ~ . , data=traindf ) preddf<-predict(myrf, newdata=testdf ) cor.test(preddf, testdf$bmi ) if ( usePkg('visreg') ) { mydf<-data.frame( PredictedBMIfromSNPs=preddf, RealBMI=testdf$bmi ) mymdl<-lm( PredictedBMIfromSNPs ~ RealBMI, data=mydf) visreg::visreg(mymdl) } ########### # vs glmnet # ########### haveglm<-usePkg('glmnet') if ( haveglm ) { kk<-glmnet(y=numericalpheno[train,phind],x=snps[train,] ) ff<-predict(kk,newx=snps[!train,]) cor.test(ff[,25],numericalpheno[!train,phind]) mydf<-data.frame( PredictedBMIfromSNPs=ff[,25], RealBMI=testdf$bmi ) mymdl<-lm( PredictedBMIfromSNPs ~ RealBMI, data=mydf) } # glmnet check } # ch1 and ch2 ########### }