Tarea No. 5

Curso de Bioestadística Aplicada & Informática Médica

Descripción

  • El objetivo de la Tarea No. 5 es el de redactar un informe acerca de los resultados de crear un modelo de regresión lineal. El informe se enviará a través del Campus Virtual, en una actividad específicamente diseñada para el efecto
  • La Tarea No. 5 vale un máximo de 6 puntos. La distribución de puntos se hará como sigue:
    • Informe: 2 puntos si el informe contiene todas las secciones especificadas más adelante; 1 punto si falta al menos una sección; 0 puntos si faltan dos o más secciones.
    • Interpretación: 2 puntos si la interpretación de los resultados es correcta; 1 punto si se interpreta incorrectamemte al menos un estadístico o gráfico; 0 puntos si se interpreta incorrectamente dos o más estadísticos o gráficos.
    • Formato: 2 puntos si el informe usa adecuamente el formato indicado (i.e., R Markdown, véase más adelante) y la URL enlaza a un documento en RPubs (véase más adelante); 1 punto si el formato indicado o la URL presentan fallos; 0 puntos si el formato indicado y la URL presentan fallos.
  • En el caso de detectarse plagio en los informes enviados el puntaje será “0”.

Ejemplo de cómo proceder

Como ejemplo de cómo proceder con esta tarea analizaremos el conjunto de datos iris que viene incluida en R:

data(iris)

La base de datos iris contiene las mediciones en centímetros de las variables longitud (Length) y ancho (Width) de los pétalos (Petal) y sépalos (Sepal) de 50 flores de cada una de las 3 especies (Species) del género Iris: Iris setosa, Iris versicolor e Iris virginica. Para obtener más información acerca de la base de datos iris tipea ?iris en la línea de comando de R.

summary(iris)
##   Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
##  Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
##  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
##  Median :5.800   Median :3.000   Median :4.350   Median :1.300  
##  Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
##  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
##  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
##        Species  
##  setosa    :50  
##  versicolor:50  
##  virginica :50  
##                 
##                 
## 
?iris

Analizaremos la relación existente entre la longitud del pétalo (Petal.Length) y la longitud del sépalo (Sepal.Length) para todas las especies de Iris. El análisis incluirá 4 etapas:

  1. Ploteo del gráfico de dispersión
  2. Estimación de la línea de regresión
  3. Resumen de estadísticos y ecuación lineal
  4. Verificación de presunciones

1) Gráfico de dispersión

Primero generaremos un gráfico de dispersión mostrando la relación entre la longitud del pétalo y la longitud del sépalo. Nombramos los ejes con descripciones apropiadas.

plot(Petal.Length ~ Sepal.Length, data = iris, xlab = "Longitud del sépalo", ylab = "Longitud del pétalo")

En este contexto asumimos que x (i.e., Petal.Length) es la variable predictora e y (i.e., Sepal.Length) es la variable desenlace. Cabe señalar que esta no es estrictamente una relación de causalidad, y que las denominaciones de variable predictora y variable desenlace son meramente descriptivas.

2) Estimación de la línea de regresión

A continuación dibujaremos una línea de regresión calculada a partir de la suma de cuadrados mínimos usando la función abline aplicada a un objetivo de clase lm. Este objeto de clase lm consiste en una lista de 12 elementos que describen el modelo lineal.

# Calcular los parámetros del modelo lineal
ab_fit <- lm(Petal.Length ~ Sepal.Length, data = iris)
# Plotear la línea de regresión estimada sobre el gráfico de dispersión
plot(Petal.Length ~ Sepal.Length, data = iris, xlab = "Longitud del sépalo", ylab = "Longitud del pétalo")
abline(ab_fit, col = "skyblue", lwd = 3)

3) Resumen de estadísticos, ecuación lineal y R2

Imprimimos el resumen de los estadísticos del modelo lineal:

