Ist die Verwendung der Korrelationsmatrix zur Auswahl der Prädiktoren für die Regression korrekt?

17

Vor ein paar Tagen erzählte mir ein Psychologe und Forscher von seiner Methode zur Auswahl von Variablen für ein lineares Regressionsmodell. Ich denke, es ist nicht gut, aber ich muss jemanden fragen, um sicherzugehen. Die Methode ist:

Betrachten Sie die Korrelationsmatrix zwischen allen Variablen (einschließlich der abhängigen Variablen Y) und wählen Sie die Prädiktoren Xs aus, die am meisten mit Y korrelieren.

Er erwähnte kein Kriterium. F: Hatte er recht?

[Ich denke, dass diese Auswahlmethode aus vielerlei Gründen falsch ist, so wie es die Theorie ist, die besagt, welche Prädiktoren ausgewählt werden sollten, oder sogar die Variable Bias (OVB) weggelassen hat.]

Lil'Lobster
quelle
Ich würde vorschlagen, den Titel in "Ist die Verwendung der Korrelationsmatrix zur Auswahl der Prädiktoren für die Regression korrekt?" Zu ändern. oder etwas ähnliches, um informativer zu sein. Ein einfaches Gegenbeispiel zu Ihrer Frage ist eine Variable, die eine Korrelation von 1 mit der abhängigen Variablen aufweist. Sie möchten diese Variable wahrscheinlich nicht in Ihrem Modell verwenden.
Tim
3
Die Methode hat eine gewisse Logik, funktioniert jedoch nur, wenn Sie darauf beschränkt sind, genau einen Regressor auszuwählen. Wenn Sie einige auswählen können, bricht diese Methode ab. Dies liegt daran, dass eine lineare Kombination einiger weniger Xs, die nur schwach mit Y korreliert sind, möglicherweise eine größere Korrelation mit Y aufweist als eine lineare Kombination einiger weniger Xs, die stark mit Y korreliert sind Effekte ...
Richard Hardy
1
Korrelation wird nur Regressionssteigung standardisiert β 1=Cov(X,Y)
ρX,Y=Cov(X,Y)σXσY
für einfache Regression mit einer unabhängigen Variablen. Mit diesem Ansatz können Sie nur die unabhängige Variable mit dem größten Wert für den Steigungsparameter finden, bei mehreren unabhängigen Variablen wird dies jedoch komplizierter.
β^1=CÖv(X,Y.)σX
Tim
2
Diese Antworten bestätigen meine Überlegungen zu dieser 'Methode', doch viele Psychologen verwenden diese Art der Variablenauswahl :(
Lil'Lobster
Das klingt nach "Leekasso" .
steveo'america

Antworten:

17

Wenn Sie aus irgendeinem Grund nur eine Variable in Ihr Modell aufnehmen, hat die Auswahl des Prädiktors, der die höchste Korrelation mit mehrere Vorteile. Von den möglichen Regressionsmodellen mit nur einem Prädiktor ist dieses Modell das Modell mit dem höchsten standardisierten Regressionskoeffizienten und auch (da R 2 das Quadrat von r in einer einfachen linearen Regression ist ) dem höchsten Bestimmungskoeffizienten .yR2r

Es ist jedoch nicht klar, warum Sie Ihr Regressionsmodell auf einen Prädiktor beschränken möchten, wenn Daten für mehrere verfügbar sind. Wie in den Kommentaren erwähnt, funktioniert es nicht, nur die Korrelationen zu betrachten, wenn Ihr Modell möglicherweise mehrere Variablen enthält. Anhand dieser Streumatrix könnten Sie beispielsweise annehmen , dass die Prädiktoren für Sie in Ihr Modell aufnehmen sollten, x 1 (Korrelation 0,824) und x 2 (Korrelation 0,782) sind, aber dass x 3 (Korrelation 0,134) kein nützlicher Prädiktor ist.yx1x2x3

Streudiagramm-Matrix von korrelierten Variablen

yx1x3x2x2x1yyx2x2yx1x1 im Modell bleibt keine solche Beziehung erhalten.

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

Und hier ist ein Beispiel, das noch schlimmer ist:

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 kann tatsächlich die Variable finden, die überhaupt nicht in das Modell gehört.

Silberfisch
quelle
Aber ... bezieht sich das Denken auf die Situation, in der dieser "Mitpsychologe" 4 von 10 Variablen Xs auswählt, die stark mit Y korrelieren (Korrelationskoeffizienten <0,7), und sechs weitere Xs übrig bleiben, die mäßig korrelieren oder nicht so sehr mit Y?
Lil'Lobster
1
@Lili Wenn ich Zeit habe, möchte ich ein Beispiel zu dieser Antwort hinzufügen, in dem eine Variable in das Modell aufgenommen werden soll, die (bevor wir andere Variablen herausfiltern) mit Null korrelierty. Ich schlage auch vor, dass Sie die Konzepte der verwirrenden und unechten Korrelation nachschlagen , die in der Psychologie sicherlich relevant sind.
Silverfish
0

Sie könnten eine schrittweise Regressionsanalyse durchführen und die Software die Variablen anhand der F-Werte auswählen lassen. Sie können sich auch den angepassten R ^ 2-Wert ansehen, wenn Sie die Regression jedes Mal ausführen, um festzustellen, ob neue Variablen hinzugefügt wurden, die zu Ihrem Modell beitragen. Ihr Modell hat möglicherweise das Problem der Multikollinearität, wenn Sie nur die Korrelationsmatrix verwenden und Variablen mit starker Korrelation auswählen. Hoffe das hilft!

learning_stats
quelle
6
Die schrittweise Auswahl führt zu den gleichen Problemen wie die von OP beschriebene Methode: stata.com/support/faqs/statistics/stepwise-regression-problems stellt außerdem fest, dass die Frage nach dieser bestimmten Methode und nicht nach der Suche nach alternativen Methoden bestand.
Tim
2
Dies ist eine sehr grundlegende Methode für die Modellauswahl. Wenn Ihr Ziel die strikte Erklärung der Varianz ist, kann die schrittweise Verwendung von R2 angemessen sein. Wenn Sie jedoch an Inferenzen, Vorhersagen, Hypothesentests usw. interessiert sind, müssen Sie weit über R2 hinausdenken (und vielleicht sogar R2 ignorieren).
robin.datadrivers