4.4.3. Intervalos de confianza

Intervalos de confianza

La estimación puntual aproxima mediante un número el valor de una característica poblacional o parámetro desconocido (la altura media de los españoles, la intención de voto a un partido en las próximas elecciones generales, el tiempo medio de ejecución de un algoritmo, el número de taxis…) pero no nos indica el error que se comete en dicha estimación.
Lo razonable, en la práctica, es adjuntar, junto a la estimación puntual del parámetro, un intervalo que mida el margen de error de la estimación. La construcción de dicho intervalo es el objetivo de la estimación por intervalos de confianza.
Un intervalo de confianza para un parámetro con un nivel de confianza 1α (0<α<1), es un intervalo de extremos aleatorios (L,U) que, con probabilidad 1α, contiene al parámetro en cuestión.P(parámetro(L,U))=1α.
Los valores más habituales del nivel de confianza 1α son 0.9,0.95 o 0.99 (la confianza es del 90%,95% o 99%). En ocasiones también se emplea la terminología nivel de significación para el valor α.
En la estimación por intervalos de confianza partimos de una muestra x1,,xn. A partir de estos valores obtenemos un intervalo numérico. Por ejemplo, podríamos hablar de que, con una confianza del 99 por ciento, la proporción de voto al partido político “Unidas Ciudadanas” está entre el 29 y el 31 por ciento. O que, con una confianza del 90 por ciento, la estatura media está entre 1.80 y 1.84.

7.4.1 Interpretación

Igual que vimos antes con las encuestas de las estaturas, o de la proporción de gente que cree en los extraterrestres, con cada muestra obteníamos n datos diferentes, y valores diferentes (de la media muestral o de la proporción muestral).
De cada muestra también puede obtenerse un intervalo de confianza. Entonces, con cada muestra diferente, obtendremos un intervalo también diferente. A medida que aumenta la cantidad de intervalos que hemos construido, el porcentaje de intervalos que contienen el verdadero valor del parámetro se aproximará al 100(1α)%.
Así, por ejemplo, un intervalo de confianza al 95% garantiza que, si tomamos 100 muestras, el verdadero valor del parámetro estará dentro del intervalo en aproximadamente el 95 de los intervalos construidos.
Veamos un ejemplo mediante simulación. Vamos a simular que realizamos encuestas, en este caso preguntando a n=12 personas (de nuevo si creen en los extraterrestres). De cada muestra podemos obtener una estimación puntual (calculada mediante la proporción en la muestra), y también un intervalo de confianza (que más adelante veremos cómo se calcula). Haremos este proceso B=20 veces.
set.seed(1) 
n<-12
B<-20
muestras <- as.data.frame(matrix(rbinom(n*B, 
                          1, 0.61), ncol=n))
rownames(muestras) <- paste("muestra", 1:B, sep="")
colnames(muestras) <- paste(" obs ", 1:n , sep="") 
#muestras
pander(muestras)
Table continues below
 obs 1obs 2obs 3obs 4obs 5obs 6obs 7obs 8
muestra110001000
muestra211010111
muestra310011111
muestra401111011
muestra511100000
muestra601011111
muestra701110111
muestra801101110
muestra900011011
muestra1011001110
muestra1111111010
muestra1211001011
muestra1301110111
muestra1411110101
muestra1500110101
muestra1610100111
muestra1700101011
muestra1801111111
muestra1910000101
muestra2001101011
 obs 9obs 10obs 11obs 12
muestra11111
muestra20111
muestra31011
muestra40111
muestra50010
muestra61111
muestra71011
muestra81011
muestra90011
muestra101100
muestra110001
muestra120111
muestra130101
muestra141000
muestra151101
muestra160110
muestra170100
muestra180001
muestra191101
muestra200011
muestras$mean <- rowMeans(muestras[,1:n])

alfa <- 0.05
z <- qnorm(1 - alfa/2)
p <-muestras$mean
muestras$ici <- p - z*sqrt(p*(1-p)/n)
muestras$ics <- p + z*sqrt(p*(1-p)/n)
esta<-0
b=ifelse(0.61<=muestras$ics & 0.61 >= muestras$ici, 
                                    "SI", "NO")
