我有一个数据集,其中有283个观测值,包含60个变量。我的结果变量是二分法(诊断),可以是两种疾病中的任何一种。我正在比较经常重叠很多的两种类型的疾病,并且我试图找到可以帮助区分这些疾病的特征。我知道LASSO逻辑回归是解决此问题的最佳方法,但是不能在不完整的数据集上运行。
因此,我用R中的MICE软件包估算了丢失的数据,发现大约40个估算值对我拥有的丢失数据量有好处。
现在,我想对所有40个推算数据集执行套索逻辑回归,并以某种方式停留在需要汇总所有这40个数据集结果的部分。
MICE中的with()函数不适用于.glmnet
imp<-mice(WMT1, m = 40)
imp.fit <- glm.mids(Diagnosis~., data=imp,
family = binomial)
摘要(pool(imp.fit),2)
上面的代码似乎可以使用glm()进行逻辑回归,但是当我尝试执行上面确切的代码来执行套索回归时,我得到了:
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
有人可以帮助我解决这个问题吗?
答案 0 :(得分:0)
一个想法: 考虑对40个数据集的每一个进行分析。 然后,将在每个变量中选择的变量存储在矩阵中。 然后,设置一些阈值(例如,在> 50%的数据集中选择)。