使用mice
创建50个数据集插补后,我热衷于使用包glmnet
来运行弹性网。我了解分析估算数据的适当方法是将with
和pool
函数应用于mids
运行时创建的mice(x,...)
对象,但glmnet
要求将其数据作为矩阵提供。 model.matrix
和build.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
中使用的最合适方法是什么?
答案 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)