Resultado<-data.frame(muestras$mean, muestras$ici ,
                                  muestras$ics, b)
colnames(Resultado)<-c("ptilde", "L", "U", 
                       " 0.61 está o no?")
pander(Resultado)
ptildeLU0.61 está o no?
0.50.21710.7829SI
0.750.5050.995SI
0.750.5050.995SI
0.750.5050.995SI
0.33330.066620.6001NO
0.83330.62251.044NO
0.750.5050.995SI
0.66670.39990.9334SI
0.50.21710.7829SI
0.58330.30440.8623SI
0.58330.30440.8623SI
0.66670.39990.9334SI
0.66670.39990.9334SI
0.58330.30440.8623SI
0.58330.30440.8623SI
0.58330.30440.8623SI
0.41670.13770.6956SI
0.66670.39990.9334SI
0.50.21710.7829SI
0.58330.30440.8623SI
Vemos que, en la mayoria de las ocasiones, el intervalo de confianza contiene al verdadero valor del parámetro (0.61 en este caso), pero en otras (las menos) no. En este ejemplo hemos utilizado un tamaño de muestra pequeño y hemos repetido el proceso pocas veces, pero ahí está el código para replicar el procedimiento con otros valores. Se puede comprobar que, con tamaños de muestra un poco más grandes y repetido el proceso un número grande de veces, 95 de cada 100 veces (aquí hemos usado un nivel de confianza del 95%) los intervalos contendrán el valor 0.61, y aproximadamente 5 de cada 100 veces no lo contendrán.
Observemos el mismo proceso, ahora para 500 muestras de tamaño 10, de estaturas (de hombres mayores de 18 años en España). Simulamos que seleccionamos aleatoriamente a 10 hombres, les medimos la estatura, calculamos la estatura media de la muestra y el intervalo de confianza para dicha estatura media, con confianza del 95%. Realizamos este proceso 500 veces.
Ahora, además, hacemos un dibujo de los 50 primeros intervalos, para comprobar cuáles contienen al verdadero valor buscado (la estatura media real o teórica, en este caso, que es 177.7).
set.seed(54321) 
nsim <- 500
nx <- 10

# Valores teóricos:
mux <- 177.7
sdx <- 5.9
# 
# Simulación de las muestras  
muestras <- as.data.frame(matrix(rnorm(nsim*nx, 
                 mean=mux, sd=sdx), ncol=nx))
rownames(muestras) <- paste("muestra", 1:nsim, sep="")
colnames(muestras) <- paste("obs", 1:nx, sep="")
 
#  Estimaciones
muestras$mean <- rowMeans(muestras[,1:nx])
muestras$sd <- apply(muestras[,1:nx], 1, sd)

alfa <- 0.05
z <- qnorm(1 - alfa/2)
muestras$ici <- muestras$mean - z*sdx/sqrt(nx)
muestras$ics <- muestras$mean + z*sdx/sqrt(nx)

# Cobertura de las estimaciones por IC:
muestras$cob <- (muestras$ici < mux) & (mux < muestras$ics) 
ncob <- sum(muestras$cob) 

# Nº de intervalos que contienen la verdadera media
ncob
[1] 480

# Proporción de intervalos
100*ncob/nsim     
[1] 96
Como vemos, de los intervalos calculados, el 96 por ciento de los mismos contiene el verdadero valor 177.7. Este valor es casi el 95%, que es el nivel utilizado.
Hacemos ahora el gráfico de los primeros 50 intervalos (Figura 7.9:). Los intervalos de color rojo no contienen al verdadero valor del parámetro; los otros sí.
m <- 100
tmp <- muestras[1:m,]
attach(tmp)
color <- ifelse(cob,"blue","red")
plot(1:m, mean, col = color, 
     ylim = c(min(ici),max(ics)), 
     main = "Cobertura de las estimaciones por IC", 
          xlab = "Muestra", ylab = "IC")
arrows(1:m, ici, 1:m, ics, angle = 90, 
       length = 0.05, code = 3, col = color)
abline(h = mux, lty = 3)
Fijémonos que hay intervalos que no contienen al parámetro verdadero.
Figura 7.9: Fijémonos que hay intervalos que no contienen al parámetro verdadero.

Comentarios