Práctica 9

Autor/a

Objetivos de la práctica

Al finalizar esta sesión, el alumnado será capaz de:

  • Analizar de manera crítica un diagrama de dispersión para comprobar las hipótesis del modelo de regresión lineal
  • Ajustar un modelo de regresión lineal simple utilizando el código base de R
  • Interpretar el informe correspondiente al ajuste de un modelo de regresión lineal simple
    • Interpretar cada uno de los coeficientes del modelo
    • Interpretar la significación de los coeficientes y su relevancia práctica
    • Valorar la calidad del ajuste en términos del coeficiente de determinación
  • Obtener e interpretar los intervalos de confianza para los coeficientes del modelo
  • Modificar el diagrama de dispersión para añadir la recta de regresión
  • Modificar el diagrama de dispersión para añadir etiquetas identificativas de los casos
  • Obtener e interpretar un diagrama de residuos
  • Interpretar la salida de la función de ajuste de modelos de regresión lineal simple del paquete BioestadisticaR2

Preparación de la sesión.

  • Selecciona la carpeta de trabajo (‘Ctrl’ + ‘Mayús’ + ‘H’).
  • Crea un nuevo script para realizar esta práctica
  • Pon un título adecuado a la práctica para que aparezca en el índice de RStudio
  • Guarda el script y recuerda volver a guardarlo de vez en cuando para actualizar el trabajo que vas haciendo.

Instalación de los paquetes necesarios

Instalación de ggplot2
# Ejecutar solo si ggplot2 no está ya instalado
install.packages("ggplot2")
  • Instalación de BioestadisticaR2.
Instalación de BioestadisticaR2
install.packages(
  "https://digibug.ugr.es/bitstream/handle/10481/84535/BioestadisticaR2_2.5.0.zip",
  repos = NULL
)
library(BioestadisticaR2)

Si has tenido problemas con la instalación, avisa al profesor o profesora responsable.
      Otras opciones de instalación: web de BioestadisticaR2


1 Correlación y regresión lineal simple

1.0.1 Fibromialgia y calidad de vida

La fibromialgia es una enfermedad crónica que afecta de manera significativa al bienestar físico, psicológico y social de las personas que la padecen. En el seguimiento clínico de estos pacientes, el personal de enfermería evalúa de forma sistemática tanto el impacto de la enfermedad como la calidad de vida relacionada con la salud, mediante el uso de cuestionarios validados. Entre los instrumentos más empleados se encuentran el Fibromyalgia Impact Questionnaire (FIQ), que mide el impacto de la fibromialgia, y el WHOQOL‑BREF (World Health Organization Quality of Life – BREF), versión abreviada del cuestionario de calidad de vida de la Organización Mundial de la Salud, ampliamente validado y utilizado en la práctica clínica y en investigación.

En un estudio observacional realizado en una consulta de enfermería de reumatología, se recogieron datos de 110 pacientes diagnosticados de fibromialgia, registrándose para cada uno de ellos:

  • la puntuación del FIQ, con valores comprendidos entre 0 y 100, donde puntuaciones más altas indican un mayor impacto de la enfermedad, y
  • la puntuación del WHOQOL‑BREF, también con valores entre 0 y 100, donde puntuaciones más altas reflejan una mejor calidad de vida.

El objetivo del estudio es analizar la relación entre el impacto de la fibromialgia y la calidad de vida relacionada con la salud, considerando la puntuación del FIQ como variable explicativa.

Los datos están disponibles en el archivo “https://www.ugr.es/~pfemia/BSRLab/dat/fiq_qol.csv”

Lectura de la base de datos
fichero <- "https://www.ugr.es/~pfemia/BSRLab/dat/fiq_qol.csv"
datos <- read.csv(fichero)
  1. Estudia si hay relación entre el nivel de calidad de vida (puntuación del QOL) y el de fibromialgia.
  2. Indica, en caso de haber relación, qué aspectos relevantes se deducen de la distribución conjunta de las puntuaciones de ambos cuestionarios.
  3. Determina una medida que cuantifique la intensidad de la asociación entre ambas variables.
  4. Ajusta un modelo de regresión lineal que permita explicar la puntuación de QOL en términos de la del FIQ. Interpreta los coeficientes del modelo.
  5. Observa el diagrama de las bandas de confianza que ofrece BioestadisticaR2
  • ¿Por qué hay dos tipos de bandas?
  • ¿Son igual de precisos los pronósticos realizados para FIQ=57 que para FIQ=85? (justifica la respuesta)
  1. Obtén los pronósticos para el nivel medio de calidad de vida con los valores del FIQ indicados en el punto anterior (57 y 85)

