A è positivamente correlato a B.
C è il risultato di A e B, ma l'effetto di A su C è negativo e l'effetto di B su C è positivo.
Questo può succedere?
A è positivamente correlato a B.
C è il risultato di A e B, ma l'effetto di A su C è negativo e l'effetto di B su C è positivo.
Questo può succedere?
Risposte:
Le altre risposte sono davvero meravigliose: forniscono esempi di vita reale.
Voglio spiegare perché questo può accadere nonostante la nostra intuizione del contrario.
La correlazione è il coseno dell'angolo tra i vettori. In sostanza, stai chiedendo se è possibile quello
Sì, naturalmente:
In questo esempio ( indica correlazione):
Tuttavia, la tua sorpresa non è fuori luogo.
L'angolo tra i vettori è una metrica della distanza sulla sfera dell'unità, quindi soddisfa la disuguaglianza del triangolo:
quindi, poiché ,
quindi (poiché sta diminuendo su )
Così,
Sì, due condizioni simultanee possono avere effetti opposti.
Per esempio:
Ho sentito questa analogia per auto che si applica bene alla domanda:
La chiave qui è l'intenzione del guidatore di mantenere una velocità costante (C), quindi la correlazione positiva tra A e B segue naturalmente da tale intenzione. In questo modo puoi costruire infiniti esempi di A, B, C con questa relazione.
L'analogia deriva da un'interpretazione del termostato di Milton Friedman e da un'interessante analisi della politica monetaria e dell'econometria, ma questo è irrilevante per la questione.
Sì, questo è banale da dimostrare con una simulazione:
Simula 2 variabili, A e B che sono correlate positivamente:
> require(MASS)
> set.seed(1)
> Sigma <- matrix(c(10,3,3,2),2,2)
> dt <- data.frame(mvrnorm(n = 1000, rep(0, 2), Sigma))
> names(dt) <- c("A","B")
> cor(dt)
A B
A 1.0000000 0.6707593
B 0.6707593 1.0000000
Crea variabile C:
> dt$C <- dt$A - dt$B + rnorm(1000,0,5)
Ecco:
> (lm(C~A+B,data=dt))
Coefficients:
(Intercept) A B
0.03248 0.98587 -1.05113
Modifica: in alternativa (come suggerito da Kodiologist), simulando da una normale multivariata tale che , e
> set.seed(1)
> Sigma <- matrix(c(1,0.5,0.5,0.5,1,-0.5,0.5,-0.5,1),3,3)
> dt <- data.frame(mvrnorm(n = 1000, rep(0,3), Sigma, empirical=TRUE))
> names(dt) <- c("A","B","C")
> cor(dt)
A B C
A 1.0 0.5 0.5
B 0.5 1.0 -0.5
C 0.5 -0.5 1.0
cor(C, A) and cor(C, B) than lm(C ~ A + B) here. We're interested in, e.g., the uncontrolled relationship of A and C rather than this relationship controlled for B.
then
Then covariance between C and A could be negative in two conditions: