Práctica 6

Autor/a

Objetivos de la práctica

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

  • Manejar los conceptos teóricos de la teoría de los contrastes de hipótesis.
  • Formular las hipótesis estadísticas correspondientes a pruebas unilaterales y bilaterales.
  • Analizar la normalidad de una variable.
  • Realizar contrastes de hipótesis sobre un parámetro (test con una muestra).
  • Interpretar el resultado de un test de hipótesis estadístico.
  • Contrastar el resultado de un test de hipótesis con la información que da un intervalo de confianza para el mismo parámetro.
  • Automatizar la creación de data frames para comparar dos muestras independientes.
  • Contrastar la homogeneidad de varianzas entre dos muestras independientes
  • Contrastar la diferencia entre los resultados aportados por métodos paramétricos y los no paramétricos

Preparación de la sesión.

  • Selecciona la carpeta de trabajo (recuerda que lo puedes hacer usando el atajo ‘Ctrl’ + ‘Mayús’ + ‘H’ y la conveniencia de que uses tu pen-drive).
  • 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

  • Comprueba en el listado de paquetes si ya está instalado ggplot2. Si lo está, no hace falta reinstalarlo. En caso contrario hazlo desde el botón del panel packages, o bien, utilizando el código del siguiente cuadro desplegable.
Instalación de ggplot2
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
)

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


Como en prácticas anteriores, algunas de las cuestiones de esta práctica requieren hacer cálculos, pero otras son puramente conceptuales. Recuerda que lo importante es que entiendas lo que se pregunta y sepas razonar la respuesta. Como siempre, toma nota de todo aquello que consideres relevante.

Los siguientes recursos se abren en una nueva pestaña del navegador:


1 Test con una muestra

1.1 Análisis de la normalidad

1.1.1 Normalidad de la distribución de un biomaracador

A continuación se presentan los valores correspondientes a un biomarcador relacionado con la función renal en dos grupos de 25 pacientes. El primer grupo no está sometido a tratamiento (se le administra un placebo) y actúa como grupo control. El segundo grupo está sometido a un tratamiento cuyo objetivo es regular los niveles del biomarcador.

  • Se trata de estudiar si la distribución del biomarcador en cada grupo es normal,
    • ¿Qué metodología deberíamos considerar en este análisis?
    • Hay muchos test de normalidad (Shapiro-Wilk, Kolmogorov-Smirnov,…) ¿tienen todos la misma hipótesis nula? ¿cuál es?
  • Contrasta la normalidad de las dos muestras utilizando el test de Shapiro-Wilk (la función se llama shapiro.test()) y explica la conclusión.
  • Utiliza la función testnormal() del paquete BioestadisticaR2 para estudiar si la distribución del biomarcador puede considerarse normal en cada uno de los grupos (en esta función, utiliza el argumento qq=TRUE para que muestre el diagrama Q-Q).
## Introducimos los datos ----
ctrl <- c(
  13.7,
  17.0,
  36.8,
  19.2,
  12.8,
  43.0,
  11.1,
  6.5,
  8.3,
  12.1,
  21.4,
  6.1,
  15.2,
  11.5,
  14.5,
  13.0,
  10.3,
  9.4,
  27.7,
  32.4,
  34.1,
  12.7,
  7.9,
  22.1,
  13.6
)
tto <- c(
  13.5,
  11.6,
  13.0,
  16.1,
  15.1,
  12.6,
  12.9,
  14.0,
  15.0,
  13.6,
  14.4,
  13.9,
  12.7,
  14.0,
  16.2,
  12.6,
  15.2,
  15.3,
  16.9,
  14.1,
  13.3,
  13.7,
  12.5,
  14.9,
  14.2
)

## Distribución ----
### Grupo control ----
hist(ctrl, freq = FALSE) # histograma
lines(density(ctrl)) # curva KDE
shapiro.test(ctrl)

### Grupo tratamiento ----
hist(tto, freq = FALSE) # histograma
lines(density(tto)) # curva KDE
shapiro.test(tto)