# Imprimir los estadísticos del modelo lineal
summary(ab_fit)
## 
## Call:
## lm(formula = Petal.Length ~ Sepal.Length, data = iris)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.47747 -0.59072 -0.00668  0.60484  2.49512 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -7.10144    0.50666  -14.02   <2e-16 ***
## Sepal.Length  1.85843    0.08586   21.65   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8678 on 148 degrees of freedom
## Multiple R-squared:   0.76,  Adjusted R-squared:  0.7583 
## F-statistic: 468.6 on 1 and 148 DF,  p-value: < 2.2e-16

Vemos que podemos construir la ecuación linea de la longitud del pétalo usando los estimados de los coeficientes \(\beta\) del intercepto y la longitud del śepalo:

\[\text{Petal.Length } = -7.10144 + 1.85843(\text{Sepal.Length})\]

El valor de \(R^2 = 0.76\) indica que el 76% de la variabilidad en la longitud del pétalo puede ser explicada por la variabilidad en la longitud del sépalo. Vemos que la asociación entre la longitud del pétalo y la longitud del sépalo es estadísticamente significantiva, con valor \(P < 2e-16\).

4) Verificación de presunciones

La validez del modelo de regresión lineal depende del cumplimiento de 3 condiciones sin las cuales los estadísticos estimados y la ecuación lineal no son confiables. Verificamos el cumplimiento de estas condiciones a continuacion:

1) Asociación lineal entre las variables

Para esto verificamos visualmente que una línea recta representa la mejor interpretación de la relación entre las variables usando el gráfico de dispersión anteriormente. Asimismo, un gráfico de dispersión de los residuales sobre la variable predictora nos ayudaría a determinar si la relación es lineal.

plot(ab_fit$residuals ~ iris$Petal.Length, xlab = "Longitud del pétalo", ylab = "Residuales")
abline(h = 0, col = "red", lwd = 2, lty = 2)

Una relación lineal será evidencia por una distribución simétrica de los residuales alrededor de la línea roja.

2) Normalidad de los residuales

Para verificar si los residuales siguen una distribución normal se puede utilizar un histograma:

hist(ab_fit$residuals, xlab = "Residuales", ylab = "Frecuencia", main = "")

Un gráfico Q-Q también sería muy útil para determinar si los residuales siguen una distribución normal:

qqnorm(ab_fit$residuals, xlab = "Cuantiles teóricos", ylab = "Cuantiles muestrales")
qqline(ab_fit$residuals, lwd = 2, lty = 2, col = "red")

3) Variabilidad constante

Para verificar si los residuales cumplen con esta condición se puede utilizar el mismo gráfico de dispersión de los residuales sobre la variable predictora utilizado previamente:

plot(ab_fit$residuals ~ iris$Petal.Length, xlab = "Longitud del pétalo", ylab = "Residuales")
abline(h = 0, col = "red", lwd = 2, lty = 2)

La variación de los residuales debería ser homogénea alrededor de la línea roja.


Tarea a desarrollar y enviar

  1. Carga la base de datos mtcars que viene incluida en R. Revisa la descripción de la base de datos con ?mtcars y estudia la estructura de las variables con str() y summary().
  2. Utiliza la variable hp como variable predictora y la variable mpg como variable desenlance para construir un modelo de regresión lineal que permita predecir el consumo del automóvil basándose en la potencia del motor. Para esto, redacta un informe que contenga (al menos) 5 secciones:
    • Gráfico de dispersión x ~ y
    • Estimación de la línea de regresión
    • Resumen de estadísticos, ecuación lineal y \(R^2\)
    • Verificación de presunciones
    • Interpretación y conclusión
  3. Las secciones del reporte deben seguir las indicaciones dadas previamente, aplicadas al contexto específico de la tarea.
  4. El informe debe estar redactado en R Markdown y subido a RPubs. Instrucciones específicas sobre este punto serán proveídas en un video aparte.
  5. El URL a la página en RPubs que contiene el informe deberá ser enviado a través de la plataforma del Campus Virtual.