¿Qué es un intervalo de confianza?
Intervalo de confianza a 95%
Un intervalo a 95% de confianza es un rango de valores donde se puede estar seguro un 95% de que contiene el valor verdadero de una población. Debido a la variabilidad natural del muestreo, la media o proporción de la muestra (centro del IC) variará de muestra a muestra. La confianza está en el método, no en un IC en particular. Si se repite el método de muestreo muchas veces, aproximadamente 95% de los intevalos construidos incluirían el valor verdadero de la población.
Por lo tanto, mientras el tamaño de muestra aumenta, el rango de valores del intervalo se reduce, significandose que se conoce el valor verdadero con más certeza, comparado a que se tuviera una muestra muy pequeña.
Por ello, cuando se trata de una variable respuesta continua que involucra tomar mediciones en personas, los datos pueden ser resumidos por la media y la desviación estándar. Una media observada desde un ensayo clínico será una estimación de la media verdadera. El error estándar de la media representa que tan lejos la media observada se espera que este desde el valor verdadero, y es utilizado para estimar un intervalo de confianza para la media verdadera:\[ IC = \text{Proporción observada} \pm Z * ErrorEstandar \]
\[\text{Error estandar} = \frac{\sigma}{\sqrt n }\]
donde:
Los IC juegan un papel importante dentro de ensayos clinicos aleatorios, ya que ayudan a obtener información preliminar la cual será interpretada y evaluada para considerar futuras investigaciones. Sin embargo se debe tomar mucho cuidado con las interpretaciones que se realicen respecto al ensayo, especialmente si éste contiene un grupo de control que produjo resultados positivos.
Para comenzar, se van a declarar las respectivas paqueterías que se utilizarán a lo largo del documento, por lo cual es importante que se instalen con anticipación.Declaración de paqueterias
Un doctor conduce un pequeño ensayo con una muestra aleatoria de
pacientes, donde le interesa saber el nivel promedio de colesterol. Es
por ello que midió los niveles de 20 pacientes y desea inferir sobre los
datos.
Encuentra un intervalo de confianza del 95% para la media del
nivel de colesterol de sus pacientes.
A continuación se presentan los datos recolectados (en m.mol/L):
## Mediciones
## 1 3.6
## 2 6.9
## 3 5.1
## 4 4.2
## 5 5.5
## 6 7.2
## 7 3.0
## 8 5.8
## 9 4.9
## 10 9.9
## 11 7.1
## 12 5.4
## 13 6.2
## 14 4.5
## 15 6.3
## 16 8.2
## 17 5.7
## 18 4.4
## 19 7.9
## 20 3.2
## [1] 5.75
Se estima que la media del nivel de colesterol en los pacientes es 5.75 m.mol/L. Esto indica una estimación para la media verdadera de la población.
A continuación, se calcula la desviación estándar de las mediciones haciendo uso de unas de las funciones ya establecidas en R donde el único argumento que necesita es los datos a inferir.## [1] 1.768288
## [1] 0.3954012
El error estándar ayuda a darse una idea de la precisión que tendrá el intervalo para estimar el valor verdadero de la media.
A continuación, se utilizará la distribución de t-student debido a que los datos han sido obtenidos de una muestra y no se conoce el valor de la varianza poblacional, además de que el tamaño de muestra es muy pequeño.
El valor de t-student es a una probabilidad de \(\alpha\)/2 con n-1 grados de libertad tal como se muestra a continuación:## [1] 19
alfa_2 <- (1-0.95)/2 #valor de alfa sobre 2
t <- qt(1-alfa_2, df=gl) #Función para obtener cuantiles de t-student
t## [1] 2.093024
#Intervalos de confianza
LI1 <- xmedia - (t*erroEstan) #Límite inferior
LS1 <- xmedia + (t*erroEstan) #Límite superiorSe determina con una confianza del 95% que el nivel promedio de colesterol en los pacientes van desde 4.92 hasta 6.58 m.mol/L.
t.test(datos$Mediciones, #Datos a inferir
alternative = "two.sided", #Tipo de prueba (bilateral)
mu = 5.75, #Media de los datos
conf.level = 0.95) #Nivel de confianza##
## One Sample t-test
##
## data: datos$Mediciones
## t = 0, df = 19, p-value = 1
## alternative hypothesis: true mean is not equal to 5.75
## 95 percent confidence interval:
## 4.922416 6.577584
## sample estimates:
## mean of x
## 5.75
En base a la teoria vista al inicio de la práctica se sabe que entre más grande el tamaño del ensayo, mayor confiabilidad para estimar el valor verdadero.
Por cuestiones prácticas se desea demostrar que cuando se realiza una simulación de muchos ensayos de tamaño n cada uno; se encontrará que un 95% de los intervalos de confianza contendrá el valor de la media verdadera.
Se realizan 100 simulaciones de ensayos de 20 pacientes cada uno, donde se calcula un intervalo de confianza para cada uno y se grafican:LI <- NULL #Iniciación de variable para limite inferior
LS <- NULL #Iniciación de variable para limite superior
medias <- NULL #Iniciación de variable para las medias
si <- NULL
#Se realiza un ciclo 100 veces
Simulaciones <- for (i in 1:100){
set.seed(i)
muestra = sample(datos$Mediciones, size=20 ,replace=TRUE) #Tomamos muestra de 20
media = mean(muestra) #Media de la muestra
desviacionEsta = sqrt(var(muestra)) #Desv.Están. de la muestra
errorEstandar =(desviacionEsta/sqrt(length(datos$Mediciones))) #Error estandar de la muestra
LI[i]= media-t*errorEstandar #Limites inferiores (recolectados)
LS[i]= media+t*errorEstandar #Limites superiores (recolectados)
medias[i] = media #Medias (recolectadas)
inf = sum(LI > mean(medias)) #Limites inferiores mayores a la media
sup = sum(LS < mean(medias)) #Limites superior menores a la media
}
noContieneMedia <- (sup+inf)/100
siContieneMedia <- (1-noContieneMedia)*100ejex <- c(1:100)
leg <- c("Media Verdadera")
ggplot(Simulaciones, aes(medias,ejex)) + # ggplot2 plot with confidence intervals
geom_point() +
geom_errorbar(aes(xmin = LI, xmax = LS))+
geom_vline(xintercept = mean(medias), col = "maroon", size=1)+
geom_text(aes(mean(medias), 0, label = leg, vjust = -105, hjust=0.5,color="red",fontface ="bold", show.legend = NA)) +
scale_y_continuous(limits = c(0, 101), name = "Muestras") +
scale_x_continuous(limits = c(3.5, 8),name = "Nivel de colesterol en m.mol/L") +
theme(legend.position = "none") +
ggtitle("Nivel de colesterol en pacientes, n=20") + theme(plot.title = element_text(hjust = 0.5))(2022)