Régression linéaire + confondeur

8

Supposons que j'aimerais accéder à la taille de l' effet et la signification entre le résultat Y et variable X ajustée par confusionnelle Z .

Ma question est que s'il y a une différence pour déterminer la taille de l'effet et la signification de X entre le scénario suivant.

  1. mettre variable et confusion dans un modèle de régression linéaire. Ce moyen modèle de régression juste en forme de Y ~ X + Z , puis calculer le coefficient et la valeur p de X .
  2. Obtenez le résiduel, R de Y ~ Z , puis ajustez le modèle de régression de R ~ X , puis calculez le coefficient et sa valeur de p de X (à partir de R ~ X).

J'apprends le confondeur d' ici .

Éditer -----

J'apprécie la réponse de @Gordon Smyth. Cependant, à partir d'une étude de simulation (code ci-dessous), où j'ai comparé le taux de fausses découvertes de méthode1, méthode2 et la méthode3 de la réponse de Gordon Smyth, j'ai trouvé de façon surprenante que la méthode2 a un taux de faux positifs assez bas.

Je comprends que la méthode 1 est "manuel" correcte. Je me demande ce qui ne va pas exactement avec la méthode2 logiquement? En outre, "Tous les modèles sont faux, mais certains sont utiles".

p1 = p2 = p3 = c()
i=0
while(i<10000){
  y = rnorm(10)
  x = rnorm(10)
  c = rnorm(10)


  # method 1
  p1[i] = summary(lm(y~x + c))$coefficients[2,4]
  # method 2
  p2[i] = summary(lm(lm(y ~ c)$res ~ x))$coefficients[2,4]
  # method 3
  p3[i] = summary(lm(lm(y ~ c)$res~lm(x ~ c)$res))$coefficients[2,4]


  i = i+1
}


# number of false positive.
sum(p1<0.05) # 484
sum(p2<0.05) # 450
sum(p3<0.05) # 623
WCMC
la source
1
Je ne comprends pas pourquoi vous êtes surpris que les trois méthodes fassent ce que je vous ai dit qu'elles feraient dans ma réponse il y a un an. Je vous ai dit que la méthode 2 serait conservatrice (c'est ce que vous avez trouvé) et que la méthode 3 serait anti-conservatrice (ce qui est encore ce que vous avez trouvé). Quoi qu'il en soit, le vrai problème avec votre méthode 2 n'apparaît que lorsque X et Z sont corrélés entre eux ainsi qu'avec Y. J'ai développé ma réponse maintenant pour expliquer que c'est plus en détail. Je donne maintenant un exemple numérique montrant à quel point la méthode 2 peut être sérieusement mauvaise.
Gordon Smyth

Réponses:

13

Vous devez ajuster X ainsi que Y pour le confondant

La première approche (utilisant la régression multiple) est toujours correcte. Votre deuxième approche n'est pas correcte comme vous l'avez dit, mais peut être rendue presque correcte avec un léger changement. Pour que la deuxième approche soit correcte, vous devez régresser les deuxY et X séparément sur Z. J'aime écrireY.Z pour les résidus de la régression de Y sur Z et X.Z pour les résidus de la régression de X et Z. Nous pouvons interpréterY.Z comme Y ajusté pour Z (identique à votre R) et X.Z comme X ajusté pour Z. Vous pouvez ensuite régresserY.Z sur X.Z.

Avec ce changement, les deux approches donneront le même coefficient de régression et les mêmes résidus. Cependant, la deuxième approche ne calculera toujours pas correctement les degrés de liberté résiduelsn1 au lieu de n2 (où nest le nombre de valeurs de données pour chaque variable). En conséquence, la statistique de test pourXde la deuxième approche sera légèrement trop grande et la valeur de p sera légèrement trop petite. Si le nombre d'observationsn est grand, alors les deux approches convergeront et cette différence n'aura pas d'importance.

Il est facile de voir pourquoi les degrés de liberté résiduels par rapport à la deuxième approche ne seront pas tout à fait corrects. Les deux approches régressentY à la fois X et Z. La première approche le fait en une seule étape tandis que la seconde approche le fait en deux étapes. Cependant, la deuxième approche "oublie" queY.Z résulte d'une régression sur Z et néglige donc de soustraire le degré de liberté de cette variable.

Le graphique variable ajouté

