# KOMMANDOER TIL FORELESNINGENE FOR UKE 9 # =============== # EKSEMPEL: DIABETIKERE # Les inn dataene: diabetes=read.table("http://www.uio.no/studier/emner/matnat/math/STK2120/v16/diabetes.txt",header=T) # Vi vil bruke R-pakken "glmnet" # (som maa installeres hvis du bruker egen PC) library(glmnet) # Vi maa foest definere responsen og designmatrisen # (uten kolonne av 1-tall for konstantleddet) y=diabetes$y x=model.matrix(y~.,data=diabetes)[,-1] #------------ # Gjoer foerst ridge regresjon ridge.mod=glmnet(x,y,alpha=0) # Plott av estimatene som en funksjon av log-lambda: plot(ridge.mod,xvar="lambda") # For aa bestemme beste verdi av lambda gjoer vi en # "leave-one-out" kryssvalidering: cv.ridge=cv.glmnet(x,y,alpha =0,nfolds=length(y),grouped=F) plot(cv.ridge) # Ride estimatene for beste verdi av lambda: coef(cv.ridge,s="lambda.min") # -------- # Gjoer saa lasso lasso.mod=glmnet(x,y,alpha=1) # Plott av estimatene som en funksjon av log-lambda: plot(lasso.mod,xvar="lambda") # For aa bestemme beste verdi av lambda gjoer vi en # "leave-one-out" kryssvalidering: cv.lasso=cv.glmnet(x,y,alpha=1,nfolds=length(y),grouped=F) plot(cv.lasso) # Lasso estimatene for beste verdi av lambda: coef(cv.lasso,s="lambda.min")