Ma question est née d'une discussion avec @whuber dans les commentaires d'une autre question .
Plus précisément, le commentaire de @whuber était le suivant:
Une des raisons pour lesquelles cela pourrait vous surprendre est que les hypothèses sous-jacentes à un test de corrélation et à un test de pente de régression sont différentes - même si nous comprenons que la corrélation et la pente mesurent vraiment la même chose, pourquoi leurs valeurs de p devraient-elles être les mêmes? Cela montre comment ces problèmes vont plus loin que simplement si et doivent être numériquement égaux.β
Cela m'a fait réfléchir et je suis tombé sur une variété de réponses intéressantes. Par exemple, j'ai trouvé cette question " Hypothèses de coefficient de corrélation " mais je ne vois pas comment cela clarifierait le commentaire ci-dessus.
J'ai trouvé des réponses plus intéressantes sur la relation entre le de Pearson et la pente dans une simple régression linéaire (voir ici et ici par exemple) mais aucune d'entre elles ne semble répondre à ce à quoi @whuber faisait référence dans son commentaire (du moins pas apparent tome).β
Question 1: Quelles sont les hypothèses sous-tendant un test de corrélation et un test de pente de régression?
Pour ma 2e question, considérez les sorties suivantes dans R
:
model <- lm(Employed ~ Population, data = longley)
summary(model)
Call:
lm(formula = Employed ~ Population, data = longley)
Residuals:
Min 1Q Median 3Q Max
-1.4362 -0.9740 0.2021 0.5531 1.9048
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 8.3807 4.4224 1.895 0.0789 .
Population 0.4849 0.0376 12.896 3.69e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.013 on 14 degrees of freedom
Multiple R-squared: 0.9224, Adjusted R-squared: 0.9168
F-statistic: 166.3 on 1 and 14 DF, p-value: 3.693e-09
Et la sortie de la cor.test()
fonction:
with(longley, cor.test(Population, Employed))
Pearson's product-moment correlation
data: Population and Employed
t = 12.8956, df = 14, p-value = 3.693e-09
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.8869236 0.9864676
sample estimates:
cor
0.9603906
Comme le montrent les résultats lm()
et cov.test()
, le coefficient de corrélation de Pearson et l'estimation de la pente ( ) sont largement différents, 0,96 contre 0,485, respectivement, mais la valeur t et les valeurs p sont les mêmes.β 1
Ensuite, j'ai également essayé de voir si je pouvais calculer la valeur t pour et , qui sont les mêmes malgré que et soient différents. Et c'est là que je suis coincé, au moins pour :β 1 r β 1 r
Calculez la pente ( ) dans une régression linéaire simple en utilisant les sommes totales des carrés de et : x y
x <- longley$Population; y <- longley$Employed
xbar <- mean(x); ybar <- mean(y)
ss.x <- sum((x-xbar)^2)
ss.y <- sum((y-ybar)^2)
ss.xy <- sum((x-xbar)*(y-ybar))
Calculez l'estimation des moindres carrés de la pente de régression, (une preuve en est donnée dans Crawley's R Book 1st edition , page 393):
b1 <- ss.xy/ss.x
b1
# [1] 0.4848781
Calculez l'erreur standard pour :
ss.residual <- sum((y-model$fitted)^2)
n <- length(x) # SAMPLE SIZE
k <- length(model$coef) # NUMBER OF MODEL PARAMETER (i.e. b0 and b1)
df.residual <- n-k
ms.residual <- ss.residual/df.residual # RESIDUAL MEAN SQUARE
se.b1 <- sqrt(ms.residual/ss.x)
se.b1
# [1] 0.03760029
Et la valeur t et la valeur p pour :
t.b1 <- b1/se.b1
p.b1 <- 2*pt(-abs(t.b1), df=n-2)
t.b1
# [1] 12.89559
p.b1
# [1] 3.693245e-09
Ce que je ne sais pas à ce stade, et c'est la question 2 , est de savoir comment calculer la même valeur t en utilisant au lieu de (peut-être par étapes)?β 1
Je suppose que puisque cor.test()
l'hypothèse alternative de est de savoir si la vraie corrélation n'est pas égale à 0 (voir la cor.test()
sortie ci-dessus), je m'attendrais à quelque chose comme le coefficient de corrélation de Pearson divisé par «l'erreur standard du coefficient de corrélation de Pearson» (similaire à la au dessus)?! Mais quelle serait cette erreur standard et pourquoi?b1/se.b1
Peut-être que cela a quelque chose à voir avec les hypothèses susmentionnées qui sous-tendent un test de corrélation et un test de pente de régression ?!
EDIT (27-Jul-2017): Alors que @whuber a fourni une explication très détaillée pour la question 1 (et en partie la question 2 , voir les commentaires sous sa réponse), j'ai creusé un peu plus et j'ai constaté que ces deux messages ( ici et ici ) ne montrer une erreur standard spécifique pour , qui fonctionne bien pour répondre à la question 2 , c'est-à-dire reproduire la valeur t donnée r :
r <- 0.9603906
# n <- 16
r.se <- sqrt((1-r^2)/(n-2))
r/r.se
# [1] 12.8956