Pinguinos

Author

Irving Cauich & Antonio Leal

1. Introducción y Planteamiento del Problema

En este reporte utilizaremos el conjunto de datos disponible en R, penguins este contiene información sobre las características corporales de 344 pingüinos de 3 especies(Adelie, Gentoo y Chinstrap). En este trabajo solo trabajaremos con la muestra de la especie de pingüinos Gento del genero machos.

Nuestro objetivo es analizar cómo influye la masa corporal en gramos de los pingüinos (\(X\) = body_mass_g) sobre la longitud de las aletas en milimetros (\(Y\) = flipper_length_mm).

Gentoo Male Female
123 61 62

library(mosaic)
library(palmerpenguins)
datos_male <- penguins %>%
  filter(species == "Gentoo", sex == "male") %>%
  select(flipper_length_mm, body_mass_g) %>%
  na.omit()

2. Análisis Exploratorio de Datos

Se cargan las librerías necesarias para el análisis y se importa la base de datos penguins.

Código
library(mosaic)
library(palmerpenguins)
favstats(~ flipper_length_mm , data = datos_male)
 min  Q1 median  Q3 max    mean       sd  n missing
 208 218    221 225 231 221.541 5.673252 61       0
favstats(~ body_mass_g, data = datos_male)
  min   Q1 median   Q3  max     mean       sd  n missing
 4750 5300   5500 5700 6300 5484.836 313.1586 61       0

Las longitudes de las aletas (mm) tienen una media de 221.541 y una mediana de 221, lo que indica una leve distribución sesgada a la derecha o tiende a no tener sesgo. Las longitudes van de 208 a 231 mm.

Gráfico de dispersión

Visualizamos la relación entre ambas variables para comprobar si una tendencia lineal es adecuada.

Código
library(mosaic)
library(palmerpenguins)
library(ggplot2)
ggplot(datos_male, aes(x = body_mass_g, y = flipper_length_mm)) +
  geom_point(color = "#16a085", size = 3, alpha = 0.8) +
  geom_smooth(method = "lm", se = TRUE, color = "#2c3e50", fill = "#16a085", alpha = 0.2) +
  labs(
    title = "Relación entre la masa corporal y la longitud de las aletas",
    subtitle = "Dataset penguins",
    x = "Masa corporal de pingüinos Gentoo machos (Gramos - g)",
    y = "Longitud de las aletas (Milímetros - mm)"
  ) +
  theme_minimal()

Se observa una tendencia lineal positiva: a medida que la masa corporal aumenta, la longitud de las aletas aumenta de forma aproximadamente lineal. No obstante los puntos muestran una dispersión considerable alrededor de la recta de regresión.

3. Ajuste del Modelo de Regresión Lineal Simple

El modelo matemático poblacional se define como:

\[y_i= \beta_0+\beta_1x_i+\varepsilon_i\]

Donde:

\(Y_i\) son las longitudes de las aletas (flipper_length_mm)

\(X_i\) es la masa corporal (body_mass_g)

\(\beta_0\) es el intercepto (la longitud de la aleta estimada cuando la masa corporal es 0).

\(\beta_1\) es la pendiente (el incremento de la longitud de la aleta cuando aumenta la masa corporal).

\(\varepsilon_1\) es el término de error aleatorio

Estimación de los coeficientes

Ajustamos el modelo en R utilizando la función lm( ):

Código
library(mosaic)
library(palmerpenguins)
library(lmtest)
modelo <- lm(flipper_length_mm ~ body_mass_g, data = datos_male)
summary(modelo)

Call:
lm(formula = flipper_length_mm ~ body_mass_g, data = datos_male)

Residuals:
     Min       1Q   Median       3Q      Max 
-12.7338  -4.2371   0.0689   4.8649   8.4703 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 1.887e+02  1.223e+01  15.431  < 2e-16 ***
body_mass_g 5.987e-03  2.226e-03   2.689  0.00929 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 5.4 on 59 degrees of freedom
Multiple R-squared:  0.1092,    Adjusted R-squared:  0.0941 
F-statistic: 7.232 on 1 and 59 DF,  p-value: 0.009294

Interpretación de los parámetros

  • Intercepto (\(\hat{\beta}_0\)): 188.7 representa la longitud de las aletas estimada por el modelo cuando la masa corporal es de cero gramos.

  • Pendiente (\(\hat{\beta}_1\)): 0.005987 Indica que, por cada gramo adicional de masa corporal, la longitud de las aletas aumenta en promedio aproximadamente 0.005987 milímetros.

4. Diagnóstico del Modelo

Para validar que las inferencias estadísticas del modelo sean confiables, debemos evaluar los supuestos sobre los residuos (εi): normalidad, homocedasticidad (varianza constante) e independencia.

Gráficos de Diagnóstico Estándar

Código
library(mosaic)
library(palmerpenguins)
library(ggplot2)
library(lmtest)
par(mfrow = c(2, 2))
plot(modelo)

