library(fields) library(glmnet) load(file="JanFeb.rda") ## load data plot(X[1,],type="l") ## plot predictor values for first observation image( matrix( X[1,], nrow=144)) ## plot as matrix image.plot( matrix(cor(X, Y),nrow=144)) ## plot X^t Y [or cor(X,Y)] ridge <- glmnet( X,Y, alpha=0) ## compute ridge solution path plot(ridge) ## plot full path (solution for all values of lambda) sv <- svd(X,nu=4,nv=4) ## compute SVD decomposition par(mfrow=c(2,2)) image.plot( matrix( sv$v[,1],nrow=144)) ## first eigenvector of X^tX image.plot( matrix( sv$v[,2],nrow=144)) ## second ... image.plot( matrix( sv$v[,3],nrow=144)) image.plot( matrix( sv$v[,4],nrow=144)) cv <- cv.glmnet(X,Y,alpha=0) ## compute cross-validated error estimate plot(cv,log="y") ## plot estimate of loss as function lambda beta <- coef(cv,s=c("lambda.1se")) ## pick largest lambda-value such that CV-error is statistically identical to minimum betamin <- coef(cv,s=c("lambda.min")) ## pick the value that minimizes the CV-error betaols <- coef(ridge,s=0.01) ## pick very small value of lambda par(mfrow=c(2,2)) ## visualize the different solutions image.plot( matrix(cor(X,Y),nrow=144)) image.plot( matrix(beta[-1],nrow=144)) image.plot( matrix(betamin[-1],nrow=144)) image.plot( matrix(betaols[-1],nrow=144))