# Realizamos el análisis con la función de BioestadisticaR2
library(BioestadisticaR2)
testnormal(ctrl, qq = TRUE)
testnormal(tto, qq = TRUE)

1.2 Test para una media

1.2.1 Control de la hemoglobina en pacientes con anemia ferropénica

En una consulta de Enfermería de Atención Primaria se ha implementado un nuevo protocolo de suplementación oral con hierro en pacientes diagnosticados de anemia ferropénica. El objetivo del protocolo es mejorar el control clínico de los pacientes y alcanzar niveles adecuados de hemoglobina.

Tras 8 semanas de tratamiento, la enfermera quiere evaluar si el protocolo está siendo eficaz. Para ello selecciona una muestra de 21 pacientes con anemia ferropénica en seguimiento y mide la hemoglobina (g/dL) tras el tratamiento. El criterio clínico de referencia establece que un valor medio de ≥ 10 g/dL en mujeres indica un buen control. Los datos observados son:

Utilizando la función testt()del paquete BioestadisticaR2

  • Calcula la media y la desviación típica de la muestra. Interpreta estos resultados en términos clínicos.
  • Formula las hipótesis estadísticas implicadas, justificando si el test que interesa es uni o bilateral.
  • Indica si la información muestral es compatible con la hipótesis alternativa unilateral \(\mu>10\)
  • Realiza el contraste utilizando un nivel de significación del 5%.
  • Indica el valor del estadístico de contraste y del valor p.
  • Interpreta el resultado en términos clínicos ¿se puede afirmar que el protocolo es eficaz?
  • A raíz del resultado mostrado en la salida de la función testt() ¿crees que es oportuno utilizar un test para la media basado en la normalidad?
  • Interpreta el intervalo de confianza para estimar el nivel medio de Hb.
  • Indica la precisión del intervalo y valora si dicha precisión es suficientemente buena.
  • Realiza ahora el test utilizando el código base de R (función t.test()). Compara los resultados con la salida anterior.
# Introducimos los datos
hb <- c(
  11.8,
  12.4,
  12.1,
  11.5,
  12.9,
  13.2,
  11.9,
  12.6,
  12.3,
  11.7,
  12.8,
  13.0,
  11.6,
  12.2,
  12.7,
  13.1,
  11.4,
  12.5,
  12.0,
  12.9,
  13.3,
  11.8,
  12.6,
  12.4,
  12.7
)

mean(hb)
sd(hb)

# Realizamos el test con el código base de R
t.test(x = hb, mu = 10, alternative = "greater")

# Realizamos el test con la función de BioestadisticaR2
testt(m = hb, m0 = 10)

1.3 Test para una proporción

1.3.1 Evaluación de la prevalencia de hipertensión no controlada

En una consulta de Enfermería de Atención Primaria se desea evaluar la calidad del control de la hipertensión arterial en los pacientes diagnosticados y en seguimiento. De acuerdo con los estándares asistenciales, se considera aceptable que como máximo el 30% de los pacientes presenten cifras de presión arterial no controladas.

No obstante, existe la sospecha de que en esta consulta la situación podría ser menos favorable. Con el fin de comprobarlo, se lleva a cabo una auditoría clínica en la que se selecciona una muestra aleatoria de 150 pacientes hipertensos. De ellos, 54 presentan HTA no controlada.

  • Formula las hipótesis que interesa contrastar
  • Realiza el contraste que has formulado utilizando el código base de R. La función es prop.test()
  • Repite el análisis utilizando la función testp() del paquete BioestadisticaR2
  • Observa, en la salida de este último, que cuando usa el método exacto, el valor p del test bilateral es (aproximadamente) el doble que el del test unilateral ¿por qué ocurre así?
  • ¿Qué relación guardan los valores del intervalo de confianza con las hipótesis formuladas?
# datos
x <- 54
n <- 150

# contraste de una proporción con el código base
prop.test(x = x, n = n, p = 0.30, alternative = "greater")

# contraste de una proporción con el paquete BioestadisticaR2
testp(x = x, n = n, p0 = 0.30)

