Czy stosowanie macierzy korelacji do wybierania predyktorów regresji jest prawidłowe?

17

Kilka dni temu mój psycholog-badacz powiedział mi o swojej metodzie wyboru zmiennych do modelu regresji liniowej. Chyba nie jest dobrze, ale muszę poprosić kogoś innego, żeby się upewnić. Metoda jest następująca:

Spójrz na macierz korelacji między wszystkimi zmiennymi (w tym zmienną zależną Y) i wybierz te predyktory X, które najbardziej korelują z Y.

Nie wspomniał o żadnym kryterium. P: Czy miał rację?

[Myślę, że ta metoda selekcji jest zła z powodu wielu rzeczy, takich jak teoria, która mówi, które predyktory należy wybrać, a nawet pominąć zmienne odchylenie (OVB).]

Lil'Lobster
źródło
Sugerowałbym zmianę tytułu na „Czy używanie macierzy korelacji do wyboru predyktorów regresji jest prawidłowe?” lub coś podobnego, aby uzyskać więcej informacji. Prostym kontrprzykładem na twoje pytanie jest zmienna, która ma korelację 1 ze zmienną zależną - prawdopodobnie nie będziesz chciał używać tej w swoim modelu.
Tim
3
Metoda ma pewną logikę, ale działa ona tylko wtedy, gdy masz ograniczony wybór dokładnie jednego regresora. Jeśli możesz wybrać kilka, ta metoda się psuje. Jest tak, ponieważ kombinacja liniowa kilku Xs, które są tylko słabo skorelowane z Y, może mieć większą korelację z Y niż kombinacja liniowa kilku Xs, które są silnie skorelowane z Y. Przypomnijmy, że regresja wielokrotna dotyczy kombinacji liniowych, a nie pojedynczych efekty ...
Richard Hardy
1
Korelacja jest to znormalizowane nachylenie regresji β 1=COV(X,Y)
ρX,Y=Cov(X,Y)σXσY
dla prostej regresji z jedną zmienną niezależną. Podejście to pozwala więc znaleźć zmienną niezależną o największej wartości parametru nachylenia, ale komplikuje się w przypadku wielu zmiennych niezależnych.
β^1=Cov(X,Y)σX
Tim
2
Odpowiedzi te potwierdzają moją myśl o tej „metodzie”, jednak wielu psychologów używa tego rodzaju selekcji zmiennych :(
Lil'Lobster
To brzmi jak „Leekasso” .
steveo'america

Odpowiedzi:

17

Jeśli z jakiegoś powodu zamierzasz uwzględnić tylko jedną zmienną w swoim modelu, to wybór predyktora, który ma najwyższą korelację ma kilka zalet. Spośród możliwych modeli regresji z tylko jednego czynnika prognostycznego, to jest model z najwyższym znormalizowanego współczynnika regresji oraz (ponieważ R 2 jest kwadratem R w prostej regresji liniowej ) najwyższy współczynnik korelacji .yR2r

Ale nie jest jasne, dlaczego chcesz ograniczyć swój model regresji do jednego predyktora, jeśli masz dane dostępne dla kilku. Jak wspomniano w komentarzach, samo spojrzenie na korelacje nie działa, jeśli twój model może zawierać kilka zmiennych. Na przykład z tej macierzy rozproszenia można pomyśleć, że predyktorami dla które powinieneś uwzględnić w swoim modelu, są x 1 (korelacja 0,824) i x 2 (korelacja 0,782), ale x 3 (korelacja 0,134) nie jest użytecznym predyktorem.yx1x2x3

Macierz wykresów punktowych zmiennych skorelowanych

yx1x3x2x2x1yyx2x2yx1x1 w modelu nie ma takiej relacji.

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

A oto przykład, który jest jeszcze gorszy:

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 potrafi faktycznie znaleźć zmienną, która w ogóle nie należy do modelu.

Silverfish
źródło
Ale ... czy to wszystko myślenie odnosi się do sytuacji, gdy ten „inny psycholog” wybiera - powiedzmy - 4 z 10 zmiennych Xs, które są silnie skorelowane z Y (współczynniki korelacji <0,7), pozostawiając sześć innych X, które korelują umiarkowanie lub nie tyle z Y?
Lil'Lobster
1
y
0

Możesz przeprowadzić analizę regresji krokowej i pozwolić oprogramowaniu wybrać zmienne na podstawie wartości F. Możesz także spojrzeć na Skorygowaną wartość R ^ 2 przy każdym uruchomieniu regresji, aby sprawdzić, czy dodałeś nową zmienną przyczyniającą się do twojego modelu. Twój model może mieć problem wielokoliniowości, jeśli przejdziesz przez macierz korelacji i wybierzesz zmienne o silnej korelacji. Mam nadzieję że to pomoże!

learning_stats
źródło
6
Krokowa selekcja prowadzi do tych samych problemów, co metoda opisana przez OP: stata.com/support/faqs/statistics/stepwise-regression-problems również zauważają, że pytanie dotyczyło tej pewnej metody, a nie szukania alternatywnych metod.
Tim
2
Jest to bardzo podstawowa metoda wyboru modelu - jeśli twoim celem jest ścisłe wyjaśnienie wariancji, odpowiednie może być stopniowe stosowanie R2, ale jeśli interesuje Cię wnioskowanie, przewidywanie, testowanie hipotez itp., Musisz myśleć daleko poza R2 (a może nawet zignorować R2).
robin.datadrivers