如何处理缺失值,以便为使用LASSO进行特征选择准备数据?


11

我的情况:

  • 小样本数量:116
  • 二元结果变量
  • 解释变量的长列表:44
  • 解释变量并非来自我的头上;他们的选择基于文献。
  • 样本中的大多数情况和大多数变量的值都缺失。

选择特征的方法:LASSO

R的glmnet程序包不允许我运行glmnet例程,这显然是由于我的数据集中缺少值。似乎有多种方法可以处理丢失的数据,所以我想知道:

  • LASSO是否对我可以使用的估算方法施加任何限制?
  • 插补方法的最佳选择是什么?理想情况下,我需要一种可以在SPSS(最好)或R上运行的方法。

UPDATE1:从下面的一些答案中可以明显看出,在考虑插补方法之前,我确实处理了一些更基本的问题。我想在此添加新的问题。在回答中建议将其编码为常数值并创建一个新变量,以处理“不适用”值和组套索的用法:

  • 您是否可以说,如果我使用组LASSO,我将能够对连续预测变量和分类预测变量使用建议的方法?如果是这样,我认为这相当于创建一个新类别-我很警惕这可能会带来偏差。
  • 有人知道R的glmnet软件包是否支持组LASSO吗?如果没有,有人会建议将逻辑回归与之结合的另一种方法吗?在CRAN资料库中可以找到提及LASSO组的几个选项,最适合我的情况的建议是什么?也许是SGL?

这是我的上一个问题(如何从我的原始长列表中选择变量的子集以执行逻辑回归分析?)的后续文章。

OBS:我不是统计学家。


(1)最好的估算方法取决于缺失值的比例和模式,变量之间的关系以及您准备对缺失值的原因做出哪些假设。(2)任何一种插补方法均可用于向LASSO提供输入;困难在于评估归因如何影响结果。我不知道如何将多个插补与LASSO结合使用(毫无疑问,有人这样做),但是对来自不同插补运行的结果进行非正式比较(通常选择相同的预测变量吗?)仍然可以提供信息。
Scortchi-恢复莫妮卡

@Scortchi:我大多数丢失的值都属于“不适用”类别。例如:在变量“家庭中成年女性的年龄”中,成年男性为寡妇。实际上,我想我需要退后一步:是否应该将连续变量中的0值视为缺失值?例如:0年教育,0至14至60岁的家庭成员。
2014年

很难想象这样一种情况,您希望将其视为关于缺席女性的未知事实,而不是关于家庭的已知事实。关于零的问题很难理解:您是在问,例如,没有一个受教育年限是难以置信的价值,还是可以用0来编码缺失的价值?(然后我怎么知道?)当然没有普遍的理由将0视为缺失。
Scortchi-恢复莫妮卡

@Scortchi:关于女性年龄变量,我明白你的意思了。但是问题就变成了:如果没有女性身份,我将如何编码缺席的女性案件?关于零:是的,这正是我的问题,如果不清楚,请抱歉。我认为该程序在处理零值时可能会遇到问题,并且可能无法“理解”我的意思。
2014年

您可以将其编码为任何常量值,并为存在/不存在引入指标变量(和使用组LASSO)。没有理由为什么LASSO或任何其他回归程序应该错误地为预测变量处理零值。[请不要采取错误的方式,但这是非常基本的问题,建议如果这很有趣,则可能要从简单的问题开始,或者如果是真的,则可能要咨询统计学家。]
Scortchi-恢复莫妮卡

Answers:


11

当连续的预测变量包含“不适用”值时,使用两个变量对其进行编码通常很有用:X

X1个={C什么时候 X 不适用X除此以外

其中是常数,&C

X2={1个什么时候 X 不适用0除此以外

假设响应的线性预测变量为

η=β0+β1个X1个+β2X2+

解析为

η=β0+β1个X1个+

当被测量时,或X

η=β0+β1个C+β2+

当x不适用时。的选择是任意的,&不会影响截距或斜率;描述的效果的存在‘不适用’与当。Cβ0β1个β2XX=C

当响应根据的未知值而变化时,这不是一种合适的方法:“缺失”组的可变性将被夸大,并且由于混杂因素,其他预测变量的系数估计也会出现偏差。更好地估算缺失值。X

LASSO的使用带来两个问题:

  1. 的选择会影响结果,因为所应用的收缩量取决于系数估计的大小。C
  2. 您需要确保和都在所选模型中或不在所选模型中。X1个X2

您可以通过将LASSO组与包含和的组一起使用来解决这两个问题: -norm惩罚应用于正交归一化矩阵的 -norm。(分类预测是典范组LASSO -你会只是代码“不适用”作为一个单独的电平,由于经常在unpenalized回归完成。)参见迈耶等人(2008),JRSS B,70,1“,则逻辑回归的套索”grplassoX1个X2大号1个大号2[X1个 X2]


有人知道R的glmnet软件包是否支持组LASSO吗?如果没有,有人会建议将逻辑回归与之结合的另一种方法吗?可以在CRAN信息库中找到几个提及LASSO组的选项,是否有最适合我的情况的建议?也许是SGL?
2014年

因此,您会说,如果我使用组LASSO,我将能够对连续预测变量和分类预测变量使用您建议的方法?
2014年

5

多重插补永远不是一个坏方法。您也可以执行“最大信息最大可能性”。在这里这里都很好的评论和比较。

但是,如果您要走这条路线,请考虑使用Stan来将ML归因与您的回归同时作为单个贝叶斯模型拟合,因为LASSO还是贝叶斯回归的特例


我误解了多重插补方法,现在我发现它适用于我的情况。为了反映这一点,我编辑了我的问题。您是否知道SPSS或R是否运行您提到的两个选项?
2014年

1
有一个R包mi可能会对您有帮助。
shadowtalker 2014年

2
您可以通过R运行Stan(请参阅RStan)。
Scortchi-恢复莫妮卡

R的其他多个插补包包括Ameliamice
Sycorax说恢复Monica

0

Statistics中的CATREG命令使用LASSO处理丢失的数据。您可以按列表方式排除个案,也可以使用过程归因法(尽管它的名称表明它适用于类别变量),但可以将小数位数设置为“数值”以处理连续的个案。


这是SAS PROC CATREG,我猜是吗?
Ben Bolker 2014年

@JKP:实际上,我遇到了这个命令。但是,考虑到我的输出变量是二进制的,我假设逻辑回归比分类回归(CATREG)更合适-是吗?此外,CATREG中的选项似乎相当有限-您只能在排除个案,以平均值替换缺失值或创建额外类别之间进行选择。
2014年

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.