2 Estudios comparativos con muestras independientes

2.0.1 Creación del data frame para el análisis de muestras independientes

Muchas funciones estadísticas de R utilizan una sintaxis basada en fórmulas, del tipo:

variable respuesta ~ variable de agrupación

Para poder trabajar con esta sintaxis, es imprescindible que los datos estén organizados en un data frame y que exista una variable de agrupación que indique a qué grupo pertenece cada observación o cada paciente.
En la práctica, esto significa que:

  • la variable respuesta debe aparecer como una única columna numérica;
  • la variable de agrupación debe aparecer como una columna adicional, normalmente codificada como un factor.

Vamos a ver cómo automatizar la creación de este tipo de data frame cuando partimos de dos vectores numéricos independientes: uno correspondiente a un grupo A y otro a un grupo B.

La función rep() como herramienta clave

La automatización se basa en la función rep(), que permite repetir valores de forma controlada.
En su forma más sencilla, rep() replica el valor indicado en el argumento x tantas veces como especifique el argumento times. Por ejemplo:

rep(x = "A", times = 5)
[1] "A" "A" "A" "A" "A"
  • Repetición con vectores

Si ambos argumentos (x y times) son vectores, rep() actúa posición a posición: cada elemento de x se repite tantas veces como indique el elemento correspondiente de times. Podemos comprobarlo con el siguiente ejemplo:

rep(x = c("A", "B"), times = c(5, 3))
[1] "A" "A" "A" "A" "A" "B" "B" "B"

El resultado es un vector con cinco “A” seguidos de tres “B”.

Además, recuerda que en R no es necesario indicar el nombre de los argumentos si se indican en el mismo orden en que están definidos en la función. Por tanto, el código anterior es equivalente a:

rep(c("A", "B"), c(5, 3))
[1] "A" "A" "A" "A" "A" "B" "B" "B"
  • El papel de length()

Otro ingrediente fundamental es la función length(x), que devuelve el número de elementos de un vector x. Esto nos permite escribir código general y reutilizable, sin necesidad de contar manualmente cuántas observaciones hay en cada grupo.

  • Construcción automatizada del data frame

Ya estamos en condiciones de crear un data frame adecuado para trabajar con fórmulas del tipo

respuesta ~ grupo.

Consideremos los siguientes vectores de datos que constituirán la variable respuesta:

A <- c(12.1, 15.3, 14.2, 18.9, 13.6, 16.1, 15.4, 13.3, 11.8, 13.9)
B <- c(16.5, 18.9, 19.5, 22.4, 23.1, 17.6, 20.2)

A partir de ellos, construimos el data frame de la siguiente forma:

datos <- data.frame(
  respuesta = c(A, B),
  grupo = factor(c(rep("A", length(A)), rep("B", length(B))))
)

Esta estructura de datos es fundamental para realizar análisis comparativos con muestras independientes. La idea clave es no manejar la información en vectores separados, sino en un data frame que contenga:

  • una (o varias) variable(s) respuesta,
  • y una variable de agrupación que identifica el grupo al que pertenece cada observación.

2.0.2 Creación del data frame para el estudio del biomarcador.

  • Utilizando los datos de la Sección 1.1.1, construye un data frame llamado datosbiocon las variables biomarcador y grupo (esta última con valores control y tratamiento). Una vez elaborado, visualiza el data frame obtenido.

  • Diagramas comparativos que usan fórmulas. Utiliza el data frame obtenido para representar los diagramas comparativos que se proponen a continuación. Los argumentos deben ser: la fórmula biomarcador ~ grupo y el nombre del data.frame data=datosbio

    • un diagrama de caja comparativo mediante la fórmula (recuerda que el comando para hacer diagramas de caja es boxplot())
    • Un recurso gráfico adicional es el diagrama de tiras (o diagrama de puntos), que permite representar todas las observaciones individuales de cada grupo, lo que lo hace especialmente útil cuando el tamaño muestral es reducido. En R se obtiene mediante la función stripchart(). Para generarlo, se emplean los mismos argumentos utilizados en la figura anterior; merece la pena, además, experimentar con el argumento method = "jitter", que introduce un pequeño desplazamiento aleatorio en los puntos y facilita la visualización cuando existen solapamientos.

