Sesión 18 (C) — ¿Cubre de verdad el 95 por ciento? La cobertura del intervalo y la frecuencia de detección
Índice
- Descripción de la práctica
- Actividad 1 - ¿Cubre el 95 por ciento?
- Actividad 2 - El precio de estimar \(\sigma\)
- Actividad 3 - Una hipótesis falsa por poco, con \(n=12\) y con \(n=120\)
- Apéndice - ¿Y si las perturbaciones no son normales?
- Preguntas de interpretación para la clase
- Para profundizar
- Código completo de la práctica
- Respuestas
Descripción de la práctica
La lección 12 fue muy cuidadosa con lo que el intervalo de confianza dice y lo que no dice: dice que el \(95\%\) de las muestras producen un intervalo que contiene a \(\beta_2\); no dice que \(\beta_2\) esté en este intervalo con probabilidad \(0{,}95\). Es una afirmación sobre una frecuencia, y una frecuencia se comprueba repitiendo. Esta práctica la repite.
Reutilizamos el mundo artificial de la práctica B —el panel disperso de la lección 12: doce valores del regresor de \(22{,}5\) a \(77{,}5\), \(\beta_1=10\), \(\beta_2=0{,}5\) y perturbaciones normales con \(\sigma=1{,}1\)— y la mecánica del loop que aprendimos en el laboratorio anterior. En cada réplica sorteamos doce perturbaciones nuevas, estimamos, construimos el intervalo y anotamos si contiene al \(0{,}5\) verdadero. Después contamos.
Los datos son simulados por la razón de siempre: solo conociendo la verdad se puede saber si el intervalo la contiene.
Objetivos
- Comprobar que el intervalo al \(95\%\) contiene al verdadero \(\beta_2\) en (aproximadamente) el \(95\%\) de las réplicas, y ver, réplica a réplica, cuáles fallan.
- Medir el precio de estimar \(\sigma\): qué cobertura se obtiene si se usa \(1{,}96\) en lugar del valor crítico de la \(t_{10}\).
- Contrastar una hipótesis falsa por poco con \(n=12\) y con \(n=120\): la identidad \(\vert t\vert=\sqrt{n-k}\times\) razón de catetos, ejecutada.
- (Apéndice) Ver qué ocurre con la cobertura cuando las perturbaciones no son normales.
Actividad 1 - ¿Cubre el 95 por ciento?
Construimos el mundo, fijamos el valor crítico de la \(t\) con \(n-k=10\) grados de libertad, y repetimos el experimento \(4\,000\) veces guardando, en cada réplica, la estimación, su error estándar, los dos extremos del intervalo, un indicador de si contiene al verdadero \(\beta_2\) y el estadístico \(t\) para la hipótesis cierta \(H_0\!:\beta_2=0{,}5\).
en línea de comandos:
nulldata 12
setobs 1 1 --cross-section
series x = 22.5 + 5*(index - 1) # el regresor disperso de la leccion 12
scalar b1 = 10
scalar b2 = 0.5
scalar sig = 1.1
scalar R = 4000
scalar tc = critical(t, 10, 0.025) # valor critico de la t_10 al 5%
scalar zc = 1.96 # el de la normal, para la Actividad 2
set seed 20261113
loop R --progressive --quiet
series u = normal(0, sig)
series y = b1 + b2*x + u
ols y const x --quiet
scalar b2hat = $coeff(x)
scalar ee = $stderr(x)
scalar cL = b2hat - tc*ee # extremos del IC al 95%
scalar cR = b2hat + tc*ee
scalar dentro = (cL <= b2 && b2 <= cR) # 1 si el IC contiene al verdadero beta_2
scalar tstat = (b2hat - b2)/ee # t para la H0 CIERTA beta_2 = 0,5
scalar dentroZ = (b2hat - zc*ee <= b2 && b2 <= b2hat + zc*ee) # con 1,96 en vez de t_c
store "@workdir/replicasIC.gdt" b2hat ee cL cR dentro tstat dentroZ
endloop
open "@workdir/replicasIC.gdt" --quiet scalar tc = critical(t, 10, 0.025) # al abrir otro fichero Gretl olvida los escalares scalar zc = 1.96
printf "Replicas : %d\n", $nobs printf "Intervalos que contienen al verdadero b2 : %.4f (objetivo: 0,95)\n", mean(dentro) printf "Rechazos de la H0 cierta al 5%% : %.4f (objetivo: 0,05)\n", mean(abs(tstat) > tc)
Replicas : 4000 Intervalos que contienen al verdadero b2 : 0,9520 (objetivo: 0,95) Rechazos de la H0 cierta al 5% : 0,0480 (objetivo: 0,05)
Atención al detalle práctico ya conocido del laboratorio anterior: al abrir el fichero de réplicas, Gretl descarta los escalares que teníamos definidos; por eso tc y zc se vuelven a definir después de abrirlo.
Los intervalos, uno a uno
Un porcentaje es un resumen. Para ver qué significa, dibujamos los cien primeros intervalos: sus dos extremos como dos líneas, y el verdadero \(\beta_2\) como una línea horizontal. Cada vez que la banda inferior sube por encima de \(0{,}5\), o la superior baja por debajo, ese intervalo ha fallado.
en línea de comandos:
smpl 1 100 series B2 = 0.5 gnuplot cL cR B2 --time-series --with-lines --output=display printf "Intervalos que fallan entre los 100 primeros: %d\n", 100 - sum(dentro) smpl full
Figura 1: Los cien primeros intervalos de confianza al \(95\%\): extremo inferior y superior de cada uno, frente al verdadero \(\beta_2=0{,}5\) (línea horizontal). Los intervalos que no lo contienen son aquellos en los que una de las dos líneas cruza la horizontal.
Intervalos que fallan entre los 100 primeros: 7
Lo que debe observar
La frecuencia empírica de cobertura queda muy cerca de \(0{,}95\), y la de rechazos de la hipótesis cierta muy cerca de \(0{,}05\): son la misma cosa vista desde dos lados. Con \(4\,000\) réplicas no cabe esperar exactamente \(0{,}9500\) —la frecuencia observada es a su vez una variable aleatoria—, pero sí una distancia pequeña.
Y la figura muestra lo que la frecuencia esconde. El intervalo cambia de una réplica a otra: sus extremos son variables aleatorias, funciones de la muestra. El \(\beta_2\) verdadero, en cambio, no se mueve. Esa es la razón de la lectura correcta de la lección 12: lo aleatorio es el intervalo, no el parámetro, y el \(95\%\) es la frecuencia con la que el intervalo aleatorio atrapa al parámetro fijo. Mirando un solo intervalo —cualquiera de los cien— no hay forma de saber si es de los que aciertan.
Actividad 2 - El precio de estimar \(\sigma\)
La lección 12 explicó por qué el estadístico sigue una \(t_{n-k}\) y no una normal: en el denominador va \(\mathfrak s\), que fluctúa de muestra en muestra, y eso ensancha las colas. Con \(n-k=10\) la diferencia entre \(t_c=2{,}228\) y \(1{,}96\) es del \(14\%\). Ya hemos guardado, en cada réplica, si el intervalo construido con \(1{,}96\) contenía al verdadero \(\beta_2\); y tenemos los \(4\,000\) estadísticos \(t\) bajo la hipótesis cierta, cuya distribución podemos mirar directamente.
en línea de comandos:
printf "Cobertura del intervalo con t_c = %.3f : %.4f\n", tc, mean(dentro) printf "Cobertura del intervalo con 1,96 : %.4f\n", mean(dentroZ) printf "\nCuantiles empiricos del estadistico t bajo la H0 cierta:\n" printf " 2,5%% -> %.3f (la t_10 predice %.3f; la normal, %.3f)\n", quantile(tstat, 0.025), -tc, -zc printf " 97,5%% -> %.3f (la t_10 predice %.3f; la normal, %.3f)\n", quantile(tstat, 0.975), tc, zc printf "Fraccion de |t| > 1,96 : %.4f (con 1,96 se rechazaria la H0 cierta mas del 5%%)\n", mean(abs(tstat) > zc) freq tstat --plot=display
Cobertura del intervalo con t_c = 2,228 : 0,9520 Cobertura del intervalo con 1,96 : 0,9188 Cuantiles empiricos del estadistico t bajo la H0 cierta: 2,5% -> -2,176 (la t_10 predice -2,228; la normal, -1,960) 97,5% -> 2,236 (la t_10 predice 2,228; la normal, 1,960) Fraccion de |t| > 1,96 : 0,0812 (con 1,96 se rechazaria la H0 cierta mas del 5%)
Figura 2: Histograma de los \(4\,000\) estadísticos \(t=(\hat\beta_2-0{,}5)/\mathrm{ee}(\hat\beta_2)\), calculados bajo la hipótesis cierta. Sus cuantiles del \(2{,}5\%\) y del \(97{,}5\%\) caen donde los sitúa la \(t_{10}\), no donde los sitúa la normal.
Lo que debe observar
Con \(1{,}96\) el intervalo cubre bastante menos del \(95\%\), y el contraste rechaza la hipótesis cierta bastante más del \(5\%\). Los cuantiles empíricos del estadístico lo confirman: se sitúan alrededor de \(\pm2{,}23\), no de \(\pm1{,}96\). Esa diferencia es lo que la lección llamó ``el precio de estimar \(\sigma\)'': el \(\mathfrak s\) del denominador fluctúa, el cociente se dispersa más que una normal, y la \(t_{n-k}\) lo tiene en cuenta. Con diez grados de libertad el precio se paga; con quinientos, como en la práctica A, \(t_c\) y \(1{,}96\) son casi lo mismo.
Actividad 3 - Una hipótesis falsa por poco, con \(n=12\) y con \(n=120\)
Hasta aquí hemos contrastado una hipótesis cierta. Ahora contrastamos una falsa por poco: \(H_0\!:\beta_2=0{,}47\), cuando el verdadero es \(0{,}5\). ¿Con qué frecuencia la detecta el contraste? Lo hacemos dos veces: con las doce observaciones de siempre, y con ciento veinte —el mismo patrón de regresor repetido diez veces, el mismo \(\sigma\), la misma hipótesis—. Lo único que cambia es la cantidad de evidencia.
en línea de comandos:
nulldata 120 --preserve setobs 1 1 --cross-section series x = 22.5 + 5*((index - 1) % 12) # el mismo patron, diez veces scalar b1 = 10 # los parametros del mundo, de nuevo scalar b2 = 0.5 scalar sig = 1.1 scalar R = 4000 scalar c_falsa = 0.47
smpl 1 12 # una sola vuelta del patron: n = 12
scalar tc = critical(t, $nobs - 2, 0.025)
set seed 20261113
scalar rech = 0
scalar cov = 0
loop R --quiet
series u = normal(0, sig)
series y = b1 + b2*x + u
ols y const x --quiet
rech += (abs(($coeff(x) - c_falsa)/$stderr(x)) > tc)
cov += ($coeff(x) - tc*$stderr(x) <= b2 && b2 <= $coeff(x) + tc*$stderr(x))
endloop
printf "n = %3d: t_c = %.3f rechazos de la H0 falsa (0,47) = %.3f cobertura del IC = %.3f\n", $nobs, tc, rech/R, cov/R
smpl full # las diez vueltas: n = 120
scalar tc = critical(t, $nobs - 2, 0.025)
set seed 20261113
scalar rech = 0
scalar cov = 0
loop R --quiet
series u = normal(0, sig)
series y = b1 + b2*x + u
ols y const x --quiet
rech += (abs(($coeff(x) - c_falsa)/$stderr(x)) > tc)
cov += ($coeff(x) - tc*$stderr(x) <= b2 && b2 <= $coeff(x) + tc*$stderr(x))
endloop
printf "n = %3d: t_c = %.3f rechazos de la H0 falsa (0,47) = %.3f cobertura del IC = %.3f\n", $nobs, tc, rech/R, cov/R
n = 12: t_c = 2,228 rechazos de la H0 falsa (0,47) = 0,319 cobertura del IC = 0,952 n = 120: t_c = 1,980 rechazos de la H0 falsa (0,47) = 0,999 cobertura del IC = 0,946
Lo que debe observar
La cobertura del intervalo es la misma en los dos casos —en torno al \(95\%\)—, como debe: el intervalo cumple su garantía con doce datos y con ciento veinte. Lo que cambia es la detección: con \(n=12\) la hipótesis falsa se rechaza menos de una vez de cada tres; con \(n=120\), prácticamente siempre.
Esto es la identidad de la lección 12, \(\vert t\vert=\sqrt{n-k}\times\) razón de catetos, ejecutada en vez de enunciada. La relación entre \(x\) e \(y\) es la misma en los dos mundos, el ruido es el mismo, la hipótesis es igual de falsa; lo único que ha crecido es \(\sqrt{n-k}\), y con ello la frecuencia con la que un efecto real se hace visible. (Los manuales llaman potencia del contraste a esa frecuencia de detección.)
Y tiene una lectura inmediata para la práctica A, donde con doce viviendas el intervalo iba de \(1\,900\) a \(20\,000\): con doce observaciones, dos de cada tres veces no se rechaza una hipótesis que es falsa. ``No rechazar'' no era ``aceptar'': era, la mayoría de las veces, no tener evidencia suficiente para decidir.
Apéndice - ¿Y si las perturbaciones no son normales?
Material complementario, con el mismo estatus que el apéndice matricial del laboratorio anterior: va más allá de lo que da tiempo en clase y queda aquí para quien quiera completarlo.
La lección 12 fue explícita: la normalidad es el único supuesto nuevo, y su cometido es dar forma a la distribución de \(\hat\beta_2\). El laboratorio anterior mostró que insesgadez y varianza no la necesitan; la pregunta natural es si la cobertura del intervalo —que sí depende de la forma— la necesita. Repetimos la Actividad 1 con perturbaciones \(\chi^2\) de un grado de libertad, centradas y reescaladas a la misma \(\sigma\): una distribución muy asimétrica, la misma con la que el laboratorio anterior obtuvo un histograma inconfundiblemente torcido con \(n=12\).
en línea de comandos:
smpl 1 12
scalar tc = critical(t, $nobs - 2, 0.025)
set seed 20261113
scalar cov = 0
scalar rech0 = 0
loop R --quiet
series u = (randgen(X, 1) - 1)/sqrt(2) * sig # chi2(1) centrada, con desviacion tipica sig
series y = b1 + b2*x + u
ols y const x --quiet
cov += ($coeff(x) - tc*$stderr(x) <= b2 && b2 <= $coeff(x) + tc*$stderr(x))
rech0 += (abs(($coeff(x) - b2)/$stderr(x)) > tc)
endloop
printf "chi2(1) centrada, n = %3d: cobertura del IC = %.4f rechazos de la H0 cierta = %.4f\n", $nobs, cov/R, rech0/R
smpl full
scalar tc = critical(t, $nobs - 2, 0.025)
set seed 20261113
scalar cov = 0
scalar rech0 = 0
loop R --quiet
series u = (randgen(X, 1) - 1)/sqrt(2) * sig
series y = b1 + b2*x + u
ols y const x --quiet
cov += ($coeff(x) - tc*$stderr(x) <= b2 && b2 <= $coeff(x) + tc*$stderr(x))
rech0 += (abs(($coeff(x) - b2)/$stderr(x)) > tc)
endloop
printf "chi2(1) centrada, n = %3d: cobertura del IC = %.4f rechazos de la H0 cierta = %.4f\n", $nobs, cov/R, rech0/R
chi2(1) centrada, n = 12: cobertura del IC = 0,9620 rechazos de la H0 cierta = 0,0380 chi2(1) centrada, n = 120: cobertura del IC = 0,9478 rechazos de la H0 cierta = 0,0523
Lo que debe observar
Con \(n=12\) la cobertura y la tasa de rechazo se apartan de sus valores nominales, y lo hacen en la dirección que menos se espera: el intervalo cubre más del \(95\%\) y el contraste rechaza menos del \(5\%\). El aparato de la lección 12, construido bajo normalidad, se vuelve conservador con estas perturbaciones y esta muestra. No es un desastre —nadie saca conclusiones falsas por rechazar de menos—, pero el \(5\%\) que imprime el programa ya no es el \(5\%\) real.
Con \(n=120\) la desviación prácticamente desaparece. Es el cierre de la lección 12: en muestras grandes, el teorema central del límite devuelve a \(\hat\beta_2\) una distribución aproximadamente normal aunque \(U\) no lo sea, y los contrastes e intervalos vuelven a ser válidos sin el supuesto. En muestras pequeñas, la normalidad es el supuesto que sostiene el resultado exacto —y cuando falla, lo que falla es la calibración del nivel.
Preguntas de interpretación para la clase
- En la Actividad 1, la frecuencia de cobertura no ha salido exactamente \(0{,}95\). ¿Qué esperaría que ocurriese con la diferencia si el experimento se repitiera con \(400\,000\) réplicas en lugar de \(4\,000\)? ¿Y si se repitiera con otras \(4\,000\), cambiando la semilla?
- Escoja uno de los intervalos de la figura que no contiene a \(0{,}5\). Si ese fuera el único que tuviera —como ocurre siempre con datos reales—, ¿qué diría de él? ¿Habría alguna forma de saber que es de los que fallan?
- En la Actividad 2, ¿por qué usar \(1{,}96\) con \(n-k=10\) hace que el contraste rechace la hipótesis cierta más del \(5\%\) de las veces, y no menos?
- En la Actividad 3, la cobertura es la misma con doce y con ciento veinte observaciones, pero la detección no. ¿Qué propiedad del intervalo se conserva al cambiar \(n\), y cuál cambia? Relaciónelo con la anchura de los intervalos de la práctica A.
- Tras el Apéndice: si en un estudio con muestra pequeña las perturbaciones fueran claramente asimétricas, ¿en qué sentido habría que tomar con cautela un valor \(p\) de \(0{,}04\)? ¿Y uno de \(0{,}0001\)?
Para profundizar
- Lección 12 (lección 12), secciones ``El intervalo de confianza'' y ``Por qué el valor crítico depende de \(n-k\)''.
- Wooldridge, J. M. (2020). Introductory Econometrics, cap. 4, sección 4.3 (intervalos de confianza) y cap. 5, sección 5.2 (validez aproximada de los contrastes en muestras grandes sin normalidad).
- Manual de Gretl, capítulo sobre loop constructs; funciones
quantileyrandgen.
Código completo de la práctica
| Enlace al guión: | S18-Prct-C-cobertura.inp |
Respuestas
- Más réplicas, otra semilla. La frecuencia de cobertura observada es la media de \(R\) indicadores \(0/1\) independientes, cada uno con probabilidad \(0{,}95\) de valer \(1\); su desviación típica es \(\sqrt{0{,}95\cdot0{,}05/R}\), unos \(0{,}0034\) con \(R=4\,000\) y diez veces menos con \(R=400\,000\). Cabe esperar, por tanto, que la distancia a \(0{,}95\) se reduzca a la décima parte. Con otra semilla y las mismas \(4\,000\) réplicas, la frecuencia sería otra, distinta de la obtenida en el mismo orden de magnitud (unas milésimas): la propia frecuencia empírica tiene su dispersión.
- Un intervalo que falla, visto en solitario. Nada lo distingue de los que aciertan: tiene el mismo aspecto, la misma anchura aproximada, se ha construido con la misma receta. Con datos reales no hay forma de saber si el intervalo que tenemos delante es uno de los del \(5\%\). Eso es lo que significa que la garantía sea sobre el procedimiento y no sobre el intervalo concreto: sabemos cuántas veces acierta el método, no si ha acertado esta vez.
- Por qué \(1{,}96\) rechaza de más. Porque \(1{,}96<2{,}228\): la región crítica ``\(\vert t\vert>1{,}96\)'' es más grande que ``\(\vert t\vert>2{,}228\)'', y el estadístico —que sigue una \(t_{10}\), con colas más gruesas que la normal— cae en ella con más frecuencia que el \(5\%\). Usar el valor crítico de la normal es actuar como si \(\sigma\) fuese conocida; como no lo es y se estima, el estadístico se dispersa más de lo que la normal supone, y el contraste, calibrado para una normal, se vuelve demasiado laxo.
- Lo que se conserva y lo que cambia con \(n\). Se conserva la cobertura: sea cual sea \(n\), el intervalo al \(95\%\) contiene al parámetro el \(95\%\) de las veces, porque su valor crítico se ajusta a los grados de libertad. Cambia la anchura: con más observaciones el error estándar es menor (el regresor en desviaciones es más largo) y el intervalo, más estrecho; por eso un valor falso por poco queda fuera de él con más frecuencia. Es lo que se veía en la práctica A al pasar de doce viviendas a quinientas: la misma garantía del \(95\%\), con un intervalo diez veces más estrecho y, en consecuencia, mucho más informativo.
- Valores \(p\) con muestra pequeña y perturbaciones asimétricas. El Apéndice muestra que, en ese caso, el nivel real del contraste no coincide con el nominal: aquí el contraste resultó conservador, pero con otras distribuciones podría ser lo contrario, y en cualquier caso el \(0{,}05\) del programa deja de ser una cifra fiable. Un valor \(p\) de \(0{,}04\) está tan cerca del umbral que esa descalibración puede cambiar el veredicto: hay que tomarlo como ``en el límite'', no como ``significativo''. Uno de \(0{,}0001\) está tan lejos del umbral que ninguna descalibración razonable lo convierte en no significativo: la conclusión es robusta aunque la cifra exacta no lo sea. La regla práctica es que la cautela hace falta cerca del umbral, y que con muestras grandes el problema se desvanece.