Существует ли функция R, которая выполняет регрессию LASSO для нескольких вмененных наборов данных и объединяет результаты вместе? - PullRequest
0 голосов
/ 21 января 2019

У меня есть набор данных с 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

Может ли кто-нибудь помочь мне с этой проблемой?

1 Ответ

0 голосов
/ 14 мая 2019

мысль: Рассмотрите возможность проведения анализа каждого из 40 наборов данных. Затем, сохраняя, какие переменные выбраны в каждой в матрице. Затем установите некоторый порог (например, выбранный в> 50% наборов данных).

...