________
La sintaxis que debes utilizar es función(biomarcador~grupo, data=datosbio). A stripchart() puedes añadirle al final method=jitter para comprobar su efecto. También puedes probar a cambiar el color, por ejemplo añade el argumento col="steelblue" o cualquier otro nombre de color (los nombres de color los puedes consultar con la función colors(), sin argumentos).

2.0.3 Pruebas de comparación de varianzas

El lenguaje base de R implementa tres métodos para contrastar la homogeneidad de varianzas entre muestras independientes

  • Test F de Fisher. Es el más clásico y muy sensible a la falta de normalidad. La función de R es var.test()
  • Test de Bartlett. Permite comparar más de dos grupos y también es sensible a la falta de normalidad. La función es bartlett.test()
  • Test de Fligner–Killeen. Es un test no paramétrico, no requiere que las variables a comparar tengan distribución normal. Permite comparar más de dos muestras. La función de R es fligner.test()
En todos los casos, se puede indicar como argumento la fórmula
variable respuesta ~ variable de agrupación

añadiendo, a continuación, el argumento data=nombre del data.frame.

Utilizando el data frame datosbio que hemos elaborado en el apartado anterior

  • Formula las hipótesis del test de homocedasticidad (homogeneidad de varianzas). ¿Qué interés tendrían las hipótesis bilateral y unilaterales?
  • Realiza los tres test indicados anteriormente. ¿Qué diferencias observas en las salidas de cada método?
  • A raíz de los resultados del análisis de normalidad que hemos realizado en la Sección 1.1, ¿cuál de los tres métodos indicados de contraste de la homocedasticidad crees que es más apropiado?
Elaboración de datosbio (por si ha habido problemas)
# este es el código completo para generar el dataframe datosbio
ctrl <- c(
  13.7,
  17.0,
  36.8,
  19.2,
  12.8,
  43.0,
  11.1,
  6.5,
  8.3,
  12.1,
  21.4,
  6.1,
  15.2,
  11.5,
  14.5,
  13.0,
  10.3,
  9.4,
  27.7,
  32.4,
  34.1,
  12.7,
  7.9,
  22.1,
  13.6
)
tto <- c(
  13.5,
  11.6,
  13.0,
  16.1,
  15.1,
  12.6,
  12.9,
  14.0,
  15.0,
  13.6,
  14.4,
  13.9,
  12.7,
  14.0,
  16.2,
  12.6,
  15.2,
  15.3,
  16.9,
  14.1,
  13.3,
  13.7,
  12.5,
  14.9,
  14.2
)

datosbio <- data.frame(
  biomarcador = c(ctrl, tto),
  grupo = factor(c(
    rep("control", length(ctrl)),
    rep("tratamiento", length(ctrl))
  ))
)
var.test(biomarcador ~ grupo, data = datosbio)
bartlett.test(biomarcador ~ grupo, data = datosbio)
fligner.test(biomarcador ~ grupo, data = datosbio)

3 Cuestiones

3.0.1 Resuelve razonadamente las siguientes cuestiones

  1. En un estudio sobre seguridad del paciente en una unidad de hospitalización, se observa que 5 de 120 pacientes desarrollan una infección nosocomial. Se obtiene una estimación de la proporción poblacional con su intervalo de confianza al 95%:
\[ \hat\pi=0.042, \quad 95\%\text{-}IC(\pi) = (0.014, 0.095) \]

