Як виправити в r: у моделі є коефіцієнти псевдонімів


Помилка, з якою ви можете зіткнутися в R:

 Error in vive.default(model): there are aliased coefficients in the model

Ця помилка зазвичай виникає, коли в регресійній моделі існує мультиколінеарність . Тобто дві або більше змінних предиктора в моделі сильно (або ідеально) корельовані.

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

У наступному прикладі показано, як виправити цю помилку на практиці.

Як відтворити помилку

Припустимо, ми застосуємо наступну модель регресії в R:

 #make this example reproducible
set. seeds (0)

#define data
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- x2*3
y <- rnorm(100)

#fit regression model
model <- lm(y~x1+x2+x3)

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

 library (car)

#calculate VIF values for predictor variables
lively(model)

Error in vive.default(model): there are aliased coefficients in the model

Ми отримуємо повідомлення про помилку ” у моделі є коефіцієнти псевдонімів”. «

Це говорить нам про те, що дві або більше змінних предиктора в моделі ідеально корельовані.

Як виправити помилку

Щоб визначити, які змінні прогностики ідеально корельовані, ми можемо використати функцію cor() , щоб створити кореляційну матрицю для змінних:

 #place variables in data frame
df <- data. frame (x1, x2, x3, y)

#create correlation matrix for data frame
cor(df)

           x1 x2 x3 y
x1 1.00000000 0.126886263 0.126886263 0.065047543
x2 0.12688626 1.000000000 1.000000000 -0.009107573
x3 0.12688626 1.000000000 1.000000000 -0.009107573
y 0.06504754 -0.009107573 -0.009107573 1.000000000

Ми бачимо, що змінні x2 і x3 мають коефіцієнт кореляції 1. Це говорить нам про те, що ці дві змінні спричиняють помилку, оскільки вони ідеально корельовані.

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

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

Для простоти давайте видалимо x3 і знову підберемо модель регресії:

 library (car)

#make this example reproducible
set. seeds (0)

#define data
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- x2*3
y <- rnorm(100)

#fit regression model
model <- lm(y~x1+x2)

#calculate VIF values for predictor variables in model
lively(model)

      x1 x2 
1.016364 1.016364 

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

Пов’язане: Як обчислити та інтерпретувати значення VIF у R

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

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

Як відремонтувати в R: заміна має нульову довжину
Як виправити в R: аргументи містять різну кількість рядків
Як виправити в R: аргумент не є ні числовим, ні логічним: return na

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

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