Каков эффект наличия коррелированных предикторов в модели множественной регрессии?

45

Я узнал в классе линейных моделей, что если два предиктора коррелированы и оба включены в модель, один из них будет незначительным. Например, предположим, что размер дома и количество спален взаимосвязаны. При прогнозировании стоимости дома с использованием этих двух предикторов один из них может быть отброшен, поскольку они предоставляют много одинаковой информации. Интуитивно понятно, что это имеет смысл, но у меня есть еще несколько технических вопросов:

  1. Как этот эффект проявляется в p-значениях коэффициентов регрессии, когда в модель включен только один или оба предиктора?
  2. Как на дисперсию коэффициентов регрессии влияют включение обоих предикторов в модель или их наличие?
  3. Как узнать, какой предиктор модель выберет, чтобы быть менее значимым?
  4. Как включение только одного или обоих предикторов изменяет значение / дисперсию моей прогнозируемой стоимости?
Вивек Субраманян
источник
6
Ответы на некоторые из ваших вопросов появились в других ветках , например на stats.stackexchange.com/a/14528 , где описывается ситуация, в которой каждый из набора только слабо коррелированных предикторов кажется незначительным, даже если они совместно принадлежат в модели. Это хороший набор вопросов, но он приводит к большому количеству соображений и приемов; целые книги были написаны о них. См., Например, Стратегии регрессионного моделирования Фрэнка Харрелла .
whuber
1
Используя размер дома и спальни, вы можете видеть, что незначительность не гарантируется, если корреляция отличается от 1 или -1. На самом деле существуют дома с 2 и 3 спальнями одинакового размера, и их стоимость может (значительно) различаться, что делает оба предиктора существенными. Однако размер в квадратных метрах и размер в квадратных футах имеют корреляцию = 1, и один из них всегда можно отбросить.
Pere

Ответы:

38

Тема, о которой вы спрашиваете - мультиколлинеарность . Возможно, вы захотите прочитать некоторые темы в CV, классифицированные под тегом . Ответ @ whuber, указанный выше, в частности, также стоит вашего времени.


Утверждение о том, что «если два предиктора коррелированы и оба включены в модель, один будет незначительным», неверно. Если существует реальный эффект переменной, вероятность того, что переменная будет существенной, является функцией нескольких вещей, таких как величина эффекта, величина дисперсии ошибки, дисперсия самой переменной, объем данных у вас есть и количество других переменных в модели. То, являются ли переменные коррелированными, также важно, но это не отменяет эти факты. Рассмотрим следующую простую демонстрацию в R:

library(MASS)    # allows you to generate correlated data
set.seed(4314)   # makes this example exactly replicable

# generate sets of 2 correlated variables w/ means=0 & SDs=1
X0 = mvrnorm(n=20,   mu=c(0,0), Sigma=rbind(c(1.00, 0.70),    # r=.70
                                            c(0.70, 1.00)) )
X1 = mvrnorm(n=100,  mu=c(0,0), Sigma=rbind(c(1.00, 0.87),    # r=.87
                                            c(0.87, 1.00)) )
X2 = mvrnorm(n=1000, mu=c(0,0), Sigma=rbind(c(1.00, 0.95),    # r=.95
                                            c(0.95, 1.00)) )
y0 = 5 + 0.6*X0[,1] + 0.4*X0[,2] + rnorm(20)    # y is a function of both
y1 = 5 + 0.6*X1[,1] + 0.4*X1[,2] + rnorm(100)   #  but is more strongly
y2 = 5 + 0.6*X2[,1] + 0.4*X2[,2] + rnorm(1000)  #  related to the 1st

# results of fitted models (skipping a lot of output, including the intercepts)
summary(lm(y0~X0[,1]+X0[,2]))
#             Estimate Std. Error t value Pr(>|t|)    
# X0[, 1]       0.6614     0.3612   1.831   0.0847 .     # neither variable
# X0[, 2]       0.4215     0.3217   1.310   0.2075       #  is significant
summary(lm(y1~X1[,1]+X1[,2]))
#             Estimate Std. Error t value Pr(>|t|)    
# X1[, 1]      0.57987    0.21074   2.752  0.00708 **    # only 1 variable
# X1[, 2]      0.25081    0.19806   1.266  0.20841       #  is significant
summary(lm(y2~X2[,1]+X2[,2]))
#             Estimate Std. Error t value Pr(>|t|)    
# X2[, 1]      0.60783    0.09841   6.177 9.52e-10 ***   # both variables
# X2[, 2]      0.39632    0.09781   4.052 5.47e-05 ***   #  are significant

N


X1X2R2X11/(1R2)X110X110×X1

Размышления о том, что произойдет, если вы включите обе коррелированные переменные в сравнении только с одной, похожи, но немного сложнее, чем подход, рассмотренный выше. Это связано с тем, что отсутствие переменной означает, что модель использует меньше степеней свободы, что приводит к изменению остаточной дисперсии и всего, что из этого вычисляется (включая дисперсию коэффициентов регрессии). Кроме того, если не включенная переменная действительно связана с ответом, дисперсия в ответе из-за этой переменной будет включена в остаточную дисперсию, делая ее больше, чем она была бы в противном случае. Таким образом, несколько вещей изменяются одновременно (переменная коррелирует или нет с другой переменной и остаточной дисперсией), и точный эффект отбрасывания / включения другой переменной будет зависеть от того, как эти компромиссы компенсируются.


