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