Discute cuál, o cuáles, de las siguientes afirmaciones son correctas desde el punto de vista inferencial:

  1. Como el intervalo de confianza no incluye el valor 0.5, la proporción es estadísticamente significativa.
  2. La inferencia debe basarse principalmente en el valor p, ya que el intervalo de confianza no permite tomar decisiones.
  3. La proporción estimada es 0.042, por lo tanto, al ser menor que \(\small \alpha=0.05\), es estadísticamente significativa.
  4. El intervalo de confianza indica que hay un 95% de probabilidad de que la proporción verdadera caiga entre los valores 0.10 y 0.20.
  5. El contraste de hipótesis es siempre preferible al intervalo de confianza porque proporciona una decisión más objetiva.
  6. Un contraste de hipótesis cuya hipótesis nula sea \(\small\text{H}_0: \pi=\pi_0\) no será significativo para cualquier valor de \(\pi_0\) comprendido entre 0.014 y 0.095.
  7. A la vista del intervalo, se puede esperar que el contrate \(\small\text{H}_0: \pi=0.15\) sea significativo para un nivel de significación \(\small \alpha = 0.05\), es decir, que se obtendrá un valor \(\small p<0.05\).
  1. ¿Tanto en los intervalos de confianza como en los test de hipótesis aparece un “valor \(\alpha\)”. ¿Representa lo mismo en cada contexto? ¿De qué depende?
  2. Define qué es la potencia de un test de hipótesis y de qué factores depende.
    • ¿Qué le ocurre a la potencia de un test si se aumenta el error de tipo I?
    • ¿Qué recurso debe utilizar el investigador para aumentar la potencia de un test?
  3. ¿Qué entiendes por métodos paramétricos y no paramétricos?
    • ¿Qué requisitos deben cumplir los datos para aplicar cada uno de ellos?
    • ¿Cuál es más potente (cuando se cumplen los requisitos)?
  4. Un test de Student para contrastar si el nivel medio de un biomarcador es 7 mg/dL da un valor \(p=0.015\). El intervalo de confianza al 95% para estimar el valor medio de dicho biomarcador es (6.58, 9.13) ¿son compatibles ambos resultados? (justifica la respuesta).
  5. Cuando el valor p de un test de hipótesis es \(p=0.053\) la conclusión es que el test no es significativo para un nivel \(\alpha=0.05\) fijado de antemano. Comenta lo apropiado de esta conclusión. ¿Crees que hay que matizar algo?
  6. En dos distritos sanitarios, se realiza un test para contrastar si la prevalencia de cierta enfermedad es del 5%. En el primer distrito se obtiene \(p=0.053\) y en el segundo \(p=0.048\). Comenta estos resultados ¿podemos afirmar que en el primero, la prevalencia sí es del 5% pero en el segundo no?
  7. Interesa determinar si, en un conjunto de pacientes, el valor medio de la fosfatasa alcalina en suero es inferior a 129 U/L. Para \(\alpha=0.05\) el test no da significativo (\(p>\alpha\)). Al estimar el intervalo de confianza para el nivel de medio de fosfatasa alcalina, se observa que es un intervalo muy ancho (poco preciso). ¿Qué conclusión puedes sacar de estos resultados? ¿Crees que es fiable la falta de significación del test? ¿Qué característica tendrá el intervalo?
  8. En el contexto de la cuestión anterior, supongamos ahora que se ha obtenido \(p<\alpha\), con un intervalo también poco preciso, ¿es ahora fiable la significación del test? ¿Qué característica tendrá el intervalo?
  9. En un informe se lee que se realizó un test de normalidad a una muestra de n=10 pacientes y se obtuvo \(p=0.093\). La conclusión fue que quedaba demostrado que la distribución de los datos era normal ¿estás de acuerdo?
  10. ¿Qué test de normalidad utilizarías para muestras pequeñas y qué precaución hay que tener cuando las muestras son de tamaño grande (digamos n>100)? ¿Incluirías algún tipo de análisis adicional para inferir la normalidad de la distribución?
  11. “Un test de hipótesis unilateral es más potente que uno bilateral” ¿es cierta esta afirmación?
  12. Al contrastar si la prevalencia de una enfermedad era del 3% (\(\small \pi=0.03\)) los investigadores planificaron un test bilateral. El resultado fue \(\small p=0.062\). Como había cierto interés en rechazar la hipótesis nula, decidieron cambiar el test a uno unilateral. Como, en general, el valor p del test unilateral es la mitad que la del test bilateral, obtuvieron \(\small p=0.031\), con lo cual, ahora el resultado es significativo.
    • ¿Es cierto que el valor p del test bilateral es el doble que el del unilateral? (justifica la respuesta)
    • ¿Es correcta la forma de proceder de los investigadores?