Una vez leída la base de datos, comprobamos su estructura

head(datos)
  1. El primer paso en el análisis de dos variables cuantitativas siempre es ver su distribución conjunta mediante un diagrama de dispersión:
plot(
  QOL ~ FIQ,
  data = datos,
  xlab = "Impacto de la fibromialgia (FIQ, 0–100)",
  ylab = "Puntuación de calidad de vida (0–100)",
  main = "Calidad de vida e impacto de la fibromialgia",
  pch = 19,
  col = "steelblue"
)
  1. Del diagrama de dispersión se deduce que la relación entre QOL y FIQ
  • Es lineal (con sentido inverso en la relación, al aumentar FIQ disminuye QOL)
  • Es aceptablemente homocedástica
  • No se detectan observaciones anómalas de relevancia
  1. Correlación entre QOL y FIQ. Al tratarse de una relación lineal, calculamos el coeficiente de correlación de Pearson
# Coeficiente de correlación de Pearson
# (aquí no vale usar la formula QOL ~ FIQ)
cor(datos$QOL, datos$FIQ)

# Test de correlación e IC para r
cor.test(datos$QOL, datos$FIQ)

Comprobamos que la magnitud de la correlación es alta \((\small r=–0.74,\quad p<0.001)\)

  1. Modelo de regresión lineal
  • Usando el lenguaje base
# Ajuste del modelo de regresión lineal simple
modelo <- lm(QOL ~ FIQ, data = datos)

# Resumen del modelo
summary(modelo)

# al diagrama de dispersión le podemos añadir el modelo
abline(modelo, col = "red", lwd = 2)
  • Usando BioestadisticaR2
library(BioestadisticaR2)
rls(QOL ~ FIQ, data = datos)

Comentarios sobre la salida

  • El modelo lineal ajustado es \[ \widehat{\text{QOL}}=88.212-0.795\,\, \text{FIQ} \]

  • El test de regresión, que contrasta \(\small \text{H}_0:\, \beta_1 = 0\) es significativo \((\small p<0.001)\), lo que se traduce en que un cambio en la puntuación de FIQ se asocia con un cambio significativo en la puntuación de QOL.

  • Concretamente, –por término medio– un aumento puntual en FIQ se asocia con una reducción de 0.795 puntos en la calidad de vida (QOL).

  • Con un 95% de confianza, por cada punto de aumento en el nivel de fibromialgia, se observa una reducción de la calidad de vida comprendida entre 0.65 y 0.93 puntos (como se ha dicho reducción, podemos dar la magnitud en positivo).

  • El intervalo al 95% de confianza para el coeficiente de regresión es coherente con la significación obtenida en el test de independencia lineal (test de regresión lineal), ya que el intervalo no contiene el valor nulo \(\small \beta_1=0\).

  • En la salida de la función rls() de BioestadisticaR2, se comprueba fácilmente como el test de correlación es equivalente al test de regresión (el estadístico de contraste es el mismo y el valor \(\small p\) también).

  • La distribución residual presenta residuos tipificados que pueden ser relevantes (el mínimo es –3.1 y el máximo 2.5). Conviene comprobar el diagrama de residuos.

  • En la distribución residual ofrecida por la salida de BioestadisticaR2, se observa que hay tres residuos más allá de los límites \(\small \pm 2\). Son pocos, ya que estos límites son para el 95% de las observaciones. Si observamos el histograma comprobamos que son valores aislados en los extremos de las colas. El test de normalidad de Shapiro-Wilk para los residuos no es significativo \((\small p=0.805)\). Podemos asumir que el modelo se ajusta bien a las observaciones.

  • El coeficiente de determinación es \(\small R^2=0.55\), lo que indica que el 55% de la variabilidad observada en la calidad de vida, queda explicada por su relación lineal con el nivel de impacto de la fibromialgia. EL 45% restante es variabilidad residual, o no explicada por el modelo.

  1. Los pronósticos son más precisos cuanto mayor sea la proximidad al valor medio de la variable explicativa (es donde se acumula más información). Las bandas interiores corresponden a los intervalos para estimar el valor medio de la respuesta. Las bandas exteriores son los intervalos para pronosticar el valor de la respuesta en una nueva observación.

  2. Estimamos los pronósticos usando rls() de BioestadisticaR2. Se trata de repetir la función indicando en el argumento pred el vector de los valores del regresor para los que queremos estimar la respuesta:

rls(QOL ~ FIQ, data = datos, pred = c(57, 85))

En la salida de rls(), ahora aparece una tabla con los pronósticos. En ella, se indican los valores del regresor (predictor), la estimación puntual de la respuesta para cada uno de esos valores y dos intervalos de confianza; el primero corresponde a la estimación del valor medio de QOL para cada valor de FIQ y el segundo al pronóstico del valor de QOL para un nuevo sujeto que tenga el FIQ indicado.

1.0.2 Capacidad vital forzada

En una consulta de Enfermería de Atención Primaria se realiza una valoración de la función respiratoria mediante espirometría a un grupo de sujetos pediátricos.

La capacidad vital forzada (CVF) es un parámetro fundamental en la evaluación de la función pulmonar y puede verse influida por diversas características antropométricas, entre ellas la talla. El conocimiento de la relación entre ambas variables resulta de especial interés en la práctica enfermera, ya que permite interpretar adecuadamente los resultados espirométricos, identificar valores anómalos y contribuir al seguimiento y control de pacientes con posibles alteraciones respiratorias.

El archivo de datos disponible en “https://www.ugr.es/~pfemia/BSRLab/dat/cvf.csv” recoge los valores de talla (en centímetros) y capacidad vital forzada (en litros) correspondientes a 15 niños de sexo masculino, con edades comprendidas entre 6 y 12 años.

Lectura de la base de datos
fichero <- "https://www.ugr.es/~pfemia/BSRLab/dat/cvf.csv"
datos <- read.csv(fichero)
  1. Analiza la relación entre la capacidad vital forzada y la talla.
  2. Ajusta el modelo de regresión utilizando el código base de R. Interpreta los resultados.
  3. Representa el modelo en la distribución conjunta usando el código base de R.
  4. Elimina la observación anómala y vuelve a ajustar el modelo, comparando los resultados obtenidos con todos los datos.
  1. Comenzamos comprobando la estructura del archivo de datos (como solo hay 15 casos, no usamos head())
datos

Diagrama de dispersión de la CVF en función de la talla.

plot(
  cvf ~ talla, # modelo
  data = datos, # data.frame
  # titulos:
  xlab = "Talla (cm)",
  ylab = "Capacidad vital forzada (litros)",
  main = "Distribución de la CVF según talla (15 niños de 6 a 12 años)",
  # color y tipo de punto
  pch = 19, # tipo de punto gráfico (F1 para ver posibilidades)
  col = "steelblue"
) # color de los puntos

Observamos que la tendencia lineal de la relación es aceptable, pero que hay una observación muy discordante con dicha tendencia.

  1. Ajustamos el modelo lineal con el código base de R y vemos el informe con summary(). También usamos confint() para obtener el intervalo de confianza de los coeficientes (por defecto, a un nivel del 95%)
modelo <- lm(cvf ~ talla, data = datos)
summary(modelo) # informe sobre el modelo
confint(modelo) # intervalo de confianza para los coeficientes

Comprobamos que el test de asociación lineal entre la CVF y la talla no llega a ser significativo para un nivel del 5%: \(\small p=0.065>\alpha=0.05\). Esto también queda reflejado en el intervalo al 95% de confianza para el coeficiente de regresión, que contiene al valor nulo \(\small \beta_1=0\).

  1. Vamos a añadir la recta de regresión al diagrama de dispersión
# Añade el modelo lineal a un diagrama
# confeccionado previamente con plot()
abline(modelo, col = "red")

A primera vista, la nube de puntos sugiere una relación aproximadamente lineal entre las variables, ya que la mayoría de las observaciones parecen seguir una tendencia clara. Sin embargo, cuando se ajusta un modelo de regresión lineal, esta relación no resulta claramente significativa. Este contraste puede resultar desconcertante y merece un análisis más detenido.

Al observar el gráfico con la recta de regresión superpuesta, se aprecia que el modelo no sigue fielmente la tendencia marcada por la mayor parte de los datos. Esto se debe a la presencia de una observación especialmente problemática. En concreto, se trata de un punto con un nivel de influencia muy elevado, es decir, con un valor de talla muy alejado de la media del resto de sujetos. Además, esta observación presenta un residuo grande, lo que indica que su valor de capacidad vital forzada se sitúa muy lejos de lo que el modelo predice.