Sanford Weisberg (régression linéaire appliquée, 1985) recommandait le tracé Y.Z contre X.Zdans un nuage de points. Cela a été appelé un graphique variable ajouté , et il a donné une représentation visuelle efficace de la relation entreY et X après ajustement pour Z.

Si vous n'ajustez pas X, vous sous-estimez le coefficient de régression

La deuxième approche, comme vous l'avez initialement dit, régressant Y.Z sur X, est trop conservateur. Il minimisera l'importance de la relation entreY et X ajustement pour Zcar il sous-estime la taille du coefficient de régression. Cela se produit parce que vous régressezY.Z dans l'ensemble de X au lieu de simplement de la part de X qui est indépendant de Z. Dans la formule standard du coefficient de régression en régression linéaire simple, le numérateur (covariance deY.Z avec X) sera correct mais le dénominateur (la variance de X) sera trop grand. La covariable correcteX.Z a toujours une variance plus petite que X.

Pour être précis, votre méthode 2 sous-estimera le coefficient de régression partielle pour X par un facteur de 1r2r est le coefficient de corrélation de Pearson entre X et Z.

Un exemple numérique

Voici un petit exemple numérique pour montrer que la méthode de la variable ajoutée représente le coefficient de régression de Y sur X correctement alors que votre deuxième approche (méthode 2) peut être arbitrairement erronée.

Nous simulons d'abord X, Z et Y:

> set.seed(20180525)
> Z <- 10*rnorm(10)
> X <- Z+rnorm(10)
> Y <- X+Z

Ici Y=X+Z donc les vrais coefficients de régression pour X et Z sont tous deux 1 et l'ordonnée à l'origine est 0.

Ensuite, nous formons les deux vecteurs résiduels R (comme mon Y.Z) et X.Z:

> R <- Y.Z <- residuals(lm(Y~Z))
> X.Z <- residuals(lm(X~Z))

La régression multiple complète avec les deux X et Y comme prédicteurs donne exactement les vrais coefficients de régression:

> coef(lm(Y~X+Z))
(Intercept)           X           Z 
   5.62e-16    1.00e+00    1.00e+00 

L' approche variable ajoutée (méthode 3) donne également le coefficient deX exactement correct:

> coef(lm(R~X.Z))
(Intercept)         X.Z 
  -6.14e-17    1.00e+00 

En revanche, votre méthode 2 constate que le coefficient de régression n'est que de 0,01:

> coef(lm(R~X))
(Intercept)           X 
    0.00121     0.01170 

Votre méthode 2 sous-estime donc la taille réelle de l'effet de 99%. Le facteur de sous-estimation est donné par la corrélation entreX et Z:

> 1-cor(X,Z)^2
[1] 0.0117

Pour voir tout cela visuellement, le tracé variable ajouté deR contre X.Z montre une relation linéaire parfaite avec la pente unitaire, représentant la véritable relation marginale entre Y et X:

Graphique variable ajouté

En revanche, l'intrigue de R vs les non ajustés Xne montre aucune relation du tout. La vraie relation a été entièrement perdue:

Tracé incorrect utilisant X non corrigé

Gordon Smyth
la source
1
Êtes-vous sûr que les deux approches donneront les mêmes coefficients de régression? Si c'était vrai, au lieu de faire une régression multiple avec k variables indépendantes, nous pourrions faire k régressions avec une seule variable indépendante et obtenir exactement le même résultat beaucoup plus rapidement.
Tomek Tarczynski
1
Il me manque probablement quelque chose. Lorsque j'essaie de simuler cela, j'obtiens un coefficient différent pour X. Le code R est inférieur à set.seed (1234) k <- 100 x <- runif (k) z <- x + runif (k) y <- 5 * x - 3 * z + runif (k) # x coefficient 5.1252 lm (y ~ x + z) modèle <- lm (y ~ z) res <- modèle $ résiduels # coefficient x 2.82 modèle2 <- lm (res ~ x)
Tomek Tarczynski
1
@TomekTarczynski Vous avez raison, j'ai oublié de souligner que X doit être régressé sur Zainsi que. J'ai modifié ma réponse pour la corriger.
Gordon Smyth
Bonjour Gordon, y a-t-il quelque chose qui cloche dans la deuxième approche autre que la question du degré de liberté? par exemple en termes de logique?
WCMC
Salut Gordon, j'ai édité ma question. J'apprécie si vous pouviez jeter un œil quand vous en aurez le temps.
WCMC