4 Ejercicios propuestos

Al final aparecen unas soluciones muy resumidas, recuerda que debes intentar resolver los ejercicios por tu cuenta

4.1 Nivel de colesterol en sujetos jóvenes

Vamos a analizar algunas variables de la base de datos colesterol01.rds que ya hemos manejado en la práctica 2. Aquí tienes el código para leerla:

Leer colesterol01.rds
## Lectura del archivo .rds desde una URL ----

url_datos <- "https://www.ugr.es/~pfemia/BSRLab/dat/colesterol_01.rds"
datos <- readRDS(url(url_datos))

Como debemos hacer siempre, comprueba que se han leído bien los datos (por ejemplo con el comando head())

A modo de recordatorio, vamos a familiarizarnos brevemente con el perfil de los sujetos de esta base de datos:

  1. Averigua cuál es la distribución por edades y por sexos.
  2. Obtén la curva de distribución empírica (KDE) del nivel de colesterol
  3. Determina la media y desviación típica del nivel de colesterol en función del sexo
  4. Carga el paquete BioestadisticaR2 y prueba esta función grps(datos$colesterol, f=datos$sexo)

Vamos a hacer algunas inferencias sobre los niveles de colesterol y lipoproteinas de alta y baja densidad (HDL y LDL, respectivamente).

  1. Utilizando la función testnormal() del paquete BioestadisticaR2 estudia la normalidad de las variables colesterol, HDL y LDL. Indica el resultado tal y como lo pondrías en el informe de un TFG o de un artículo (Nota: añade el argumento qq=TRUE a la función testnormal() para que proporcione el diagrama Q-Q).
  2. Interesa saber si el nivel medio de colesterol puede considerarse superior al valor normativo \(\mu_0 = 200\) mg/dL. Plantea las hipótesis formales para este contraste y da respuesta a esta pregunta.
  3. Contrasta si se puede asumir que el nivel de colesterol medio en hombres es de 150 mg/dL. Plantea las hipótesis implicadas y realiza el contraste utilizando las funciones t.test() del código base de R y testt() de BioestadisticaR2, compara los resultados de ambas funciones. Observa que testt() da el contraste bilateral y solo uno de los dos contrastes unilaterales posibles. Justifica por qué crees que da solo uno y cuál es la desigualdad que contrasta.

4.2 Variabilidad del nivel de colesterol en hombres y mujeres

Seguimos trabajando con los datos del archivo colesterol_01.rds.

Se trata de investigar las diferencias en la distribución del nivel de colesterol en hombres y mujeres.

  1. Representa la curva de densidad empírica (KDE) para hombres y mujeres en el mismo gráfico. Haz una crítica comparativa. ¿Crees que tienen aproximadamente la misma media y la misma dispersión? (responde a la vista de las curvas, no se trata de hacer cálculos)
  2. Contrasta la normalidad del nivel de colesterol de forma separada para cada sexo.
  3. Contrasta si se puede asumir que la variabilidad del nivel de colesterol en hombres y mujeres es la misma. Utiliza el test de Fisher (var.test()) y critica si lo crees apropiado dado el resultado del test de normalidad. Realiza también el test no paramétrico de Fligner–Killeen (fligner.test()). Compara los resultados y da una conclusión final.
  4. Interpreta el intervalo de confianza para el cociente de varianzas que proporciona el test de Fisher que has realizado en el apartado anterior. Comenta la coherencia de los límites de este intervalo con el resultado obtenido en el test. ¿En qué condiciones es coparable la información que da este tipo de intervalos con la significación del test?

5 Soluciones a los ejercicios propuestos


