不确定这是否更多是一个统计问题,但我能找到的最接近的类似问题就在这里,尽管我无法让它适用于我的案例。
我正在尝试开发一个汇总的惩罚逻辑回归模型。我使用鼠标创建一个 mids 对象,然后使用插入符号重复交叉验证和弹性网络回归 ( glmnet ) 将模型拟合到每个数据集来调整参数。拟合的对象不属于“mira”类,但我想我通过使用正确的列表项更改对象类来解决这个问题。主要问题是glmnet没有关联的vcov方法,而pool()需要该方法。
我想根据变量的数量和哪些变量是最佳预测变量的不确定性来使用惩罚回归。我的数据由 4 个数值变量和 9 个不同级别的分类变量组成,我预计包括交互作用。
有谁知道我如何创建自己的 vcov 方法或以其他方式解决此问题?我不确定这是否可能。
随附示例数据和代码,请注意我无法共享实际数据。
library(mice)
library(caret)
dat <- as.data.frame(list(time=c(4,3,1,1,2,2,3,5,2,4,5,1,4,3,1,1,2,2,3,5,2,4,5,1),
status=c(1,1,1,0,2,2,0,0,NA,1,2,0,1,1,1,NA,2,2,0,0,1,NA,2,0),
x=c(0,2,1,1,NA,NA,0,1,1,2,0,1,0,2,1,1,NA,NA,0,1,1,2,0,1),
sex=c("M","M","M","M","F","F","F","F","M","F","F","M","F","M","M","M","F","F","M","F","M","F","M","F")))
imp <- mice(dat,m=5, seed=192)
control = trainControl(method = "repeatedcv",
number = 10,
repeats=3,
verboseIter = FALSE)
mod <- list(analyses=vector("list", imp$m))
for(i in 1:imp$m){
mod$analyses[[i]] <- train(sex ~ .,
data = complete(imp, i),
method = "glmnet",
family="binomial",
trControl = control,
tuneLength = 10,
metric="Kappa")
} …Run Code Online (Sandbox Code Playgroud)