簡體   English   中英

在 R 中同時進行多個 LASSO 回歸

[英]Simultaneously multiple LASSO regressions in R

我正在嘗試在 R 中執行多個LASSO 回歸。要計算模型的系數,我使用以下代碼

library(glmnet)
A <- as.matrix(data)
fit_lasso <- glmnet(A[,-1] , A[,1] , standardize = TRUE , alpha = 0.9) #LASSO model
print(fit_lasso) #LASSO model for different lambdas

cvfit <- cv.glmnet( A[,-1] , A[,1] , standardize = TRUE , type.measure = "mse" , nfolds = 5 , alpha = 0.9) 
cvfit    
cvfit$lambda.min
coef(cvfit , s = "lambda.min") 

這導致(除其他外)以下

> coef(cvfit , s = "lambda.min")
15 x 1 sparse Matrix of class "dgCMatrix"
                        1
(Intercept) -4.455556e+02
X2           .           
X3           2.869015e-05
X4           2.325949e-10
X5           .           
X6           5.955569e+00
X7           .           
X8           1.043362e+01
X9           .           
X10          3.313007e-01
X11          .           
X12          .           
X13          .           
X14          2.129794e-01
X15          .     

glmnet(A[,-1] , A[,1] , ...)語句中, A[,-1]表示所有解釋性X變量, A[,1]表示響應Y變量。 我想創建一個循環,為所有可能的變量組合計算並顯示與上述相同的結果(例如,第一列作為響應變量,所有其他列作為解釋變量,第二列作為響應變量,所有其他列作為解釋性的)。 使用for statement我設法創建了以下內容,這似乎不起作用。 有人可以幫我弄清楚嗎?

library(readxl)
data <-read_excel("example.xlsx")
data


library(glmnet)
A <- as.matrix(data)
for(i in 1:ncol(data)) fit_lasso[i] <- glmnet(A[,-i] , A[,i] , standardize = TRUE , alpha = 0.9)


for(i in 1:ncol(data)) cvfit[i] <- cv.glmnet( A[,-i] , A[,i] , standardize = TRUE , type.measure = "mse" , nfolds = 5 , alpha = 0.9) 


cvfit$lambda.min

coef(cvfit[i] , s = "lambda.min") 

試試這個:

results <- lapply(seq_len(ncol(A)), function(i) {
  list(
    fit_lasso = glmnet(A[, -i], A[, i], standardize = T, alpha = 0.9), 
    cvfit = cv.glmnet(A[, -i] , A[, i] , standardize = TRUE , type.measure = "mse" , nfolds = 5 , alpha = 0.9)
  )
})

要獲得一組結果:

# Must use "[[" and "]]" here. 
results[[3L]]$cvfit$lambda.min
coef(results[[3L]]$cvfit, s = "lambda.min") 

輸出

> results[[3L]]$cvfit$lambda.min
[1] 1.542775
> coef(results[[3L]]$cvfit, s = "lambda.min") 
11 x 1 sparse Matrix of class "dgCMatrix"
                      1
(Intercept)  52.7322579
mpg           .        
cyl          15.1087471
hp            0.5848973
drat          .        
wt           72.9452152
qsec         -9.1803140
vs          -11.6195183
am            .        
gear          .        
carb        -23.8347410

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM