load("RosenwaldData.RData") n <- dim(X)[1] p <- dim(X)[2] library(glmnet) # Lasso las<- glmnet(X,Y,family="gaussian") set.seed(123) cv.las <- cv.glmnet(X,Y,alpha = 1,family="gaussian") lambda <- cv.las$lambda.min lambdas <- las[5]$lambda co <- coef(cv.las,s=lambda) beta <- matrix(co[,1][1:p]) f <- min(cv.las$cvm) S0 <- which(beta != 0) s0 <- length(S0) beta_S0 <- beta[S0] # Ridge Schaetzer als Initialschaetzer fuer Adaptive Lasso ridge <- glmnet(X,Y, alpha=0, family="gaussian") cv.ridge <- cv.glmnet(X,Y, alpha=0,family="gaussian") #Adaptive Lasso mit Ridge (Gamma=1) w2 <- 1/abs(matrix(coef(cv.ridge,s=cv.ridge$lambda.min))[,1][1:p]) adlas2 <- glmnet(X,Y,penalty.factor = w2, family="gaussian") set.seed(123) cv.adlas2 <- cv.glmnet(X,Y,alpha = 1,penalty.factor = w2, family="gaussian") lambda2 <-cv.adlas2$lambda.min co2 <- coef(adlas2, s=lambda2) beta2 <- matrix(co2[,1][1:p]) f2 <- min(cv.adlas2$cvm) S02 <- which(beta2 != 0) s02 <- length(S02) beta2_S0 <- beta2[S02] #Adaptive Lasso mit Ridge (Gamma=2) w3 <- 1/abs(matrix(coef(cv.ridge,s=cv.ridge$lambda.min))[,1][1:p])^2 adlas3 <- glmnet(X,Y,penalty.factor = w3, family="gaussian") set.seed(123) cv.adlas3 <- cv.glmnet(X,Y,alpha = 1, penalty.factor = w3, family="gaussian", ) lambda3 <-cv.adlas3$lambda.min co3 <- coef(adlas3, s=lambda3) beta3 <- matrix(co3[,1][1:p]) f3 <- min(cv.adlas3$cvm) S03 <- which(beta3 != 0) s03 <- length(S03) beta3_S0 <- beta3[S03] ##Plots## #Koeffizienten gegen L1 Norm plot(las, main="Lasso") plot(adlas2, main = "Adaptive Lasso", sub="Gewichte mit Ridge (Lambda mit kleinstem Fehler, Gamma = 1)") plot(adlas3, main = "Adaptive Lasso", sub="Gewichte mit Ridge (Lambda mit kleinstem Fehler, Gamma = 2)") #Mittlerer Quadratischer Fehler plot(cv.las, main="Lasso") plot(cv.adlas2, main = "Adaptive Lasso", sub="Gewichte mit Ridge (Lambda mit kleinstem Fehler, Gamma = 1)") plot(cv.adlas3, main = "Adaptive Lasso", sub="Gewichte mit Ridge (Lambda mit kleinstem Fehler, Gamma = 2)")