是否有R函数对多个估算数据集执行LASSO回归并将结果汇​​总在一起?

时间:2019-01-20 23:52:22

标签: r regression imputation lasso

我有一个数据集,其中有283个观测值,包含60个变量。我的结果变量是二分法(诊断),可以是两种疾病中的任何一种。我正在比较经常重叠很多的两种类型的疾病,并且我试图找到可以帮助区分这些疾病的特征。我知道LASSO逻辑回归是解决此问题的最佳方法,但是不能在不完整的数据集上运行。

因此,我用R中的MICE软件包估算了丢失的数据,发现大约40个估算值对我拥有的丢失数据量有好处。

现在,我想对所有40个推算数据集执行套索逻辑回归,并以某种方式停留在需要汇总所有这40个数据集结果的部分。

MICE中的with()函数不适用于.glmnet

使用MICE程序包缺失值的数据库:

imp<-mice(WMT1, m = 40)

对估算数据进行常规logistic回归:

 imp.fit <- glm.mids(Diagnosis~., data=imp, 
                    family = binomial)

汇集所有40个估算数据集的结果:

摘要(pool(imp.fit),2)

上面的代码似乎可以使用glm()进行逻辑回归,但是当我尝试执行上面确切的代码来执行套索回归时,我得到了:

首先执行交叉验证以找到最佳的lambda值:

CV <-cv.glmnet(Diagnosis〜。,data = imp,                      family =“ binomial”,alpha = 1,nlambda = 100)

当我尝试执行交叉验证时,出现以下错误消息:

 Error in as.data.frame.default(data) : 
    cannot coerce class ‘"mids"’ to a data.frame

有人可以帮助我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

一个想法: 考虑对40个数据集的每一个进行分析。 然后,将在每个变量中选择的变量存储在矩阵中。 然后,设置一些阈值(例如,在> 50%的数据集中选择)。