La combinación de ambas características —alta influencia y residuo elevado— hace que este punto tenga un impacto desproporcionado en el ajuste del modelo, condicionando tanto la pendiente de la recta como la significación estadística del resultado.

Ante esta situación, una estrategia habitual en el análisis de datos consiste en estudiar qué ocurre si se elimina esa observación influyente y se reajusta el modelo. Este procedimiento no debe hacerse de forma automática, sino como parte de una reflexión metodológica fundamental en estadística aplicada:

¿Es preferible un modelo que se ajuste mal a todos los datos, o un modelo que represente adecuadamente el comportamiento de la mayoría de las observaciones?

  1. Vamos a ver cómo eliminar del análisis el caso problemático y comprobamos el modelo resultante.

Lo primero que tenemos que hacer es identificar en qué fila del data frame aparece el caso problemático. Para ello, utilizamos la función text(), que añade la etiqueta deseada a los puntos. En nuestro caso vamos a usar como etiqueta el número de fila.

# Añade el modelo lineal a un diagrama
# confeccionado previamente con plot()

text(
  cvf ~ talla,
  data = datos,
  labels = row.names(datos), # usamos como etiqueta el número de fila
  cex = 0.7, # reducción al 70% del tamaño original de la etiqueta
  pos = 4
) # ubicación de la etiqueta al lado del punto, y no encima

El caso conflictivo es el que aparece en la segunda fila. Vamos a crear una imagen de los datos suprimiendo a ese caso.

# Copiamos datos a un nuevo data.frame pero
# eliminando la segunda fila

datos2 <- datos[-2, ]

Ajustamos un nuevo modelo con estos datos

modelo2 <- lm(cvf ~ talla, data = datos2)
summary(modelo2)
confint(modelo2)
plot(cvf ~ talla, data = datos, pch = 19, col = "steelblue")
abline(modelo2, col = "brown", lwd = 2) # modelo2 (rojo oscuro)
abline(modelo, col = "red", lwd = 2, lty = 2) # modelo anterior, para comparar

Podemos comprobar cómo ha mejorado el modelo.

  • El test de regresión lineal es muy significativo (\(\small p<0.001\))
  • El intervalo de confianza para el coeficiente de regresión no contiene al valor nulo
  • El coeficiente de determinación ha pasado del 24% a ser del 84%

La presencia de observaciones excesivamente influyentes puede afectar de forma notable al ajuste y a la interpretación de un modelo de regresión lineal. Eliminar estos puntos puede mejorar el ajuste y reflejar mejor la tendencia mayoritaria de los datos, pero esta decisión debe estar siempre justificada y no responder únicamente al deseo de obtener resultados “mejores”. Analizar el modelo con y sin dichas observaciones permite valorar la robustez de las conclusiones y delimitar con mayor precisión el ámbito de validez del modelo.

En nuestro caso, hemos eliminado un valor alto de la estatura. En relación con esta variable, el rango de validez del modelo ha variado:

# rango de la talla para el primer modelo
min(datos$talla)
max(datos$talla)

# rango de la talla para el segundo modelo
min(datos2$talla)
max(datos2$talla)

2 Cuestiones

