У меня есть набор данных с 283 наблюдениями 60 переменных.Моя переменная результата дихотомическая (диагноз) и может быть одной из двух болезней.Я сравниваю два типа заболеваний, которые часто сильно перекрываются, и пытаюсь найти особенности, которые могут помочь дифференцировать эти заболевания друг от друга.Я понимаю, что логистическая регрессия LASSO является лучшим решением для этой проблемы, однако она не может быть запущена для неполного набора данных.
Итак, я вменял свои недостающие данные с помощью пакета MICE в R и обнаружил, что примерно 40 вменений подходит для количества недостающих данных, которые у меня есть.
Теперь я хочу выполнить лассо-логистическую регрессию для всех моих 40 вмененных наборов данных и каким-то образом застрял в той части, где мне нужно объединить результаты всех этих 40 наборов данных.
С помощью () функция из MICE не работает на .glmnet
Ввод базы данных с пропущенными значениями с использованием пакета MICE:
imp<-mice(WMT1, m = 40)
Подход регулярной логистической регрессии к вмененным данным:
imp.fit <- glm.mids(Diagnosis~., data=imp,
family = binomial)
Объедините результаты всех 40 вмененных наборов данных:
Сводка (pool (imp.fit), 2)
Вышеприведенное, кажется, хорошо работает с логистической регрессией с использованием glm (), но когдая пытаюсь точно так же выполнить регрессию Лассо, которую я получаю:
Сначала выполните перекрестную проверку, чтобы найти оптимальное значение лямбды:
CV <- cv.glmnet (Diagnosis ~., data = imp, family= "binomial", alpha = 1, nlambda = 100) </p>
Когда я пытаюсь выполнить перекрестную проверку, я получаю это сообщение об ошибке:
Error in as.data.frame.default(data) :
cannot coerce class ‘"mids"’ to a data.frame
Может ли кто-нибудь помочь мне с этой проблемой?