Я подгоняю биномиальное семейство glm в R, и у меня есть целая группа объясняющих переменных, и мне нужно найти лучшее (R-квадрат в качестве меры - это хорошо). Если не считать сценария для циклического перебора различных комбинаций объясняющих переменных и последующей записи, которая дает наилучшие результаты, я действительно не знаю, что делать. И leaps
функция из пакета скачков , кажется, не делает логистической регрессии.
Любая помощь или предложения будут с благодарностью.
Ответы:
Пошаговые и "все подмножества" методы вообще плохие. См. Остановка пошагово: почему пошаговые методы плохи и что вы должны использовать , Дэвид Касселл и я (мы использовали SAS, но урок применим) или стратегии регрессионного моделирования Фрэнка Харрелла. Если вам нужен автоматический метод, я рекомендую LASSO или LAR. Пакет LASSO для логистической регрессии доступен здесь , другая интересная статья о повторном LASSO для логистики
источник
lrm
Или его учебник по RMS для получения дополнительной информации).Логистическая регрессия оценивается методом максимального правдоподобия, поэтому
leaps
здесь не используется напрямую. Расширениеleaps
дляglm()
функций является bestglm пакет (как правило , рекомендации следует, консультируйтесь виньетки там).Вас также может заинтересовать статья Дэвида В. Хосмера, Борко Йовановича и Стэнли Лемешоу «Логистическая регрессия лучших подмножеств» // Biometrics Vol. 45, No. 4 (Dec., 1989), pp. 1265-1270 (обычно доступна через университетские сети).
источник
R2R2 is not an appropriate goodness-of-fit measure for logistic regression take an information criterion AICAIC or BICBIC
bestglm
, что он используетleaps
в бэкэнде для расчета! Таким образом, произойдет сбой, если в наборе данных есть NA, и появится сообщение типаError in leaps.setup(x, y, wt = weights, nbest = nbest, nvmax = nvmax, : NA/NaN/Inf in foreign function call (arg 3)
Но что интересно, в моем наборе данных нет NA, а есть несколько нулей, тем не менее, эта функция жалуется и выдает именно это сообщение !!Одна идея состоит в том, чтобы использовать случайный лес, а затем использовать показатели важности переменных, которые он выводит, чтобы выбрать ваши лучшие 8 переменных. Другой идеей было бы использовать пакет "boruta", чтобы повторить этот процесс несколько сотен раз, чтобы найти 8 переменных, которые наиболее важны для модели.
источник
stats::step
функции или более общаяMASS::stepAIC
поддержка функцииlm
,glm
(т.е. логистическая регрессия) иaov
семейные модели.источник