A Regressão Linear assume uma relação causal entre duas variáveis contínuas.
Onde Y é a variável resposta, a o intercepto, b o coeficiente angular e X a variável explanatória. Ou seja, em uma regressão linear, Y varia em função de bX mais um valor constante a. Quando X = 0, a = Y (intercepto). O coeficiente angular b representa a taxa com que Y aumento em relação a X. A partir de um conjunto de dados é possível estimar os valores de a e b, assim com os erros associados a estes parâmetros. Ao fazer isso, podemos traçar a reta que melhor se ajusta aos nossos dados, ou seja, aquela que minimiza a soma de quadrados do Erro. Vamos ver um exemplo:
Entrada de dados:
Y <- c(6.5,5.8,7.8,8.1,10.4,12.3,13.1,17.4,20.1,24.5,25.5,27.1) # Variável resposta
X <- c(1.4,1.5,1.7,1.9,2.1,2.2,2.4,3.2,3.7,4.2,4.8,5.2) # Variável explicativa
dados <- data.frame(Y,X)
dados
## Y X
## 1 6.5 1.4
## 2 5.8 1.5
## 3 7.8 1.7
## 4 8.1 1.9
## 5 10.4 2.1
## 6 12.3 2.2
## 7 13.1 2.4
## 8 17.4 3.2
## 9 20.1 3.7
## 10 24.5 4.2
## 11 25.5 4.8
## 12 27.1 5.2
modelo.regressao <- lm(Y ~ X, data= dados)
summary(modelo.regressao) # Estimativa dos parâmetros, Erro, R2 do modelo
##
## Call:
## lm(formula = Y ~ X, data = dados)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.41982 -0.81114 0.02095 0.61668 1.80359
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.7619 0.7603 -2.317 0.043 *
## X 5.8234 0.2431 23.954 3.66e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.069 on 10 degrees of freedom
## Multiple R-squared: 0.9829, Adjusted R-squared: 0.9812
## F-statistic: 573.8 on 1 and 10 DF, p-value: 3.655e-10
anova(modelo.regressao) # Tabela de ANOVA
## Analysis of Variance Table
##
## Response: Y
## Df Sum Sq Mean Sq F value Pr(>F)
## X 1 655.49 655.49 573.79 3.655e-10 ***
## Residuals 10 11.42 1.14
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
plot (Y ~ X,pch=16 ,data = dados)
abline(modelo.regressao,col="red") # Esta função ajusta a reta do modelo aos dados
library(ggplot2)
ggplot(data=dados,aes(y=Y,x=X))+geom_point()+geom_smooth(method="lm")
plot(resid(modelo.regressao) ~ predict(modelo.regressao),pch=16) # Resíduos vs. Y esperado
abline(0,0,col="red") # Coloca uma reta no Y = 0
par(mfrow=c(2,2))
plot(modelo.regressao) # Diagnóstico completo dos resíduos
coef(modelo.regressao) # Coeficientes do modelo (intercepto e beta)
predict(modelo.regressao) # Valores previstos pelo modelo
residuals(modelo.regressao) # Resíduos do modelo
Gustavo Paterno - 2014 (paternogbc@gmail.com)