生成用于弹性网的估算数据的矩阵

时间:2017-07-11 07:56:54

标签: r matrix glmnet r-mice

使用mice创建50个数据集插补后,我热衷于使用包glmnet来运行弹性网。我了解分析估算数据的适当方法是将withpool函数应用于mids运行时创建的mice(x,...)对象,但glmnet要求将其数据作为矩阵提供。 model.matrixbuild.x都可用于将通用数据帧转换为矩阵。 mids对象可以转换为data.frame;但是,将可用数据用作单个数据集似乎会破坏整个插补过程。

示例:

df <- mice::nhanes
imp <- mice(df) #impute data
com <- complete(imp, "long", TRUE) #creates data frame
mat <- build.x(bmi ~ age + hyp + chl, com, contrasts = FALSE)

假设插补是准确的,保留插补并创建相关矩阵以在glmnet中使用的最合适方法是什么?

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用我的glmnetUtils package,它为glmnet实现公式/数据框界面。然后像任何其他R模型构建功能一样适合你的弹性网。

install.packages("glmnetUtils")
library(glmnetUtils)

# ... do whatever is required to create an analysis data frame ...

glmnet(bmi ~ age + hyp + chl, data=com)