Correlação e regressão

Amer Cavalheiro Hamdan
11/11/2013

Resumo


  • Definição de correlação
  • Gráfico de correlação
  • Tipos de correlação
  • Correlação de Pearson
  • Regressão linear simples
  • Regressão linear múltipla

O que é correlação?


  • Correlação é a associação ou relacionamento entre duas variáveis.
    • variam quanto a sua intensidade ou força.
    • variam quanto a direção (positivas ou negativas)
    • podem ser representadas por gráficos

Correlação: exemplo 1

x <- c(1, 2, 3, 4, 5)  #criando um vetor qualquer 
y <- c(6, 7, 8, 9, 10) #criando outro vetor
plot(x,y) #desenhando um gráfico de dispersão

plot of chunk unnamed-chunk-2

Correlação: exemplo 2

idade = c(76, 60, 70, 72, 69, 73, 64, 70, 88, 66)
meem = c(27, 29, 27, 18, 27, 25, 28, 24, 25, 28)
da = data.frame(idade, meem)
da
   idade meem
1     76   27
2     60   29
3     70   27
4     72   18
5     69   27
6     73   25
7     64   28
8     70   24
9     88   25
10    66   28

Correlação: exemplo 2

plot(da$idade, da$meem) #correlação fraca e negativa

plot of chunk unnamed-chunk-4

Tipos de correlações

Coeficiente X Y
Pearson Continua Contínua
Spearman Ordinal Ordinal
Ponto biserial Dicotômica Contínua
Phi Dicotômica Dicotômica
Biserial Dicotômica Contínua
Tetracórica Dicotômica Dicotômica
Policórica Categórica Categórica

Correlação de Pearson


  • Coeficiente de correlação produto-momento de Pearson \( (r) \)
  • Mede a intensidade e a direção da relação entre duas variáveis
  • variáveis contínuas

Interpretação do r


Valores de referência Interpretação
0 < r < 0,25 baixa ou nenhuma associação
0,25 < r < 0,5 grau fraco de associação
0,5 < r < 0,75 grau moderado ou bom de associação
r > 0,75 grau bom ou excelente

Correlação de Pearson


  • Fórmula

\[ r = \frac{COV_xy}{S_x S_Y} \]

– Onde:
-COV = covariância
-S = Desvio-padrão

  • Covariância é o número que reflete o grau em que duas variáveis variam juntas.

\[ COV = \frac{\Sigma(X - \overline{X})(Y - \overline{Y})}{N - 1} \]

Correlação de Pearson: exemplo no r

da
   idade meem
1     76   27
2     60   29
3     70   27
4     72   18
5     69   27
6     73   25
7     64   28
8     70   24
9     88   25
10    66   28
cor(da$idade, da$meem)
[1] -0.3726

Matriz de correlações


cor(da)
        idade    meem
idade  1.0000 -0.3726
meem  -0.3726  1.0000
round(cor(da), 2)
      idade  meem
idade  1.00 -0.37
meem  -0.37  1.00

Gráficos de correlações


pairs(da)

plot of chunk unnamed-chunk-7

Correlação de Pearson: exemplo 4

animais = c(10, 13, 14, 11, 10, 17, 10, 7, 12, 13)
frutas = c(11, 11, 14, 9, 7, 14, 9, 4, 13, 12)
fas = c(3, 20, 27, 26, 16, 41, 34, 13, 31, 38)
dados.fv = data.frame(animais, frutas, fas)
dados.fv
   animais frutas fas
1       10     11   3
2       13     11  20
3       14     14  27
4       11      9  26
5       10      7  16
6       17     14  41
7       10      9  34
8        7      4  13
9       12     13  31
10      13     12  38

Matriz de correlação: exemplo 4

cor(dados.fv)
        animais frutas    fas
animais  1.0000 0.8724 0.6592
frutas   0.8724 1.0000 0.5186
fas      0.6592 0.5186 1.0000
pairs(dados.fv)

plot of chunk unnamed-chunk-9

Teste de significância do r de Pearson


  • Mede a associação de duas variáveis na população
  • hipótese nula afirma que a correlação populacional p (letra gregra rô) é nula
  • p = 0
  • Hipótese alternativa p diferente de 0
  • Fórmula:

\[ t = \frac{r \sqrt(N-2)}{\sqrt(1 - r^2)} \]

Teste de significância do r: exemplo

cor.test(da$idade, da$meem)

    Pearson's product-moment correlation

data:  da$idade and da$meem
t = -1.136, df = 8, p-value = 0.2889
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.8118  0.3358
sample estimates:
    cor 
-0.3726 

Correlação de Spearman

var1 = c(10, 9, 5, 6, 7)
var2 = c(3, 6, 10, 5, 4)
cor.test(var1,  var2, method="spearman")

    Spearman's rank correlation rho

data:  var1 and var2
S = 34, p-value = 0.2333
alternative hypothesis: true rho is not equal to 0
sample estimates:
 rho 
-0.7 

