Як зробити вибір підмножини логістичної регресії?


47

Я поміщаю біноміальну glm сім'ю в R, і у мене є ціла група пояснювальних змінних, і мені потрібно знайти найкраще (R-квадрат, як міра - це нормально). Не маючи написання сценарію, щоб переглядати випадкові різні комбінації пояснювальних змінних, а потім записувати, що найкраще, я дійсно не знаю, що робити. І leapsфункція від стрибків пакунків , схоже, не робить логістичної регресії.

Будь-яка допомога чи пропозиції були б дуже вдячні.


Існують функції, які виконують автоматичний пошук. Ви повинні ознайомитись із функцією кроку . Розділ 5.4 ілюструє цей момент: data.princeton.edu/R/glms.html
ocram

Вибачте, але моя публікація була відредагована, щоб вона більше не задавала мого питання. У моїй логістичній регресійній моделі є 35 (26 значущих) пояснювальних змінних. Мені потрібна найкраща можлива комбінація з 8, а не найкраща підмножина, і ні в якому разі я не зацікавився поетапним або всім підмножинами підходу до стилю. У цій 8. немає місця для хитання, я просто подумав, що хтось може знати, як я можу вмістити всі комбінації 8 змінних пояснювальних змін, і це могло б сказати мені, яка збільшує ймовірність (вибачте, про мозок пердеть мозку, але AIC не має значення, оскільки У мене фіксована кількість параметрів, 8).
Ліндерт

Ви можете повернутися до попередньої версії публікації або поєднати обидва редагування. Я впевнений, що @mpiktas мав добрі наміри, намагаючись покращити свій зовнішній вигляд, і просто не помітив параметрів №.
chl

@ Усі: Дуже дякую Врешті-решт я використав багато різних речей, сподіваючись, що всі вони дадуть подібні відповіді. І вони зробили. Я використовував пакети BMA, bestglm та glmnet, а також функцію кроку. Встановлені моделі з усіма ними, і не було розбіжностей у тому, що BMA з maxcol = 9 і кроком вважають найкращою моделлю. Всі експерти в області навколо мене, здавалося, дуже задоволені змінними, і вважали, що це досить прогресивно. Тож дякую за весь вклад. Я справді все це використав.
Ліндерт

glmulti також є хорошим пакетом для найкращого вибору підмножини, і він дозволяє вказати максимальну кількість змінних у вашій моделі, а також дозволяє врахувати всі можливі ефекти взаємодії першого порядку
Том Венселер

Відповіді:


28

Покрокові та "всі підмножини" методи, як правило, погані. Див. Розділ Припинення поетапно: Чому ступінчасті методи погані і що вам слід використовувати Девід Кассел та я (ми використовували SAS, але урок застосовується) або Стратегії моделювання регресії Франка Гаррелла. Якщо вам потрібен автоматичний метод, я рекомендую LASSO або LAR. Пакет LASSO для логістичної регресії доступний тут , ще одна цікава стаття на ітераційній LASSO для логістики


6
(+1) про пакети R, там ви також glmnet (реалізація з координатою спуск алго., Фрідман і Coll.) І нарешті (дозволяє зберегти деякі вар. Unpenalized). Слід зазначити, що Ф. Харрелл надає штрафну оцінку ML для GLM (див. lrmАбо його підручник з RMS для отримання додаткової інформації).
chl

(+1) Приємна стаття, здається, я повинен почати виходити далеко за рамки авторських запитань у питанні (не вперше я цього не робив). @chl (+1) ідеальні альтернативні пропозиції теж.
Дмитро Челов

@chl: +1 для glmnet, це чудовий пакет.
Зак

1
@chl Дякую! Однією з проблем з R є відстеження пакетів (їх так багато!) І які найкращі. Погляди на завдання допомагають
Пітер Флом - Відновити Моніку

2
Якщо ваші змінні колінеарні, найкраще використовувати еластичну сітку за допомогою glmnet, скажімо, з альфа = 0,5, оскільки LASSO має тенденцію випадковим чином витіснити високолінійні змінні з моделі
Том Венселер

