2

对于一个大学项目,我必须通过 glmnet 函数找到一个模型,它应该同时估计和选择变量。

类似于我在互联网上找到的一个示例,我有以下 R 代码:

install.packages("glmnet")

library(glmnet)

n =sample.size=54

npar=16

x=matrix(rnorm(n*npar), n, npar)

y <- sample(1:2, n, replace=TRUE)

fit_lasso <- glmnet(x,y,family="poisson")

fit_lasso

coef(fit_lasso, s=c(0.01,0.1))

predict(fit_lasso,newx=x[1:10,], s=c(0.01,0.005))

我得到了一些输出,但我真的看不出这个程序选择了哪些变量?

有人可以通过澄清我必须在哪里查看输出以获得所选变量来帮助我吗?

提前谢谢了。

亲切的问候,

Pieter 鲁汶天主教大学学生

4

1 回答 1

2

我认为您的主要困难是您的示例没有给出可识别的变量名称。如给定的,您的代码具有以下内容:

> coef(fit_lasso, s=c(0.01,0.1))
17 x 2 sparse Matrix of class "dgCMatrix"
                       1             2
(Intercept)  0.401355700  0.4418204837
V1           0.056974354  .           
V2          -0.084883137 -0.0005052818
V3           0.020746643  .           
V4           0.038719413  .           
V5           0.029015126  .           
V6          -0.002403163  .           
V7           0.015661047  .           
V8          -0.063540718  .           
V9           .            .           
V10         -0.005408579  .           
V11         -0.038804146  .           
V12          0.070699231  .           
V13          0.028897285  .           
V14          0.032890192  .          

所以对于 lambda=0.01,选择的变量是第 1 列中的非空值,对于 lambda=0.1,选择的变量只有截距和 V2。您可以通过分配列名来稍微澄清一下示例:

colnames(x) <- letters[1:16]

> coef(fit_lasso, s=c(0.01,0.1))
17 x 2 sparse Matrix of class "dgCMatrix"
                       1             2
(Intercept)  0.401355700  0.4418204837
a            0.056974354  .           
b           -0.084883137 -0.0005052818
c            0.020746643  .           
d            0.038719413  .           
e            0.029015126  .           
f           -0.002403163  .           
g            0.015661047  .           
h           -0.063540718  .           
i            .            .           
j           -0.005408579  .           
k           -0.038804146  .           
l            0.070699231  .           
m            0.028897285  .           
n            0.032890192  .           
o            .            .           
p            0.026287805  .           
于 2014-06-16T18:23:46.173 回答