Capitulo 2 Regresión lineal simple

Figura 2.1

Ecuación de la recta

x <- c(0, 4)
y <- c(0, 4)
plot(x, y, type ="n", xlab = "X = Predictor", ylab = "E(Y|X=x)")      
abline(0.8, 0.7)      
x<-c(2, 3, 3)      
y<-c(2.2, 2.2, 2.9)      
lines(x, y, lty = 2)      
lines(c(0, 0), c(0, 0.8), lty = 2)      
#lines(c(0, 4), c(0, 0), lty=2)      
text(3.05, 2.5, expression(beta[1] == Pendiente), adj = 0)      
text(0.05, 0.4, expression(beta[0] == Intercepto), adj = 0)      
text(2.5, 1.8, "1")

Figura 2.2

Error por falta de ajuste

x <- c(0, 4) 
y <- c(0, 4) 
plot(x, y, type = "n", xlab = "X = Predictor", ylab = "E(Y|X=x)")    
abline(0.8, 0.7, lty = 2)
x <- seq(0, 4, length = 200) 
y <- 0.175*x*x + 1.10625 
lines(x, y)
lines( c(3.8, 3.8), c(3.46, 3.63325))
text(1, 2.7, "Función media lineal", adj = 0, cex = 0.8
text(1.5, 1.2, "Verdadera función media", adj = 0, cex = 0.8
text(3.5, 3.5, "Error por falta de ajuste", adj=1, cex = 0.8)
library(diagram)
## Warning: package 'diagram' was built under R version 3.1.3
## Loading required package: shape
## Warning: package 'shape' was built under R version 3.1.3
curvedarrow(from = c(3, 3.6), to = c(3.7, 3.7), lwd = 0.5, lty = 1, curve = -0.5)

Figura 2.3

Residuales en la regresión lineal simple

x <- c(0.45, 3.97, 1.12, 4.21, -0.23, 1.56, -0.01, 2.67, 1.51, 0.93, 2.08, 3.50,4.14, 1.92, 2.11, 3.25, 0.67, 0.68, -0.22, 3.96)
y <- c(-1.24, 4.87, 1.32, 4.14, -0.62, 0.66, 0.61, 3.27, 1.97, 0.40, 2.49, 4.00, 3.11, 2.08, 1.97, 2.70, 1.50, 1.77, -0.26, 2.11) 
m1 <- lm(y ~ x) 
yhat <- predict(m1) 
plot(x, y, type = "p", xlab = expression(X==Predictor), ylab = expression(Y==Respuesta))
abline(m1) 
for (i in 1:20){
  lines(list(x=c(x[i], x[i]),y=c(y[i], yhat[i])))
  }

Figura 2.4

Dos funciones media comparadas con el ANVA

x <- c(0.45, 3.97, 1.12, 4.21, -0.23, 1.56, -0.01, 2.67, 1.51, 0.93, 2.08, 3.50,4.14, 1.92, 2.11, 3.25, 0.67, 0.68, -0.22, 3.96)
y <- c(-1.24, 4.87, 1.32, 4.14, -0.62, 0.66, 0.61, 3.27, 1.97, 0.40, 2.49, 4.00, 3.11, 2.08, 1.97, 2.70, 1.50, 1.77, -0.26, 2.11) 
m1 <- lm(y ~ x) 
m0 <- lm(y ~ 1)
plot(x, y, type = "p", xlab = expression(X==Predictor), ylab = expression(Y==Respuesta))
abline(reg = m1) 
abline(m0$coef[1],0) 
text(2.5, 1.5, "Función media (2.7.1)", adj = 0 
text(0.0, -0.2, "Función media (2.7.4)", adj = 0

ANVA para la data Forbes

Forbes.data <- read.table(file = "http://tarwi.lamolina.edu.pe/~clopez/Regresion/Forbes.txt", header = T)
attach(Forbes.data)
Forbes.m1 <- lm(LogPresion ~ Temperatura)
Forbes.m1
## 
## Call:
## lm(formula = LogPresion ~ Temperatura)
## 
## Coefficients:
## (Intercept)  Temperatura  
##    -42.1378       0.8955
summary(Forbes.m1)
## 
## Call:
## lm(formula = LogPresion ~ Temperatura)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.32220 -0.14473 -0.06664  0.02184  1.35978 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -42.13778    3.34020  -12.62 2.18e-09 ***
## Temperatura   0.89549    0.01645   54.43  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.379 on 15 degrees of freedom
## Multiple R-squared:  0.995,  Adjusted R-squared:  0.9946 
## F-statistic:  2963 on 1 and 15 DF,  p-value: < 2.2e-16
anova(Forbes.m1)
## Analysis of Variance Table
## 
## Response: LogPresion
##             Df Sum Sq Mean Sq F value    Pr(>F)    
## Temperatura  1 425.64  425.64  2962.8 < 2.2e-16 ***
## Residuals   15   2.15    0.14                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
confint(Forbes.m1, level = 0.90)
##                     5 %        95 %
## (Intercept) -47.9933161 -36.2822424
## Temperatura   0.8666529   0.9243344
predict(Forbes.m1, data.frame(Temperatura = 200), level = 0.95, interval = "confidence")
##       fit      lwr      upr
## 1 136.961 136.7393 137.1826
predict(Forbes.m1, data.frame(Temperatura = 200), level = 0.95, interval = "prediction")
##       fit      lwr      upr
## 1 136.961 136.1232 137.7987

Figura 2.5

Residuales para la data Tallas

Tallas.data <- read.table(file = "http://tarwi.lamolina.edu.pe/~clopez/Regresion/Tallas.txt", header = T)
Tallas.m1 <- lm(HTalla ~ MTalla, data = Tallas.data) 
plot(predict(Tallas.m1), residuals(Tallas.m1), cex = 0.5, xlab = "Valores estimados", ylab = "Residuales") 
abline(h = 0, lty = 2)

Figura 2.6

Residuales para la data Forbes

plot(predict(Forbes.m1), residuals(Forbes.m1), cex = 0.5, xlab = "Valores estimados", ylab = "Residuales")
text(predict(Forbes.m1)[12], residuals(Forbes.m1)[12], labels = "12", adj = -1)
abline(h = 0, lty = 2)