15

Перш за все, не є відповідним показником корисності для логістичної регресії, наприклад, прийняти інформаційний критерій або як хорошу альтернативу. A I C B I CR2AICBIC

Логістична регресія оцінюється методом максимальної ймовірності, тому leapsтут не використовується безпосередньо. Розширення leapsдля glm()функцій є bestglm пакет (як правило , рекомендації слід, консультуйтеся віньєтки там).

Вам також може бути цікава стаття Девіда В. Хосмера, Борко Йовановича та Стенлі Лемешоу Кращі підмножини Логістична регресія // Біометрія, Vol. 45, № 4 (грудень, 1989), стор 1265-1270 (зазвичай доступний через університетські мережі).


2
R2BIC,AIC8BICAICR2

8

будь-яка академічна довідка дляR2R2 is not an appropriate goodness-of-fit measure for logistic regression take an information criterion AICAIC or BICBIC
SIslam

Зауважте bestglm, що він використовується leapsв бекенде для розрахунку! Таким чином, він не вдасться, якщо в наборі даних є NA і з'явиться повідомлення типу " Error in leaps.setup(x, y, wt = weights, nbest = nbest, nvmax = nvmax, : NA/NaN/Inf in foreign function call (arg 3) Але що цікаво, у мого набору даних немає НА, а не нулі, однак ця функція скаржиться і дає це саме вище повідомлення !!
SIslam

glmnet також хороший, а також може робити моделі, які враховують усі можливі ефекти взаємодії 1-го порядку
Том Венселєр,

6

Однією з ідей було б використовувати випадковий ліс, а потім використати міри важливості змінної, яку він виводить, щоб вибрати найкращі 8 змінних. Іншою ідеєю було б використовувати пакет "борута", щоб повторити цей процес кілька сотень разів, щоб знайти 8 змінних, які послідовно найбільш важливі для моделі.


@Zach Ви пропонуєте покластися на RF, щоб здійснити вибір функції, а потім застосувати GLM - у цьому випадку є ризик переобладнання або надмірного оптимізму - або використовувати радіочастоти (зі стандартними заходами різної важливості, або всерелевантний вибір) як окремий інструмент?
chl

@chl: Я пропонував використовувати RF для вибору функції, а потім застосувати GLM. Я погоджуюся, що є ризик перенастроїти, але ОП заявив, що йому потрібно рівно 8 змінних.
Зак

1
@Zach "рівно 8 змінних" ... Тоді ви дещо м'яко обмежуєте потенційні змінні величини, що цікавлять, на основі міри змінної важливості (яка, базуючись на перестановці та подвійному переупорядкуванні, повинна бути без упереджень) і потім повторно вводять їх у ГЛМ. ІМХО, ви порушуєте контроль над пристосуванням, здійсненим за допомогою мішків. Це також описано в ESLII від Hastie et al .: Вибір особливостей, якщо такі є, повинен бути включений у процедуру перехресної перевірки (де перехресна перевірка включає оцінку продуктивності моделі).
chl

@chl: Чи не схрещується пакет r "boruta", запускаючи випадковий ліс кілька разів? Ви в основному говорите, що нам потрібна "метаперехресна валідація", де ви робите вибір змінних та підходите до вашої моделі на випадкові підмножини даних?
Зак

3
@Zach Моя думка полягала в тому, що мішки, або, зокрема, радіочастоти, запобігають надмірному оснащенню (певною мірою) за умови, що ви залишаєтесь в одній ланцюжку інструментів. Якщо ви користуєтесь результатами від радіочастотних сигналів, а потім перегляньте, як виглядатиме інша модель з тими ж даними, то ви порушите цикл CV. Але чому б не використовувати безпосередньо RF для класифікації? Іншим рішенням було б використовувати ВЧ на навчальному зразку, а потім застосувати ГЛМ на витриманому зразку (що потенційно теж може бути перекреслено).
chl

0

stats::stepфункції або більш загальна MASS::stepAICпідтримка функції lm, glm(тобто логістична регресія) і aovсімейні моделі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.