Análisis detallado de los supuestos:

  1. Independencia (Residuals vs Fitted): En el primer gráfico, los puntos se distribuyen de manera aleaotoria alrededor de la línea central. Sin embargo, la línea roja presenta una ligera curvatura, lo que podría indicar una pequeña desviación de la linealidad del modelo.

  2. Normalidad de los errores (Q-Q Residuals): En el gráfico Normal Q-Q, la mayoría de puntos sigue aproximadamente la tendencia de la línea diagonal, aunque se observan algunas desviaciones en las colas. Esto puede indicar que el supuesto de normalidad de los residuos se cumple casi de forma aceptable.

  3. Homocedasticidad (Scale-Location): En el gráfico los puntos tienen una dispersión vertical similar a lo largo del eje horizontal y la línea roja se mantiene aproximadamente horizontal. Esto sugiere que el supuesto de homocedasticidad parace razonablemente aceptable.

  4. Puntos influyentes (Residuals vs Levarage): El gráfico no muestra puntos que superen las bandas de la distancia de Cook (líneas rojas punteadas que no se pueden percibir en la gráfica), lo que indica que, no hay una sola observación individual que esté alterando o sesgando de forma extrema la pendiente de la regresión por sí sola.

5. Análisis de la variable respuesta

En este apartado se pretende realizar una análisis exploratorio de la variable respuesta (flipper_length_mm), en el cual se realizan diversos gráficos e indicadores para observar el comportamiento y la distribucción de la variable.

Código
library(mosaic)
library(palmerpenguins)
library(ggplot2)
library(lmtest)
grafico_1<-ggplot(data=datos_male)+
  geom_histogram(aes(x=body_mass_g),binwidth = 52.5,fill = "#4D6291", color = "black")+
  theme(axis.text.x = element_text(size = 10))+
  labs(title = "Histograma variable mass_g", x = "body_mass_g", y = "Frecuencia")+
  theme(plot.title = element_text(hjust = 0.5))

grafico_1

Código
library(kableExtra)

Adjuntando el paquete: 'kableExtra'
The following object is masked from 'package:dplyr':

    group_rows
library(mosaic)
kable(data.frame(Cuartiles =quantile(datos_male$body_mass_g,prob=c(0.25,0.5,0.75))),
      caption= "Indicadores de posición",aling= "cc") 
Indicadores de posición
Cuartiles
25% 5300
50% 5500
75% 5700
Código
library(mosaic)
library(palmerpenguins)
library(ggplot2)
library(lmtest)
grafico_2<-ggplot(data=datos_male)+
  geom_boxplot(aes(x=body_mass_g), col= "blue", outlier.color = "red")+
  labs(title = "Diagrama de cajas - Variable mass_g", x = "body_mass_g", y="Porcentaje")+
  theme(plot.title = element_text(hjust = 0.5))
grafico_2

Código
Indicadores Descriptivos de longitud de las aletas (flipper_length_mm)
Estadístico Valor
Moda 215.00
Varianza 32.19
Desviación Estándar 5.67
Coeficiente de Variación (%) 2.56
Curtosis -0.72
integer(0)

6. Supuesto de Normalidad de los residuales

Planteamiento de las Hipótesis

\[H_0=\text{Los residuales del modelo siguen una distribución normal } (\varepsilon_i∼N(0,\sigma^2)).\]

\[H_1=\text{Los residuales no siguen una distribución normal}\]


    Lilliefors (Kolmogorov-Smirnov) normality test

data:  modelo$residuals
D = 0.087346, p-value = 0.2948

Conclusión

Como el p-valor=0.2948 es mayor que el nivel de significancia α=0.05, no se rechaza la hipótesis nula (H0). Por lo tanto, con un nivel de confianza del 95%, existe suficiente evidencia estadística para afirmar que los residuales del modelo satisfacen el supuesto de normalidad.

7. Supuesto de Homocedasticidad

Planteamiento de las Hipótesis

\[H_0=\text{Los residuales son homocedásticos (la varianza de los errores es constante, )}.\]

\[H_1= \text{Los residuales son heterocedásticos (la varianza de los errores no es constante)}.\]


    studentized Breusch-Pagan test

data:  modelo
BP = 2.2706, df = 1, p-value = 0.1318

Mediante la prueba de Breusch-Pagan se obtuvo un estadístico χ2=2.2706 con un p-valor=0.1318. Al ser el p-valor>0.05, no existe evidencia estadística para rechazar la hipótesis nula con un nivel de confianza del 95%.

8. Supuesto de Independencia

Planteamiento de las Hipótesis

\[H_0:ρ=0 (\text{Los errores son independientes / No existe autocorrelación en los residuales}).\]

\[H1:ρ\neq0(\text{Existe autocorrelación en los residuales})\]


    Durbin-Watson test

data:  modelo
DW = 1.3618, p-value = 0.004561
alternative hypothesis: true autocorrelation is greater than 0

Al ejecutar la prueba sobre el modelo ajustado, se obtuvo un estadístico DW=1.3686 con un p-valor=0.004561. Al ser el p-valor≤0.05, se rechaza la hipótesis nula de independencia bajo la ordenación original de los datos.