Як перевірити мультиколінеарність у r


У регресійному аналізі мультиколінеарність виникає, коли дві або більше змінних предиктора сильно корельовані одна з одною, так що вони не надають унікальної чи незалежної інформації в моделі регресії.

Якщо ступінь кореляції досить високий між змінними предикторів, це може спричинити проблеми під час підгонки та інтерпретації регресійної моделі.

Найпростіший спосіб виявити мультиколінеарність у регресійній моделі — обчислити показник, відомий як коефіцієнт інфляції дисперсії, який часто називають абревіатурою VIF .

VIF вимірює силу кореляції між змінними предикторів у моделі. Він приймає значення від 1 до позитивної нескінченності.

Ми використовуємо такі практичні правила для інтерпретації значень VIF:

  • VIF = 1: немає кореляції між даною змінною предиктора та будь-якою іншою змінною предиктора в моделі.
  • VIF між 1 і 5: існує помірна кореляція між даною змінною предиктора та іншими змінними предиктора в моделі.
  • VIF > 5 : існує сильна кореляція між даною змінною предиктора та іншими змінними предиктора в моделі.

У наступному прикладі показано, як виявити мультиколінеарність у регресійній моделі в R шляхом обчислення значень VIF для кожної змінної предиктора в моделі.

Приклад: перевірка мультиколінеарності в R

Припустимо, що у нас є наступний кадр даних, що містить інформацію про різних баскетболістів:

 #create data frame
df = data. frame (rating = c(90, 85, 82, 88, 94, 90, 76, 75, 87, 86),
                points=c(25, 20, 14, 16, 27, 20, 12, 15, 14, 19),
                assists=c(5, 7, 7, 8, 5, 7, 6, 9, 9, 5),
                rebounds=c(11, 8, 10, 6, 6, 9, 6, 10, 10, 7))

#view data frame
df

   rating points assists rebounds
1 90 25 5 11
2 85 20 7 8
3 82 14 7 10
4 88 16 8 6
5 94 27 5 6
6 90 20 7 9
7 76 12 6 6
8 75 15 9 10
9 87 14 9 10
10 86 19 5 7

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

Щоб обчислити VIF для кожної змінної предиктора в моделі, ми можемо використати функцію vive() із пакету автомобіля :

 library (car)

#define multiple linear regression model
model <- lm(rating ~ points + assists + rebounds, data=df)

#calculate the VIF for each predictor variable in the model
lively(model)

  points assists rebounds 
1.763977 1.959104 1.175030 

Ми можемо побачити значення VIF для кожної зі змінних предиктора:

  • бали: 1,76
  • передачі: 1,96
  • підбирання: 1,18

Оскільки кожне зі значень VIF прогностичних змінних у моделі близьке до 1, мультиколінеарність не є проблемою в моделі.

Примітка . Якщо мультиколінеарність виявилася проблемою у вашій моделі, найшвидшим рішенням у більшості випадків є видалення однієї чи кількох сильно корельованих змінних.

Це часто є прийнятним рішенням, оскільки змінні, які ви видаляєте, все одно є зайвими та додають мало унікальної чи незалежної інформації в модель.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в R:

Як виконати множинну лінійну регресію в R
Як створити діаграму QQ у R
Як створити ділянку залишків у R

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *