Як боротися з мультиколінеарністю при виконанні варіативного вибору?


28

У мене є набір даних з 9 безперервними незалежними змінними. Я намагаюся вибрати серед цих змінних , щоб відповідати моделі до одного відсотка ( в залежності) змінної Score. На жаль, я знаю, що між декількома змінними буде серйозна колінеарність.

Я намагався використовувати stepAIC()функцію в R для вибору змінної, але цей метод, як не дивно, здається чутливим до порядку, в якому змінні перераховані в рівнянні ...

Ось мій R-код (оскільки це відсоткові дані, я використовую logit перетворення для Score):

library(MASS)
library(car)

data.tst = read.table("data.txt",header=T)
data.lm = lm(logit(Score) ~ Var1 + Var2 + Var3 + Var4 + Var5 + Var6 + Var7 +
             Var8 + Var9, data = data.tst)

step = stepAIC(data.lm, direction="both")
summary(step)

Чомусь я виявив, що змінні, перелічені на початку рівняння, в кінцевому підсумку вибираються stepAIC()функцією, і результатом можна керувати, перераховуючи, наприклад, Var9спочатку (слідом за тильдом).

Який тут більш ефективний (і менш суперечливий) спосіб підгонки моделі? Насправді я не налаштований на використання лінійної регресії: єдине, що я хочу, - це вміти зрозуміти, яка з 9 змінних справді призводить до зміни Scoreзмінної. Переважно, це був би якийсь метод, який враховує сильний потенціал для колінеарності в цих 9 змінних.


6
Колінеарність означатиме, однак ви зробите аналіз, що по суті неможливо визначити, чи є одна змінна "рушійною" варіацією більш-менш змінною, з якою вона є висококолінеарною. Маючи на увазі це обмеження, ви можете спробувати ласо як засіб вибору невеликої кількості змінних, які прогнозують оптимально, а потім повідомляти про набір змінних, які він вибирає, і про ті, з якими цей набір є надзвичайно колінеарним. Згруповане ласо - це ще один варіант.
гість

4
@guest: Ласо не працює особливо добре за наявності сильної колінеарності, особливо що стосується проблеми вибору моделі.
кардинал

2
@cardinal, ласо має все в порядку, але якщо кілька змінних співвідносяться, то я, як правило, вибирає лише одну з них, саме тому я запропонував переглянути набір висококолінеарних змінних. Вирішивши використовувати щось більш складне, ніж цей «дефолт», вимагатиме оцінки корисності та більш чіткого розуміння того, для чого призначена ця модель.
гість

2
Ви можете заглянути в функцію bicreg {пакет BMA}. Зауважте, що для його належної роботи вам потрібен набір даних про повні випадки. Я вважаю це надзвичайно корисним для вибору моделі.
Домінік Комтуа

1
@guest: Ну, це дуже залежить від способу вибору параметра регуляризації. На насправді, в деяких режимах, аркан має (доказову) тенденцію до більш обраним параметрам. ОП запитала: "Єдине, що я хочу, - це вміти зрозуміти, яка з 9 змінних справді призводить до зміни Scoreзмінної", - це речення, на яке я, можливо, надмірно зосередився. За наявності сильної колінеарності ласо не допоможе в цьому, принаймні, у більш суворих тлумаченнях зауваження ОП.
кардинал

Відповіді:


14

По-перше, дуже хорошим ресурсом для цієї проблеми є Т. Кіт, множинна регресія та інші. У книзі є багато матеріалу про моделювання шляху та вибір змінних, і я думаю, ви знайдете вичерпні відповіді на свої запитання.

Один із способів вирішити мультиколінеарність - це центрування передбачувачів, тобто виведення середнього значення для однієї серії з кожного значення. Регресія хребта також може бути використана, коли дані сильно колінеарні. Нарешті, послідовна регресія може допомогти зрозуміти причинно-наслідкові зв’язки між предикторами в поєднанні з аналізом часової послідовності подій прогноктора.

Чи всі 9 змінних демонструють колінеарність? Для діагностики можна використовувати коефіцієнт дисперсії Коена 2003 року. Значення VIF> = 10 вказує на високу колінеарність та завищені стандартні помилки. Я розумію, вас більше цікавить причинно-наслідковий зв’язок між прогнозами та результатами. Якщо ні, то мультиколінеарність не вважається серйозною проблемою для прогнозування, як ви можете підтвердити, перевіривши МАЕ вибіркових даних щодо моделей, побудованих одночасно, додаючи ваші прогнози. Якщо ваші передбачувачі мають граничну силу прогнозування, ви виявите, що МАЕ знижується навіть за наявності модельної мультиколінеарності.


16

Оскільки важко визначити, які змінні потрібно скинути, часто краще не скидати змінні. Два способи пройти по цій лінії (1) використовувати метод зменшення даних (наприклад, змінна кластеризація або основні компоненти) та вводити підсумкові бали в модель замість окремих змінних та (2) ставити всі змінні в модель, але не перевіряти для ефекту однієї змінної, скоригованої на ефекти конкуруючих змінних. Для (2) складові тести конкуруючих змінних є потужними, оскільки колінеарні змінні об'єднують зусилля в загальному тесті на множинні ступеня свободи, замість того, щоб конкурувати один з одним, як при тестуванні змінних індивідуально.


Чи могли б ви, будь ласка, пояснитиand put summary scores into the model
SIslam

1
Мої конспекти курсу на biostat.mc.vanderbilt.edu/rms детально розглядаються
Френк Харрелл

1

Якщо ви хочете здійснити змінний відбір за наявності високої колінеарності, я можу порекомендувати пакет l0ara , який підходить до L0 пенізованих GLM за допомогою ітеративної процедури адаптивного гребня . Оскільки цей метод, в кінцевому рахунку, заснований на регульованій регресії хребта, він може дуже добре впоратися з колінеарністю, і в моїх моделюваннях він дав набагато менше помилкових позитивів, в той час як все ще дає великі показники прогнозування, а також, наприклад, LASSO, еластичну сітку або адаптивний LASSO. Крім того, ви можете також спробувати пакет L0Learnз комбінацією штрафу L0 та L2. Тоді покарання L0 сприяє рідкісності (тобто невеликим моделям), а покарання L2 регулює колінеарність. Еластична сітка (яка використовує комбінацію штрафу L1 і L2) також часто пропонується, але в моїх тестах це призвело до більше помилкових позитивів, плюс коефіцієнти будуть сильно зміщені. Цей ухил ви зможете позбутися, якщо замість цього застосовуєте пенізовані методи L0 (він же найкращий підмножина) - це так званий оцінювач oracle, який одночасно отримує послідовні та неупереджені коефіцієнти параметрів. Параметри регуляризації у всіх цих методах необхідно оптимізувати за допомогою перехресної валідації, щоб забезпечити оптимальні показники прогнозування вибірки. Якщо ви також хочете отримати рівні значущості та довірчі інтервали для своїх параметрів, ви також можете це зробити за допомогою непараметричного завантаження.

Ітераційний алгоритм адаптивного гребеня l0ara(іноді його називають розбитим адаптивним хребтом), як еластична сітка, має ефект групування, що змусить його вибирати сильно корельовані змінні групи, як тільки вони ввійдуть у вашу модель. Це має сенс - наприклад, якщо б у вас були дві ближче колінеарні змінні у вашій моделі, вона поділила б ефект на однакові.

Якщо ви аналізуєте дані про пропорції, вам краще скористатися логістичною регресійною моделлю btw - l0araпакет дозволяє це робити в поєднанні з покаранням L0; для L0Learnпакета це буде підтримано найближчим часом.

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