Minha pergunta surgiu de uma discussão com @whuber nos comentários de uma pergunta diferente .
Especificamente, o comentário de @whuber foi o seguinte:
Uma razão pela qual você pode surpreender é que as suposições subjacentes a um teste de correlação e a um teste de inclinação de regressão são diferentes - portanto, mesmo quando entendemos que a correlação e a inclinação estão realmente medindo a mesma coisa, por que seus valores de p devem ser os mesmos? Isso mostra como essas questões são mais profundas do que simplesmente se e devem ser numericamente iguais.
Isso me fez pensar e me deparei com uma variedade de respostas interessantes. Por exemplo, encontrei esta pergunta " Pressupostos do coeficiente de correlação ", mas não consigo ver como isso esclareceria o comentário acima.
Encontrei respostas mais interessantes sobre a relação de de Pearson e a inclinação em uma regressão linear simples (veja aqui e aqui, por exemplo), mas nenhuma delas parece responder a que @whuber estava se referindo em seu comentário (pelo menos não aparente para mim).β
Pergunta 1: Quais são as premissas subjacentes a um teste de correlação e um teste de inclinação de regressão?
Para minha segunda pergunta, considere as seguintes saídas em 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
E a saída da cor.test()
função:
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
Como pode ser visto pela saída lm()
e cov.test()
, o coeficiente de correlação de Pearson e a estimativa da inclinação ( β 1 ) são amplamente diferentes, 0,96 vs. 0,485, respectivamente, mas o valor t e os valores p são os mesmos.
Então eu também tentei ver se eu sou capaz de calcular o t-valor para e β 1 , que são as mesmas, apesar r e β 1 ser diferente. E é aí que eu fico preso, pelo menos para r :
Calcular o declive ( ) em uma regressão linear simples utilizando as somas totais de quadrados de x e 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))
Calcule a estimativa de mínimos quadrados da inclinação de regressão, (há uma prova disso na R Book 1st edition , Crawley, R, 1ª edição , página 393):
b1 <- ss.xy/ss.x
b1
# [1] 0.4848781
Calcule o erro padrão para :
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
E o valor t e o valor p para :
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
O que eu não sei neste momento, e esta é a pergunta 2 , é: como calcular o mesmo valor t usando vez de β 1 (talvez em etapas de bebê)?
Suponho que, como cor.test()
a hipótese alternativa é se a correlação verdadeira não é igual a 0 (veja a cor.test()
saída acima), eu esperaria algo como o coeficiente de correlação de Pearson dividido pelo "erro padrão do coeficiente de correlação de Pearson" (semelhante ao acima)?! Mas qual seria esse erro padrão e por quê?b1/se.b1
Talvez isso tenha algo a ver com as suposições acima mencionadas subjacentes a um teste de correlação e um teste de inclinação de regressão ?!
EDIT (27-Jul-2017): Enquanto o @whuber forneceu uma explicação muito detalhada para a Questão 1 (e em parte a Questão 2 , veja os comentários sob sua resposta), eu fiz algumas escavações e descobri que essas duas postagens ( aqui e aqui ) mostre um erro padrão específico para , que funciona bem para responder à pergunta 2 , que é reproduzir o valor t dado r :
r <- 0.9603906
# n <- 16
r.se <- sqrt((1-r^2)/(n-2))
r/r.se
# [1] 12.8956