5.1 Ejercicio 1. Nivel de colesterol en sujetos jóvenes

  1. Edad: de 15 a 20 años (media=16.8, dt=1.21 años). Sexos: mujeres n=60 (40%), hombres n=90 (60%)
  2. plot(density(datos$colesterol))
  3. d. Descriptiva del colesterol en función del sexo:
grupo n media dt
mujer 60 158.3 28.50
hombre 90 152.2 25.89
Total 150 154.6 27.04
  1. Normalidad del colesterol
Uso de la función testnormal()
testnormal(datos$colesterol, qq = TRUE)

La distribución del nivel de colesterol presenta asimetría positiva (cola larga a la derecha) de forma significativa. Así lo ponen de manifesto los diagramas KDE y Q-Q (en este último, la distribución de los valores observados tiene la forma de U característica de este tipo de patrón asimétrico). El test de normalidad de Shapiro-Wilk también resulta significativo (W=0.959, p < 0.001), de manera que se puede rechazar que esta variable tenga distribución normal. No obstante, la asimetría es moderada y el tamaño de muestra es suficientemente grande (n=150 > 60) como para poder aplicar métodos inferenciales de tipo paramétrico.

El resultado para las variables HDL y LDL es similar.

  1. El test de interés es unilateral:

\[ \begin{cases} \text{H}_0: & \mu \le 200 \\ \text{H}_1: & \mu > 200 \end{cases} \]

Anteriormente, hemos obtenido que la media del nivel de colesterol es 154.6 mg/dL. Esto implica que la información muestral es incompatible con la hipótesis alternativa, ya que 154 < 200 mg/dL. Por tanto, no hace falta realizar el test. Directamente se declara no significativo.

  1. El enunciado indica si se puede asumir que el nivel medio de colesterol es de 150 mg/dL, no si es mayor o si es menor, por lo tanto, es un test bilateral.
Código
# Con código base de R:
t.test(datos$colesterol[datos$sexo == "hombre"], mu = 150)

# Con BioestadisticaR2
testt(m = datos$colesterol[datos$sexo == "hombre"], m0 = 150)

La función testt() de BioestadisticaR2 hace, automáticamente, los contrastes bilateral y el unilateral que sea compatible con la información muestral. En este caso, como la media del nivel de colesterol en hombres es 152.2 > 150 mg/dL, hace el contraste para \(\small \text{H}_1: \mu>150\), ya que la información muestral es compatible con esta hipótesis. El contraste \(\small \text{H}_1: \mu<150\) se omite por incompatibilidad.


5.2 Ejercicio 2. Variabilidad del nivel de colesterol en hombres y mujeres

  1. Las distribuciones son muy homogéneas entre sí, tanto en posición, como en dispersión como en forma.
Código para representar las curvas KDE
# calculamos las densidades de cada grupo:
denscolh <- density(datos$colesterol[datos$sexo == "hombre"])
denscolm <- density(datos$colesterol[datos$sexo == "mujer"])

# Generamos un diagrama con una de ellas
plot(denscolh, col = "blue")

# Añadimos la otra
lines(denscolm, col = "brown")
  1. No pueden considerarse normales.
Código para analizar la normalidad
testnormal(datos$colesterol[datos$sexo == "hombre"])
testnormal(datos$colesterol[datos$sexo == "mujer"])
  1. No pueden considerarse normales.

  2. El test de Fisher no es significativo (p=0.4089). Aunque este test es muy sensible a la falta de normalidad, el test no paramétrico de Fligner-Killen da un resultado similar (p=0.3997), con lo cual no se puede rechazar la hipótesis de homogeneidad de varianzas (parece que el test de Fisher está funcionando bien, las muestras son grandes).

Código para comparar las varianzas
# Test de Fisher
var.test(colesterol ~ sexo, data = datos)

# Test de Fligner-Killeen
fligner.test(colesterol ~ sexo, data = datos)
  1. Como el test no es significativo, el intervalo de confianza para el cociente de varianzas debe contener al valor 1. La información del intervalo y la significación del test se pueden integrar cuando el nivel de significación del test tiene el mismo valor que el error \(\alpha\) del intervalo (típicamente, los dos son 0.05)
::: {#refs} :::