Правильно ли использовать матрицу корреляции для выбора предикторов регрессии?


17

Несколько дней назад мой психолог-исследователь рассказал мне о своем методе выбора переменных для модели линейной регрессии. Думаю, это нехорошо, но мне нужно попросить кого-нибудь еще убедиться. Метод таков:

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

Он не упомянул ни одного критерия. Q: Был ли он прав?

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


Я бы предложил изменить заголовок на «Используется ли корреляционная матрица для выбора предикторов для регрессии?» или что-то подобное, чтобы быть более информативным. Простой контрпример к вашему вопросу - это переменная, которая имеет корреляцию 1 с зависимой переменной - вы, вероятно, не захотите использовать эту в своей модели.
Тим

3
В этом методе есть некоторая логика, но он работает, только если вы ограничены в выборе только одного регрессора. Если вы можете выбрать несколько, этот метод ломается. Это потому, что линейная комбинация нескольких X, которые слабо коррелированы с Y, может иметь большую корреляцию с Y, чем линейная комбинация нескольких X, которые сильно коррелируют с Y. Напомним, что множественная регрессия касается линейных комбинаций, а не только отдельных эффекты ...
Ричард Харди

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

2
Эти ответы подтверждают мою мысль об этом «методе», но многие психологи используют этот тип выбора переменных :(
Lil'Lobster

Это звучит как «Ликассо» .
steveo'america

Ответы:


17

Если по какой-то причине вы собираетесь включить в модель только одну переменную, то выбор предиктора, который имеет наибольшую корреляцию с имеет несколько преимуществ. Из возможных моделей регрессии только с одним предиктором эта модель является самой высокой с стандартизованным коэффициентом регрессии, а также (поскольку R 2 - это квадрат r в простой линейной регрессии ) с самым высоким коэффициентом детерминации .Yр2р

Но не ясно, почему вы хотели бы ограничить свою регрессионную модель одним предиктором, если у вас есть данные, доступные для нескольких. Как упоминалось в комментариях, просто посмотреть на корреляции не получится, если ваша модель может содержать несколько переменных. Например, из этой матрицы рассеяния вы можете подумать, что предикторами для вы должны включить в свою модель, являются x 1 (корреляция 0,824) и x 2 (корреляция 0,782), но x 3 (корреляция 0,134) не является полезным предиктором.YИкс1Икс2Икс3

Матрица рассеяния коррелированных переменных

YИкс1Икс3Икс2Икс2Икс1YYИкс2Икс2YИкс1Икс1 в модели таких отношений не остается.

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 ***

Икс1Икс2Икс2Икс1Икс3Икс3

И вот пример, который еще хуже:

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

YИкс1Икс2Икс3Икс4Икс1Икс2Икс3Икс4YY действительно может найти переменную, которая вообще не принадлежит модели.


Но ... все ли это применимо к ситуации, когда этот «коллега-психолог» выбирает, скажем, 4 из 10 переменных X, которые сильно коррелируют с Y (коэффициенты корреляции <0,7), оставляя шесть других X, которые коррелируют умеренно или нет так много с Y?
Lil'Lobster

1
Y

0

Вы можете запустить пошаговый регрессионный анализ и позволить программному обеспечению выбирать переменные на основе значений F. Вы также можете посмотреть на скорректированное значение R ^ 2 при каждом запуске регрессии, чтобы увидеть, добавляется ли какая-либо новая переменная, способствующая вашей модели. Ваша модель может иметь проблему мультиколлинеарности, если вы просто выбираете корреляционную матрицу и выбираете переменные с сильной корреляцией. Надеюсь это поможет!


6
Пошаговый выбор приводит к тем же проблемам, что и метод, описанный OP: 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.