Что такое «псевдонимы»?


24

При построении регрессионной модели в R ( lm) я часто получаю это сообщение

"there are aliased coefficients in the model"

Что именно это значит?

Кроме того, из-за этого predict()также дает предупреждение.

Хотя это всего лишь предупреждение, я хочу знать, как мы можем обнаружить / удалить псевдонимы перед построением модели.

Кроме того, каковы возможные последствия пренебрежения этим предупреждением?

Ответы:


32

Я подозреваю, что это не ошибка lm, а vif(из пакета car). Если так, то я считаю, что вы столкнулись с идеальной мультиколлинеарностью . Например

x1 <- rnorm( 100 )
x2 <- 2 * x1
y <- rnorm( 100 )
vif( lm( y ~ x1 + x2 ) )

выдает вашу ошибку.

В этом контексте «псевдоним» относится к переменным, которые линейно зависят от других (то есть вызывают идеальную мультиколлинеарность).

Первым шагом к решению проблемы является определение того, какие переменные являются виновником. Бег

alias( lm( y ~ x1 + x2 ) )

чтобы увидеть пример.


Спасибо. Является ли «мультиколлинеарность» такой же, как наличие «псевдонимных коэффициентов»?
Мохит Верма

1
@MohitVerma: в этой терминологии «псевдоним» относится к переменным, которые являются линейно зависимыми (то есть вызывают идеальную мультиколлинеарность). См. Stat.ethz.ch/R-manual/R-patched/library/stats/html/alias.html . Я обновляю ответ этим.
Тамас Ференци

3

Это часто возникает, когда у вас есть особенности в вашей X'Xматрице регрессии (значения NA в сводке результатов регрессии).

База R lm()допускает единичные значения / идеальную мультиколлинеарность по умолчанию singular.ok = TRUE. Другие пакеты / функции более консервативны.

Например, для linearHypothesis()функции в carпакете по умолчанию используется значение singular.ok = FALSE. Если у вас есть идеальная мультиколлинеарность в вашей регрессии, вы linearHypothesis()получите ошибку «в модели есть псевдонимы». Чтобы справиться с этой ошибкой, установите singular.ok = TRUE. Однако будьте осторожны, так как это может маскировать идеальную мультиколлинеарность в вашей регрессии.


0

может быть, это полезно знать для некоторых: я тоже получил эту ошибку, когда добавил регрессию в макеты. R автоматически опускает одну пустышку, но это вызывает ошибку в тесте VIF. таким образом, решение, для некоторых, может быть удаление одного манекена вручную.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.