Intervalos
de confianza con R por
Christian
Ballejo bajo licencia
CC
BY-NC
4.0
Los difenilos policlorados (PCB) son una clase de sustancias químicas ambientales que poseen una serie de efectos nocivos para la salud, como deterioro intelectual en los niños que se exponen en el utero. Además, los PCB forman parte de los contaminantes más abundantes en la grasa del ser humano.
Tu Binh Minh de la Universidad Nacional de Vietnam y colaboradores, analizaron la concentración de PCB en la grasa de un grupo de adultos.
Los valores de PCB hallados en las personas estudiadas se encuentran almacenadas en el archivo PCB.txt y se nos pide realizar los siguientes items:
Veamos como llevamos adelante estos pasos mediante el lenguaje R:
library(tidyverse) # activamos paquetes
library(dlookr)
pcb <- read_csv2("PCB.txt")
Visualizamos la estructura de la tabla de datos
glimpse(pcb)
Rows: 14
Columns: 2
$ individuo <dbl> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
$ concentracion <dbl> 930, 2300, 2300, 1700, 720, 2500, 560, 1800, 1800, 2600,…
Tenemos una tabla con 14 observaciones (mediciones en individuos) y la variable de interés se llama concentracion (nos informan que está expresada como nanogramo de PCB/gramo de lípido)
Con la función describe() de dlookr
podemos obtener los estadísticos de esta variable cuantitativa
continua.
pcb %>%
describe(concentracion)
| described_variables | n | na | mean | sd | se_mean | IQR | skewness | kurtosis | p00 | p01 | p05 | p10 | p20 | p25 | p30 | p40 | p50 | p60 | p70 | p75 | p80 | p90 | p95 | p99 | p100 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| concentracion | 14 | 0 | 1709.29 | 824.81 | 220.44 | 1277.5 | 0.03 | -0.85 | 520 | 525.2 | 546 | 608 | 846 | 1022.5 | 1263 | 1700 | 1750 | 1800 | 2300 | 2300 | 2380 | 2570 | 2810 | 3122 | 3200 |
La media (1709,29 ng/g) y la mediana (1750,0 ng/g) son cercanas. El desvío estandar es de 824,81 ng/g.
En el documento Análisis de normalidad y homocedasticidad vimos test estadísticos de R que nos permiten evaluar esta situación y gráficos que nos ayudan a determinar la normalidad.
Test de Shapiro-Wilk
shapiro.test(pcb$concentracion)
Shapiro-Wilk normality test
data: pcb$concentracion
W = 0.95246, p-value = 0.5996
Un p-valor mayor a 0,05 habla de un ajuste a la curva normal.
pcb %>%
plot_normality(concentracion)
Si bien son pocos datos, los puntos se desarrollan “alrededor” a la recta de normalidad.
Con estos dos elementos podemos confirmar que la distribución se acerca a la “Normal” y que la distribución no es demasiado sesgada o tiene colas muy pesadas
Es confiable entonces hacer uso de métodos paramétricos.
Estamos frente al calculo de IC de una muestra de \(n\) = 14 (menor a 30 observaciones) y que cumple con el supuesto de normalidad, por lo tanto debemos aplicar un método paramétrico basado en la distribución \(t\) de Student.
La distribución \(t\) de Student se asemeja en gran medida a la distribución normal. Tiene como parámetros la media, la varianza y además incorpora a través de los grados de libertad una modificación que permite flexibilizar las colas en función del tamaño que tenga la muestra.
En la practica, cuando trabajamos sobre inferencia de la media (para IC o para pruebas de hipótesis para comparar) y el tamaño muestral es mayor a 30 igualmente se hace con la distribución \(t\) de Student, dado que con 30 o más grados de libertad es prácticamente igual a una distribución normal.
Podríamos hacer las operaciones y cálculos individuales utilizando
las funciones que R tiene sobre esta distribución (familia
TDist: qt(), etc), pero la idea de este ejercicio es
mostrarles la forma operativa más sencilla de llevarlo a cabo.
Función t.test()
La función t.test(), incluída en el paquete
stats de R base, sirve apara ejecutar test de hipótesis de
medias de una y dos poblaciones (independientes o pareadas) pero además
nos calcula automáticamente el intervalo de confianza requerido, basado
en la distribución \(t\) de
Student.
Para este ejemplo debemos utilizar como argumentos:
t.test(x = pcb$concentracion,
conf.level = 0.95)
One Sample t-test
data: pcb$concentracion
t = 7.754, df = 13, p-value = 3.143e-06
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
1233.053 2185.518
sample estimates:
mean of x
1709.286
En la lista de resultados devuelta debemos observar los valores que figuran debajo de “95 percent confidence interval:”. En este caso, el resultado es de una media de 1709,3 IC95%: 1233,0-2185,5 ng/g
Si cambiamos el argumento conf.level a 0.90 obtendremos el IC 90%:
t.test(x = pcb$concentracion,
conf.level = 0.90)
One Sample t-test
data: pcb$concentracion
t = 7.754, df = 13, p-value = 3.143e-06
alternative hypothesis: true mean is not equal to 0
90 percent confidence interval:
1318.901 2099.671
sample estimates:
mean of x
1709.286
Este va de 1318,9 a 2099,7 ng/g, lógicamente más estrecho que el anterior porque redujimos el intervalo de confianza.