Uso del Paquete ggplot2() de R para Gráficos de Mejor Calidad

El paquete gglot2() nos presenta ayudas o mejoras para la estética de nuestros gráficos, utilizados en los análisis estadístico. Ademas de muchas mejoras que superan al paquete base.

Aquí se mostrara solo un poco de lo mucho que se puede hacer con este paquete ayudandonos de una herramienta estadística como el análsis de regresión.

Cargando el Paquete

 library(ggplot2)

Datos Utilizados

Se utilizan los datos (cars) incorporados en el paquete datasets los cuales tienen la medición de la velocidad (mph) y las distancia (ft) de frenano de 50 autos.

data(cars)

## Primeras 6 observaciones
head(cars)
##   speed dist
## 1     4    2
## 2     4   10
## 3     7    4
## 4     7   22
## 5     8   16
## 6     9   10

Ajuste del Modelo de Regresión Lineal Simple

modelo <- lm(speed ~ dist, data = cars)
summary(modelo)
## 
## Call:
## lm(formula = speed ~ dist, data = cars)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -7.5293 -2.1550  0.3615  2.4377  6.4179 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  8.28391    0.87438   9.474 1.44e-12 ***
## dist         0.16557    0.01749   9.464 1.49e-12 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.156 on 48 degrees of freedom
## Multiple R-squared:  0.6511, Adjusted R-squared:  0.6438 
## F-statistic: 89.57 on 1 and 48 DF,  p-value: 1.49e-12

Extración de Coeficientes del Modelo

speedp <- predict(modelo) #Valores Predichos
b0 <- round(modelo$coefficients[1],2)
b1 <- round(modelo$coefficients[2],2)
b0
## (Intercept) 
##        8.28
b1
## dist 
## 0.17

Gráfico de Dispersión con Recta de Regresión Ajustada

qplot(x = dist, y = speed,data = cars, 
      main = "Velocidad vs Distancia", ylab = "Velocidad (mph)",
      xlab = "Distancia(ft)", geom = c("point"),
      method = "lm") + geom_line(aes(y=speedp), lwd = 1.2, color = 4) +
  geom_text(x = 25, y = 25, aes(label = paste("Velocidad^", " = ", b0, " + ", b1, "*","Distancia")))

Gráfico de Residuales vs Valores Ajustados

qplot(x = speedp, y = rstandard(modelo), main = "Residuales Estandarizados vs Valores Ajustados", geom = c("point"), ylab = "Residuales Estandarizados", xlab = "Valores Ajustados") + geom_hline(yintercept = 0 , color = 2)

ggplot(as.data.frame(residuals(modelo)),aes(sample = residuals(modelo))) +  geom_qq()