如何使用glmnet呈现套索的结果?


40

我想从30个独立变量中找到连续因变量的预测变量。我正在使用在R 中的glmnet包中实现的Lasso回归。这是一些伪代码:

# generate a dummy dataset with 30 predictors (10 useful & 20 useless) 
y=rnorm(100)
x1=matrix(rnorm(100*20),100,20)
x2=matrix(y+rnorm(100*10),100,10)
x=cbind(x1,x2)

# use crossvalidation to find the best lambda
library(glmnet)
cv <- cv.glmnet(x,y,alpha=1,nfolds=10)
l <- cv$lambda.min
alpha=1

# fit the model
fits <- glmnet( x, y, family="gaussian", alpha=alpha, nlambda=100)
res <- predict(fits, s=l, type="coefficients")
res 

我的问题是如何解释输出:

  • 可以说在最终输出中所有显示系数不同于零的预测变量都与因变量相关吗?

  • 就期刊出版物而言,这将是足够的报告吗?还是期望为系数的显着性提供检验统计量?(上下文是人类遗传学)

  • 计算p值或其他检验统计量以声明重要性是否合理?那怎么可能呢?是否在R中实现了过程?

  • 每个预测变量的简单回归图(数据点以线性拟合绘制)是否是可视化此数据的合适方法?

  • 也许有人可以提供一些简单的已发表文章示例,以显示在一些真实数据的背景下使用Lasso的情况以及如何在期刊中进行报告?


为什么在“适合模型”部分下运行glmnet?您也不能将其cv用于预测步骤吗?
bourbaki4481472

Answers:


22

我的理解是,您不必根据变量的系数是否为非零就说出哪些变量“重要”或产生“实际的”影响。举一个极端的例子,如果您有两个完全共线的预测变量,套索将基本上随机选择其中一个以获得完整权重,而另一个则获得零权重。

本文包括glmnet的一位作者,提出了一些基于glmnet的分析(尤其是:简介,第2.3和4.3节以及表4和5)。看了一眼,似乎他们没有直接从glmnet模型计算P值。他们确实使用其他方法计算了两种不同的P值,但看起来他们并不完全信任其中的一种。

我不确定您对绘图方法的建议是100%,但是我认为这听起来很合理。

希望能有所帮助。


1
嗨,大卫!感谢您的回答。使用LASSO选择具有非零系数的预测变量,然后仅在线性回归模型中使用那些预测变量来获得有关捕食者重要性的p值,是否会反对?例如,如本文所述:ncbi.nlm.nih.gov/pmc/articles/PMC3412288
jokel,2012年

4
@jokel我认为您的建议是“松弛套索”的一种特殊情况,它可以很好地用于某些目的。不过,我不确定您是否可以相信从上述过程中获得的p值,因为您的F统计量或t统计量不会“知道”您所做的变量选择步骤,并且I型错误率将被夸大。考虑这种情况的一种方法:F统计量的正确自由度是多少?LASSO回归中的变量总数?二次回归中的变量数是多少?介于两者之间?
戴维·哈里斯

正确-因此这似乎也不是有效的方法。您是否还有其他想法如何从300个独立变量中找到重要的预测变量(如上例中的n >> p)?这样一来,我最终可以宣称:“预测变量X与因变量Y显着相关”?
jokel 2012年

对于我不知道如何进行计算的所有问题,我的答案是进行随机化。一种可能是重新采样数据集的行(例如使用引导程序),然后重复运行LASSO分析。变量包含在模型中的频率越高,就越可能变得重要。更好的选择可能涉及对行列进行采样,这可能有助于避免“掩盖”效果。布雷曼(Breiman)在[此pdf]中提出了类似建议(图2附近)(faculty.smu.edu/tfomby/eco5385/lecture/…)。
戴维·哈里斯

9

我只想指出,最近有一些工作试图开发专门针对LASSO的测试统计信息,其中考虑了正在执行的功能选择:

套索的显着性检验。理查德·洛克哈特(Richard Lockhart),乔纳森·泰勒(Jonathan Taylor),瑞安·J·蒂布希拉尼(Ryan J. http://arxiv.org/abs/1301.7161

但是,我还没有在应用程序工作中使用过它,但是肯定会使用引导程序。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.