Regressão: objetivos


  • Predizer observações futuras
  • Avaliar o efeito as relações da variável independente (x) sobre uma variável dependente (y)
  • Descrever a estrutura dos dados

Modelo de Regressão Linear


Modelo: y = a + bx

Onde:
y = é o valor a ser predito
a = é o intercepto (valor quando x = 0)
b = é a inclinação da reta de regressão
x = é o valor da variável preditora

Modelo de regressão: exemplo 1

y = c(110, 120, 90, 70, 50, 80, 40, 40, 50, 30)
xx = 1:10

modelo = lm(xx ~ y)
modelo

Call:
lm(formula = xx ~ y)

Coefficients:
(Intercept)            y  
    11.3995      -0.0868  

Gráfico de regresssão

plot(xx ~ y)
abline(modelo, col=2, lty=2, lwd=2)
legend("top", legend=c("valores observados", "valores ajustados"), lty=c(NA,2), col=c(1,2), lwd=1:2, bty="n", pch=c(1,NA))

plot of chunk unnamed-chunk-13

Análise do modelo de regressão

predict(modelo)  # valores preditos pela equação de regressão
     1      2      3      4      5      6      7      8      9     10 
1.8562 0.9886 3.5913 5.3265 7.0616 4.4589 7.9292 7.9292 7.0616 8.7968 
residuals(modelo) # valores resíduos
       1        2        3        4        5        6        7        8 
-0.85616  1.01142 -0.59132 -1.32648 -2.06164  1.54110 -0.92922  0.07078 
       9       10 
 1.93836  1.20320 

Gráfico para análise do modelo de regressão

par(mfrow = c(2, 2))
plot(modelo)

plot of chunk unnamed-chunk-15

par(mfrow = c(1, 1))

Regressão: exemplo 2

altura = c(175, 168, 170, 171, 169, 165, 165, 160, 180, 186)
peso = c(80, 68, 72, 75, 70, 65, 62, 60, 85, 90)

modelo.exemplo2 = lm(formula = altura ~ peso, x=TRUE, y=TRUE)
modelo.exemplo2

Call:
lm(formula = altura ~ peso, x = TRUE, y = TRUE)

Coefficients:
(Intercept)         peso  
    115.200        0.766  

Regressão: exemplo 2

modelo.exemplo2 <- lm(altura ~ peso)
summary(modelo.exemplo2)

Call:
lm(formula = altura ~ peso)

Residuals:
   Min     1Q Median     3Q    Max 
-1.662 -0.968 -0.162  0.568  2.298 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 115.2002     3.4845    33.1  7.6e-10 ***
peso          0.7662     0.0475    16.1  2.2e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.41 on 8 degrees of freedom
Multiple R-squared:  0.97,  Adjusted R-squared:  0.966 
F-statistic:  260 on 1 and 8 DF,  p-value: 2.21e-07

Gráfico de dispersão: exemplo 2

plot(peso, altura)
abline(modelo.exemplo2,col="red")

plot of chunk unnamed-chunk-18

Análise dos resíduos: exemplo 2

fitted(modelo.exemplo2) # valor estimado de acordo com o melhor ajuste
    1     2     3     4     5     6     7     8     9    10 
176.5 167.3 170.4 172.7 168.8 165.0 162.7 161.2 180.3 184.2 
resid(modelo.exemplo2) # diferença entre o valor estimado e o valor observado
        1         2         3         4         5         6         7 
-1.492964  0.700950 -0.363688 -1.662167  0.168631 -0.000572  2.297906 
        8         9        10 
-1.169775 -0.323762  1.845441 

Gráfico do modelo de regressão

plot(peso, altura)
lines(peso, fitted(modelo.exemplo2))

plot of chunk unnamed-chunk-20

Regressão múltipla: exemplo 1

reg.multipla <- lm(fas ~ animais + frutas)
summary(reg.multipla)

Call:
lm(formula = fas ~ animais + frutas)

Residuals:
    Min      1Q  Median      3Q     Max 
-14.990  -4.975  -0.259   6.071  14.249 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)   -9.862     14.943   -0.66     0.53
animais        3.754      2.491    1.51     0.18
frutas        -0.881      2.139   -0.41     0.69

Residual standard error: 10.1 on 7 degrees of freedom
Multiple R-squared:  0.448, Adjusted R-squared:  0.29 
F-statistic: 2.84 on 2 and 7 DF,  p-value: 0.125

Gráficos de regressão múltipla

valoresPreditos <- fitted(reg.multipla)

plot(fas ~ valoresPreditos)
abline(lm(fas ~ valoresPreditos, col="blue"))

plot of chunk unnamed-chunk-22

Análise dos resíduos

residuos <- resid(reg.multipla)
hist(residuos)

plot of chunk unnamed-chunk-23

Análise dos resíduos

plot(valoresPreditos ~ residuos)
abline(lm(valoresPreditos ~ residuos), col="red")

plot of chunk unnamed-chunk-24

Outros modelos de regressão


  • Modelos lineares Generalizados (glm)
  • Modelos não lineares (nlm)
  • Modelos não lineares mistos (nlm)