Вооруженные пониманием VIF, вот ответы на ваши вопросы:

  1. Поскольку дисперсия распределения выборки коэффициента регрессии была бы больше (с коэффициентом VIF), если бы она коррелировала с другими переменными в модели, значения p были бы выше (то есть менее значительными), чем они в противном случае ,
  2. Дисперсии коэффициентов регрессии будут больше, как уже обсуждалось.
  3. Y
  4. Как изменятся прогнозируемые значения и их дисперсия, довольно сложно. Это зависит от того, насколько сильно коррелированы переменные и как они связаны с вашей переменной ответа в ваших данных. Что касается этой проблемы, она может помочь вам прочитать мой ответ здесь: есть ли разница между «контролем» и «игнорированием» других переменных в множественной регрессии?
Gung - Восстановить Монику
источник
5

Это скорее комментарий, но я хотел включить граф и немного кода.

Я думаю, что утверждение «если два предиктора коррелированы и оба включены в модель, один из них будет незначительным» неверно, если вы имеете в виду «только один». Двоичная статистическая значимость не может быть использована для выбора переменных.

Вот мой контрпример с использованием регрессии процентного содержания телесного жира на окружности бедра, толщине кожных складок * и окружности средней руки:

. webuse bodyfat, clear
(Body Fat)

. reg bodyfat thigh triceps midarm

      Source |       SS       df       MS              Number of obs =      20
-------------+------------------------------           F(  3,    16) =   21.52
       Model |  396.984607     3  132.328202           Prob > F      =  0.0000
    Residual |  98.4049068    16  6.15030667           R-squared     =  0.8014
-------------+------------------------------           Adj R-squared =  0.7641
       Total |  495.389513    19  26.0731323           Root MSE      =    2.48

------------------------------------------------------------------------------
     bodyfat |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
       thigh |  -2.856842   2.582015    -1.11   0.285    -8.330468    2.616785
     triceps |   4.334085   3.015511     1.44   0.170    -2.058512    10.72668
      midarm |  -2.186056   1.595499    -1.37   0.190    -5.568362     1.19625
       _cons |   117.0844   99.78238     1.17   0.258    -94.44474    328.6136
------------------------------------------------------------------------------

. corr bodyfat thigh triceps midarm 
(obs=20)

             |  bodyfat    thigh  triceps   midarm
-------------+------------------------------------
     bodyfat |   1.0000
       thigh |   0.8781   1.0000
     triceps |   0.8433   0.9238   1.0000
      midarm |   0.1424   0.0847   0.4578   1.0000


. ellip thigh triceps, coefs plot( (scatteri `=_b[thigh]' `=_b[triceps]'), yline(0, lcolor(gray)) xline(0, lcolor(gray)) legend(off))

введите описание изображения здесь

Как видно из таблицы регрессии, все незначительно, хотя значения p немного различаются.

β

Итак, как мы узнаем, какие предикторы будут менее значимыми? Изменение в регрессоре можно классифицировать на два типа:

  1. Вариация уникальная для каждого регрессора
  2. Вариация, которую разделяют регрессоры

R2


* Кожная складка - это ширина складки кожи, взятой над мышцей трицепса и измеренная с помощью штангенциркуля.

Димитрий Васильевич Мастеров
источник
Мне нравится ваш пример, но, строго говоря, было бы контрпримером, если бы утверждение в исходном вопросе говорило «если [...], только один будет незначительным», но в нем нет слова «только».
говорит амеба: восстанови Монику
@amoeba Это отличный момент. Я исправлю свой комментарий.
Дмитрий Владимирович Мастеров
Можете ли вы предоставить некоторую формулу для дальнейшей иллюстрации: «При оценке коэффициентов каждого регрессора будет использоваться только первый. Общее отклонение игнорируется, поскольку его нельзя распределить»
mac
3

Как заметил @whuber, это сложный вопрос. Тем не менее, первое предложение вашего поста является огромным упрощением. Часто бывает, что две (или более) переменные будут коррелированы и обе связаны с зависимой переменной. Важны они или нет, зависит как от размера эффекта, так и от размера клеток.

В вашем примере предположим, что для дома определенного размера люди предпочитают меньше комнат (по крайней мере, в Нью-Йорке это не является необоснованным - это будет указывать на более старые здания, более прочные стены и т. Д. И может быть маркером соседства). Тогда оба могут быть значительными, в противоположных направлениях!

Или, предположим, что двумя переменными были размер дома и соседство - они будут коррелировать, конечно же, более крупные дома в лучших кварталах - но они все равно могут быть значительными и, несомненно, оба будут связаны с ценой дома.

Также используются только «коррелированные» маскировки сложностей. Переменные могут быть сильно связаны без корреляции.

Питер Флом - Восстановить Монику
источник