Чи правильно використовувати кореляційну матрицю для вибору предикторів регресії?


17

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

Подивіться на кореляційну матрицю між усіма змінними (включаючи залежну змінну Y) і виберіть ті предиктори Xs, які найбільше співвідносяться з Y.

Він не згадав жодного критерію. Q: Він мав рацію?

[Я думаю, що цей метод відбору є неправильним, оскільки багато речей, як-от теорія, яка говорить про те, які предиктори слід вибирати, або навіть опускати змінний зміщення (OVB).]


Я б запропонував змінити заголовок на "Чи правильно використовується кореляційна матриця для вибору предикторів для регресії?" або щось подібне, щоб бути більш інформативним. Простий контрприклад вашого запитання - це змінна, яка має кореляцію 1 із залежною змінною - вам, ймовірно, не сподобається використовувати цю модель у вашій моделі.
Тім

3
Існує певна логіка методу, але він працює лише в тому випадку, якщо вам обмежено вибрати саме одного регресора. Якщо ви можете вибрати декілька, цей спосіб переривається. Це тому, що лінійна комбінація декількох Xs, які лише слабо корелюються з Y, може мати більшу кореляцію з Y, ніж лінійна комбінація декількох Xs, сильно корельовану з Y. Нагадаємо, що множинна регресія стосується лінійних комбінацій, а не лише окремих ефекти ...
Річард Харді

1
Кореляція тільки стандартизовані регресії нахил β 1=COV(X,Y)
ρX,Y=Cov(X,Y)σXσY
для простої регресії з однією незалежною змінною. Таким чином, такий підхід дозволяє лише знайти незалежну змінну з найбільшим значенням для параметра нахилу, але вона ускладнюється безліччю незалежних змінних.
β^1=Cov(X,Y)σX
Тім

2
Ці відповіді підтверджують мою думку про цей «метод», але багато психологів використовують такий варіант змінного вибору :(
Lil'Lobster

Це звучить як "Лекассо" .
steveo'america

Відповіді:


17

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

Але незрозуміло, чому ви хочете обмежити свою регресійну модель одним прогноктором, якщо у вас є дані для кількох. Як згадувалося в коментарях, перегляд кореляцій не працює, якщо ваша модель може містити кілька змінних. Наприклад, з цієї матриці розсіювання можна подумати, що провісники для y ви повинні включити у свою модель, складають (кореляція 0,824) і x 2 (кореляція 0,782), але x 3 (кореляція 0,134) не є корисним прогнозником.x1x2x3

Матриця графіку розсіювання корельованих змінних

yx1x3x2x2x1yyx2x2yx1x1 в моделі такого взаємозв'язку не залишається.

require(MASS) #for mvrnorm 
set.seed(42) #so reproduces same result

Sigma <- matrix(c(1,0.95,0,0.95,1,0,0,0,1),3,3)
N <- 1e4
x <- mvrnorm(n=N, c(0,0,0), Sigma, empirical=TRUE)
data.df <- data.frame(x1=x[,1], x2=x[,2], x3=x[,3])
# y depends on x1 strongly and x3 weakly, but not directly on x2
data.df$y <- with(data.df, 5 + 3*x1 + 0.5*x3) + rnorm(N, sd=2)

round(cor(data.df), 3)
#       x1    x2    x3     y
# x1 1.000 0.950 0.000 0.824
# x2 0.950 1.000 0.000 0.782
# x3 0.000 0.000 1.000 0.134
# y  0.824 0.782 0.134 1.000
# Note: x1 and x2 are highly correlated
# Since y is highly correlated with x1, it is with x2 too
# y depended only weakly on x3, their correlation is much lower

pairs(~y+x1+x2+x3,data=data.df, main="Scatterplot matrix")
# produces scatter plot above

model.lm <- lm(data=data.df, y ~ x1 + x2 + x3)
summary(model.lm)

# Coefficients:
#             Estimate Std. Error t value Pr(>|t|)    
# (Intercept)  4.99599    0.02018 247.631   <2e-16 ***
# x1           3.03724    0.06462  47.005   <2e-16 ***
# x2          -0.02436    0.06462  -0.377    0.706    
# x3           0.49185    0.02018  24.378   <2e-16 ***

x1x2x2x1x3x3

І ось приклад, який ще гірший:

Sigma <- matrix(c(1,0,0,0.5,0,1,0,0.5,0,0,1,0.5,0.5,0.5,0.5,1),4,4)
N <- 1e4
x <- mvrnorm(n=N, c(0,0,0,0), Sigma, empirical=TRUE)
data.df <- data.frame(x1=x[,1], x2=x[,2], x3=x[,3], x4=x[,4])
# y depends on x1, x2 and x3 but not directly on x4
data.df$y <- with(data.df, 5 + x1 + x2 + x3) + rnorm(N, sd=2)

round(cor(data.df), 3)
#       x1    x2    x3    x4     y
# x1 1.000 0.000 0.000 0.500 0.387
# x2 0.000 1.000 0.000 0.500 0.391
# x3 0.000 0.000 1.000 0.500 0.378
# x4 0.500 0.500 0.500 1.000 0.583
# y  0.387 0.391 0.378 0.583 1.000

pairs(~y+x1+x2+x3+x4,data=data.df, main="Scatterplot matrix")

model.lm <- lm(data=data.df, y ~ x1 + x2 + x3 +x4)
summary(model.lm)
# Coefficients:
#             Estimate Std. Error t value Pr(>|t|)    
# (Intercept)  4.98117    0.01979 251.682   <2e-16 ***
# x1           0.99874    0.02799  35.681   <2e-16 ***
# x2           1.00812    0.02799  36.016   <2e-16 ***
# x3           0.97302    0.02799  34.762   <2e-16 ***
# x4           0.06002    0.03958   1.516    0.129

yx1x2x3x4x1x2x3x4yy насправді можна знайти змінну, яка взагалі не належить до моделі.


Але ... чи все мислення стосується ситуації, коли цей «колег-психолог» вибирає - скажімо - 4 з 10 змінних Xs, які сильно співвідносяться з Y (коефіцієнт кореляції <0,7), залишаючи шість інших Х, які корелюють помірно чи ні так багато з Y?
Lil'Lobster

1
@Lili Коли у мене є час, я хочу додати приклад до цієї відповіді, в якій змінна повинна бути включена в модель, яка має (перш ніж ми частково відміняємо інші змінні) нульy

0

Ви можете запустити поетапний регресійний аналіз і дозволити програмному продукту обирати змінні на основі значень F. Ви також можете подивитися на коригуване значення R ^ 2, коли ви запускаєте регресію кожного разу, щоб побачити, чи додавати якусь нову змінну, що сприяє вашій моделі. У вашій моделі може виникнути проблема мультиколінеарності, якщо ви просто переходите за матрицею кореляції та вибираєте змінні з сильною кореляцією. Сподіваюся, це допомагає!


6
Покроковий вибір призводить до тих же проблем, що і метод, описаний ОП: stata.com/support/faqs/statistics/stepwise-regression-problems також зазначає, що питання стосувалося цього певного методу, а не про пошук альтернативних методів.
Тім

2
Це дуже базовий метод вибору моделі - якщо ваша мета суворо пояснює дисперсію, поетапне використання R2 може бути доречним, але якщо вас цікавлять умовиводи, прогнозування, тестування гіпотез тощо, тоді вам потрібно подумати за рамками R2 (а може навіть ігнорувати R2).
robin.datadrivers
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.