Regresión lineal simple parte 2, ejercicio 2

  • Para este ejercicio se utilizará la serie de datos “women” que son alturas y pesos promedio de las mujeres estadounidenses.

Mujeres

  • Importar datos
library(prettydoc)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
head(women)
##   height weight
## 1     58    115
## 2     59    117
## 3     60    120
## 4     61    123
## 5     62    126
## 6     63    129
  • Conociendo los datos
glimpse(women) #Especifica cómo estan ordenados
## Rows: 15
## Columns: 2
## $ height <dbl> 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72
## $ weight <dbl> 115, 117, 120, 123, 126, 129, 132, 135, 139, 142, 146, 150, ...
  • Resumen estadístico
summary(women) #Valor Mínimo, Máximo, Mediana y Cuartiles
##      height         weight     
##  Min.   :58.0   Min.   :115.0  
##  1st Qu.:61.5   1st Qu.:124.5  
##  Median :65.0   Median :135.0  
##  Mean   :65.0   Mean   :136.7  
##  3rd Qu.:68.5   3rd Qu.:148.0  
##  Max.   :72.0   Max.   :164.0
  • Matriz de diagramas de dispersión
pairs(women)

Podemos observar una correlación entre la altura y el peso de las mujeres estadounidenses por la manera en que están ordenados los datos, los puntos en la gráfica forman casi una línea recta.

  • Matriz de diagramas de coeficientes de correlación
cor(women) #índices de correlación
##           height    weight
## height 1.0000000 0.9954948
## weight 0.9954948 1.0000000

En los índices de correlación podemos observar un valor del 99.54% entre las variables de altura y peso.

  • Prueba de correlación de Pearson
cor.test(x=women$weight,y=women$height, method = "pearson", digits=3)
## 
##  Pearson's product-moment correlation
## 
## data:  women$weight and women$height
## t = 37.855, df = 13, p-value = 1.091e-14
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.9860970 0.9985447
## sample estimates:
##       cor 
## 0.9954948

p-value nos indica la cantidad de valores marginales de nuestro modelo de regresión lineal, es decir, aquellos valores extremos que no están cerca de nuestra recta de mínimos cuadrados. Entre menor sea el valor de p-value, más acertado es nuestro modelo. En este caso podemos observar un valor muy pequeño.

library(GGally)
## Loading required package: ggplot2
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
ggpairs(women, lower=list(continuous = "smooth"), diag =list(continuous="bar", axislabels="none"))
## Warning in check_and_set_ggpairs_defaults("diag", diag, continuous =
## "densityDiag", : Changing diag$continuous from 'bar' to 'barDiag'
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

De lo analizado hasta aquí, podemos concluir que:

  1. La variable “weight” está relacionada con la variable “height”, por lo cual la usaremos como respuesta en este modelo.

  2. El coeficiente de correlación de Pearson es muy alto (0.9954948 ) y el valor de P es significativo (p-value = 1.091e-14), esto indica una correlación intensa.

  3. SI tiene sentido generar un modelo de regresión lineal simple, dado que tiene una correlación y significancia importantes

Modelo de regresión lineal simple

modelo.lineal <- lm(weight ~ height, data=women)
summary(modelo.lineal)
## 
## Call:
## lm(formula = weight ~ height, data = women)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.7333 -1.1333 -0.3833  0.7417  3.1167 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -87.51667    5.93694  -14.74 1.71e-09 ***
## height        3.45000    0.09114   37.85 1.09e-14 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.525 on 13 degrees of freedom
## Multiple R-squared:  0.991,  Adjusted R-squared:  0.9903 
## F-statistic:  1433 on 1 and 13 DF,  p-value: 1.091e-14

Ecuación de la recta de mínimos cuadrados

\[ y= -87.51667 + 3.45x \]

Intervalos de confianza

confint(modelo.lineal)
##                   2.5 %     97.5 %
## (Intercept) -100.342655 -74.690679
## height         3.253112   3.646888

Representación gráfica del modelo

library(ggplot2)
ggplot(data = women, mapping = aes(x = height, y = weight)) +
geom_point(color = "firebrick", size = 2) +
geom_smooth(method = "lm", se = TRUE, color = "black") +
labs(title = "Peso ~ Altura", x = "Altura", y = "Peso") +
theme_bw() + theme(plot.title = element_text(hjust = 0.5)) 
## `geom_smooth()` using formula 'y ~ x'

Verificar condiciones para aceptar o no el modelo

  • Para evaluar las condiciones que permiten decir que el modelo es válido, se hará un análisis de residuos.
par(mfrow=c(1,2))
plot(modelo.lineal)

Contraste de hipótesis (normalidad de los residuos)

Según el método de prueba de Shapiro-wilk

shapiro.test(modelo.lineal$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo.lineal$residuals
## W = 0.91909, p-value = 0.1866

Conclusiones

  • En este ejercicio elaboramos un análisis de correlación de variables obtenidas de un conjunto de datos en R sobre la altura y peso de mujeres estadounidenses. Al hacer un diagrama de dispersión, pudimos observar una relación casi lineal entras las variables. Para el análisis de dicha correlación, calculamos el coeficiente y obtuvimos un resultado del 99.54%, un valor muy alto. Con ello, decidimos elaborar un modelo de regresión lineal, obtener la recta de mínimos cuadrados, intervalos de confianza y gráficarlos.
  • Para un análisis más profundo, pueden ejecutarse diferentes pruebas, como por ejemplo,la prueba de Shapiro-Wilk, Kolmogorov-Smirnov, análisis de residuos, y de correlación de Pearson; donde obtenemos un p-value, es decir, la cantidad de valores marginados del modelo lineal, entre menor sea su valor, más acertado es el modelo.