2.0.1 Resuelve razonadamente las siguientes cuestiones

  1. ¿Cuáles son las analogías y las diferencias entre los coeficientes de correlación lineal y de regresión lineal

  2. En un análisis de la asociación entre dos variables cuantitativas, digamos \(\small X\) e \(\small Y\), se obtiene un coeficiente de regresión \(\small b_1=0.0001\). Como dicho coeficiente tiene una magnitud tan próxima a cero, los investigadores concluyeron que no había asociación entre \(\small X\) e \(\small Y\) ¿es correcta esta conclusión?

  3. ¿Qué semejanzas y qué diferencias hay entre el coeficiente de correlación de Pearson y el de Spearman?

  4. En un análisis se obtiene un coeficiente de correlación de Pearson \(\small r=0.60\), esto quiere decir que el 60% de la variabilidad observada en la variable respuesta está explicada por su relación lineal con la variable explicativa ¿es así?

  5. Indica si son correctos los siguientes enunciados

  • Una correlación alta entre dos variables se traduce en que existe una relación causal entre ellas.
  • La regresión lineal permite cuantificar la fuerza de la relación entre una variable explicativa y una variable respuesta continua.
  • Si el coeficiente de correlación entre dos variables es negativo, el coeficiente de regresión debe ser también negativo.
  • Una correlación nula entre dos variables cuantitativas implica que ambas variables son independientes.
  • Un coeficiente de correlación \(\small r=0.50\) indica una fuerza de asociación mucho mayor que un coeficiente \(\small r=–0.70\)
  • En regresión lineal simple, el coeficiente de determinación se puede obtener elevando el coeficiente de regresión al cuadrado.
  • El coeficiente de correlación de Spearman solo permite cuantificar la asociación entre dos variables que mantengan una relación lineal entre sí.
  • La correlación mide la asociación, pero no permite inferir la dirección del efecto.
  1. En un estudio se obtiene una correlación de Pearson r=0,78 entre el índice de masa corporal (IMC) y la presión arterial sistólica. ¿Cuál es la interpretación más correcta?
  1. Existe una relación causal entre IMC y presión arterial
  2. Existe una asociación lineal positiva fuerte entre ambas variables
  3. El IMC explica el 78% de la variabilidad de la presión arterial
  4. No existe relación entre las variables
  1. En un modelo de regresión lineal simple, el coeficiente de regresión es \(\small \beta_1=−2.5\). ¿Cuál es la interpretación correcta?
  1. Por cada unidad que aumenta la variable independiente, la dependiente aumenta 2,5 unidades
  2. Por cada unidad que aumenta la variable independiente, la dependiente disminuye 2,5 unidades
  3. Existe una correlación de -2,5 entre las variables
  4. El modelo no es válido
  1. En un estudio se obtiene \(\small r=−0,72\) entre consumo de alcohol semanal y puntuación en una escala de calidad del sueño. ¿Cuál es la interpretación más correcta?
  1. El alcohol explica el 72% de la variabilidad del sueño
  2. Existe una relación lineal negativa fuerte entre ambas variables
  3. El alcohol reduce el sueño en un 72%
  4. Existe causalidad demostrada

3 Ejercicios propuestos

3.1 Contaminación ambiental y exacerbaciones respiratorias

Un estudio de salud pública investiga si la concentración media anual de partículas contaminantes en el aire (PM2.5) se relaciona con la tasa de ingresos hospitalarios por exacerbaciones respiratorias en distintas áreas sanitarias de una comunidad. Para ello, se seleccionan 22 áreas y se recoge la siguiente información: - Concentración media anual de partículas finas en el aire (PM2.5), expresada en μg/m\(\small^3\). - Tasa de ingresos hospitalarios por exacerbaciones respiratorias, expresada como número de ingresos por cada 100,000 habitantes y año.

Lectura de la base de datos
# Partículas contaminantes
datos <- read.csv("https://www.ugr.es/~pfemia/BSRLab/dat/pm25.csv")

Analiza los datos.

3.2 Tabaquismo y volumen espiatorio forzado

Un estudio epidemiológico pretende investigar si la exposición acumulada al tabaquismo (paquetes-año) se relaciona con la capacidad pulmonar medida mediante el volumen espiratorio forzado en el primer segundo (FEV1)

Lectura de la base de datos
# paquetes de tabaco consumidos al año
datos <- read.csv("https://www.ugr.es/~pfemia/BSRLab/dat/fev1.csv")

Analizar la relación entre las variables interpretando los resultados obtenidos.

3.3 Tiempo de uso del móvil y calidad del sueño en adolescentes

El personal de enfermería de atención primaria sospecha que el uso prolongado del teléfono móvil antes de dormir puede afectar negativamente al descanso nocturno en adolescentes. Para investigarlo, se seleccionó una muestra de 20 adolescentes y se registró el tiempo diario de uso del teléfono móvil antes de dormir (min/día) y la puntuación obtenida en una escala de calidad del sueño (0–100 puntos, donde valores altos indican mejor calidad del sueño).

Los datos observados se presentan a continuación en formato R. El tiempo se expresa en minutos

Lectura de la base de datos
# tiempo de uso del móvil antes de dormir

datos <- read.csv("https://www.ugr.es/~pfemia/BSRLab/dat/tmovil.csv")

Analiza si la calidad del sueño está relacionada con el tiempo de uso del móvil antes de dormir.