11  Pruebas con hipótesis simples

NotaObjetivos de aprendizaje

Al terminar este capítulo podré:

  • Recordar las definiciones de error de tipo I (\(\alpha\)) y tipo II (\(\beta\)) y de región crítica.
  • Comprender por qué no se pueden minimizar \(\alpha\) y \(\beta\) simultáneamente y qué compromiso resuelve el cociente de verosimilitud.
  • Aplicar el criterio de Neyman-Pearson para construir la prueba más potente entre dos hipótesis simples.
  • Calcular \(\alpha\) y \(\beta\) tanto analíticamente como numéricamente (R/Python) para los casos exponencial, normal y Bernoulli.
  • Analizar el efecto del tamaño de muestra \(n\) sobre la potencia \(1-\beta\).

En los capítulos anteriores estimamos parámetros desconocidos de una población. Ahora daremos un paso distinto: decidir entre dos afirmaciones sobre esa población. Este capítulo aborda el caso más simple —dos hipótesis puntuales— y sienta la base para las pruebas con hipótesis compuestas que veremos después.

11.1 Hipótesis simples

Ejemplo 11.1 Supongamos que tenemos un sistema en el que se registran los tiempos de servicio de los clientes, \(X_1,\dots, X_n\). El administrador del sistema no está seguro de la distribución con la que se atienden a los clientes. Se consideran dos posibilidades:

La primera distribución, denotada \(f_1(x)\), es dada por:

\[ f_1(x) = \begin{cases} \dfrac{2(n!)}{(2+\sum_{i=1}^{n} X_i)^{n+1}} & X_i>0 \\ 0 & \text{en otro caso} \end{cases} \]

La segunda distribución es una distribución exponencial con parámetro \(1/2\), denotada \(f_0(x)\):

\[ f_0(x)=\begin{cases}\dfrac 1{2^n}e^{-\frac12\sum_{i=1}^{n} X_i} & X_i>0\\0 & \text{en otro caso}\end{cases} \]

Se quiere verificar cuál de las dos hipótesis es verdadera: \(H_0: f=f_0\) vs \(H_1:f=f_1\). Podemos visualizar estas distribuciones:

Código
n <- 1
x <- seq(0, 10, length.out = 1000)

f1 <- 2 / (2 + x)^2 # densidad bajo H_1 con n = 1

f0 <- 1 / 2 * exp(-1 / 2 * x) # exponencial(1/2) bajo H_0

df <- data.frame(
  x = c(x, x),
  f = c(f0, f1),
  dist = c(rep("f_0", 1000), rep("f_1", 1000))
)

ggplot(df, aes(x, f, color = dist)) +
  geom_line(linewidth = 2) +
  cowplot::theme_cowplot()

Código
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 1000)
f1 = 2 / (2 + x) ** 2 # densidad bajo H_1 con n = 1
f0 = 0.5 * np.exp(-0.5 * x) # exponencial(1/2) bajo H_0

fig, ax = plt.subplots()
ax.plot(x, f0, label=r"$f_0$")
ax.plot(x, f1, label=r"$f_1$")
ax.set_xlabel("x")
ax.set_ylabel("f")
ax.legend()
plt.show()

En el caso anterior, teníamos dos distribuciones, pero alternativamente, podemos definir el problema de prueba de hipótesis en términos de un parámetro desconocido \(\theta\). Supongamos que \(\theta\) puede tomar dos posibles valores, \(\theta_0\) y \(\theta_1\), que corresponden a las distribuciones \(f_0\) y \(f_1\) respectivamente. Entonces estamos probando \(H_0: \theta=\theta_0\) vs \(H_1:\theta=\theta_1\).

Al realizar la prueba de hipótesis, estamos interesados en dos tipos de errores:

  • El error de tipo I, denotado \(\alpha(\delta)\), es la probabilidad de rechazar la hipótesis nula cuando en realidad es cierta. Es decir, \(\alpha(\delta) = \mathbb P[\text{Rechazo }H_0|\theta=\theta_0 ]\).

  • El error de tipo II, denotado \(\beta(\delta)\), es la probabilidad de no rechazar la hipótesis nula cuando en realidad es falsa. Es decir, \(\beta(\delta) = \mathbb P[\text{No rechazo }H_0|\theta=\theta_1 ]\).

Siguiendo con el ejemplo anterior, supongamos que, después de un análisis preliminar, decidimos rechazar la hipótesis nula si \(X_1 > 4\) (cuando solo observamos un cliente, es decir, \(n=1\)). Entonces, las probabilidades de los errores de tipo I y II son:

\[\begin{align*} \alpha(\delta) &= \mathbb P[X_1>4|\theta=\theta_0] = 1-(1-e^{-0.5\cdot 4}) = 0.135 \\ \beta(\delta) &= \mathbb P[X_1<4|\theta=\theta_1] = \int_{0}^{4} \dfrac{2}{(2+x_1)^2} dx_1 = 0.667. \end{align*}\]

Tip

Para densidades no usuales, hay dos formas de calcular los valores

  • Teóricamente calculando la integral directamente con lapiz y papel o algún sistema de cálculo simbólico.

  • Si la integral es muy díficil y solo se necesita una aproximación númerica se puede usar integrate:

Código
densidad_f1 <- function(x) {
  2 / (x + 2)^2
}
integrate(densidad_f1, lower = 0, upper = 4) # beta = P[X_1 < 4 | theta_1]
0.6666667 with absolute error < 2.9e-12
Código
from scipy.integrate import quad

densidad_f1 = lambda x: 2 / (x + 2) ** 2 # densidad bajo H_1
val, _ = quad(densidad_f1, 0, 4) # beta = P[X_1 < 4 | theta_1]
print(f"integral = {val:.6f}")
integral = 0.666667

La integral de \(f_1\) debe ser estimada numéricamente ya que no hay una fórmula predefinida en R.

Nota

Nuestro objetivo es encontrar un procedimiento de prueba, \(\delta\), que minimice simultáneamente los errores de tipo I y II, \(\alpha(\delta)\) y \(\beta(\delta)\) respectivamente. En otras palabras, queremos minimizar la cantidad \(a\alpha(\delta) + b\beta(\delta)\), donde \(a\) y \(b\) son constantes positivas. Nótese la asimetría que aparecerá más adelante: fijamos primero un tope para \(\alpha\) (el error que consideramos más grave) y después minimizamos \(\beta\); los dos errores no se tratan de forma simétrica.

Teorema 11.1 Supongamos que existe un procedimiento de prueba, \(\delta^*\), que rechaza \(H_0:\theta=\theta_0\) si \(af_0(x) < bf_1(x)\), y no rechaza \(H_0\) si \(af_0(x) > bf_1(x)\).

Si \(af_0(x) = bf_1(x)\), puede rechazarse o no \(H_0\). Para cualquier otro procedimiento de prueba, \(\delta\), tenemos que

\[ a\alpha(\delta^{*}) + b\beta(\delta^{*}) \leq a\alpha(\delta) + b\beta(\delta). \]

Caso discreto solamente.

Sea \(S_1\) región crítica de \(\delta\) (procedimiento arbitrario).

\[\begin{align*} a\alpha(\delta) + b\beta(\delta) & = a\sum_{x\in S_1}f_0(x) + b\sum_{x\in S_1^c}f_1(x) \\ & = a\sum_{x\in S_1}f_0(x) + b\bigg[1-\sum_{x\in S_1}f_1(x)\bigg]\\ & = b + \sum_{x\in S_1}\big(af_0(x)-bf_1(x)\big) \end{align*}\]

y lo anterior es mínimo si \(af_0(x)-bf_1(x)<0\) en toda la muestra y no hay punto en donde \(af_0(x)-bf_1(x)>0\).

Definición 11.1 Definimos el Cociente de Verosimilitud como el cociente entre las densidades de las dos hipótesis:

\[ \dfrac{f_1(x)}{f_0(x)}. \]

Este cociente de verosimilitud está directamente relacionado con el procedimiento de prueba óptimo que hemos discutido anteriormente. Existe además un estadístico emparentado, el cociente de verosimilitud generalizado

\[ \Lambda(x) = \dfrac{\sup_{\Omega_0}f(x\mid\theta)}{\sup_{\Omega}f(x\mid\theta)}, \]

que retomaremos para hipótesis compuestas. Para el caso de dos hipótesis simples que nos ocupa aquí, basta con el cociente \(f_1(x)/f_0(x)\) de la definición anterior.

Corolario 11.1 Bajo las condiciones del teorema anterior, si \(a,b>0\) entonces la prueba \(\delta\) que minimiza \(a\alpha(\delta) + b\beta(\delta)\) rechaza \(H_0\) si el cociente de verosimilitud es mayor a \(\dfrac ab\).

Volviendo al ejemplo del servicio al cliente, en lugar de rechazar \(H_0: \theta = \theta_0\) si \(X_1>4\), queremos encontrar \(a\) y \(b\) que balanceen ambos tipos de errores.

Supongamos que tomamos \(a=b\), entonces, basado en el corolario anterior, rechazamos \(H_0\) si

\[ \dfrac{f_1(x)}{f_0(x)}>1\Leftrightarrow \dfrac 4{(2+X_1)^2}\exp\left(\dfrac{X_1}2\right)>1 \tag{11.1}\]

Podemos ilustrar este concepto con un gráfico:

Warning in geom_segment(aes(x = 0, xend = 5.03, y = 1, yend = 1), linetype = 2): All aesthetics have length 1, but the data has 601 rows.
ℹ Please consider using `annotate()` or provide this layer with data containing
  a single row.
Warning in geom_segment(aes(x = 5.03, xend = 5.03, y = 0, yend = 1), linetype = 2): All aesthetics have length 1, but the data has 601 rows.
ℹ Please consider using `annotate()` or provide this layer with data containing
  a single row.
Warning in geom_segment(aes(x = 2, xend = 2, y = 0, yend = 0.6795705), linetype = 2): All aesthetics have length 1, but the data has 601 rows.
ℹ Please consider using `annotate()` or provide this layer with data containing
  a single row.
Warning in geom_point(aes(x = 5.03, y = 1), size = 2): All aesthetics have length 1, but the data has 601 rows.
ℹ Please consider using `annotate()` or provide this layer with data containing
  a single row.

[<matplotlib.lines.Line2D object at 0x142ec6600>]
<matplotlib.lines.Line2D object at 0x1406f0470>
<matplotlib.lines.Line2D object at 0x142e704d0>
[<matplotlib.lines.Line2D object at 0x142eb25a0>]
[<matplotlib.lines.Line2D object at 0x142ef4920>]
<matplotlib.collections.PathCollection object at 0x1407da930>
Text(0.5, 0, 'x')
Text(0, 0.5, '$g(X_1)$')

De acuerdo con el gráfico, la desigualdad es cierta si \(X_1>c\). Podemos calcular numéricamente que \(c\approx5.03\).

Por lo tanto, rechazamos \(H_0\) si \(X_1>5.03\). Finalmente los errores de tipo I y II son:

\(\alpha(\delta^{*})\)

Código
1 - pexp(q = 5.03, rate = 1 / 2) # alpha = P[X_1 > 5.03 | theta_0]
[1] 0.08086291
Código
from scipy.stats import expon

# scale = 1/rate = 2  ->  alpha = P[X_1 > 5.03 | theta_0]
print(f"alpha = {expon.sf(5.03, scale=2):.6f}")
alpha = 0.080863

y \(\beta(\delta^*)\)

Código
densidad_f1 <- function(x) {
  2 / (x + 2)^2
}

integrate(densidad_f1, lower = 0, upper = 5.03) # beta = P[X_1 < 5.03 | theta_1]
0.715505 with absolute error < 1.3e-10
Código
from scipy.integrate import quad

densidad_f1 = lambda x: 2 / (x + 2) ** 2 # densidad bajo H_1
val, _ = quad(densidad_f1, 0, 5.03) # beta = P[X_1 < 5.03 | theta_1]
print(f"beta = {val:.6f}")
beta = 0.715505
TipIdeas clave
  • \(\alpha\) y \(\beta\) se mueven en direcciones opuestas: bajar una sube la otra.
  • Minimizar \(a\alpha+b\beta\) siempre conduce a una regla basada en el cociente \(f_1/f_0\).
  • El umbral del cociente, \(a/b\), codifica cuánto pesa cada tipo de error.

11.2 Criterio de Neyman-Pearson

Retomemos de nuevo las definiciones de los errores de tipo I y II:

Definición 11.2  

  1. Definimos \(\alpha(\delta)\) como la probabilidad de un error de Tipo I (falso positivo), es decir, rechazar la hipótesis nula \(H_0\) cuando es verdadera. Deseamos que \(\alpha(\delta)\) sea menor o igual a un nivel de significancia \(\alpha_0\) preestablecido.

  2. \(\beta(\delta)\) es la probabilidad de un error de Tipo II (falso negativo), es decir, no rechazar la hipótesis nula \(H_0\) cuando es falsa. Queremos minimizar \(\beta(\delta)\).

Lema 11.1 Supongamos que tenemos un procedimiento de prueba, \(\delta'\), que no rechaza \(H_0\) si \(f_1(x)<kf_0(x)\) y rechaza \(H_0\) si \(f_1(x)>kf_0(x)\). En el caso de que \(f_1(x)=kf_0(x)\), podemos decidir rechazar o no \(H_0\).

Si tenemos otro procedimiento de prueba, \(\delta\), que tiene un error de Tipo I no mayor que \(\delta'\) (\(\alpha(\delta)\leq \alpha(\delta')\)), entonces el error de Tipo II de \(\delta\) será mayor o igual que el error de Tipo II de \(\delta'\) (\(\beta(\delta)\geq \beta(\delta')\)).

Tome \(a=k\) y \(b=1\) en el corolario y teoremas anteriores. Como \[ k\alpha(\delta')+\beta(\delta')\leq k\alpha(\delta)+\beta(\delta), \] entonces \(\alpha(\delta)\leq \alpha(\delta')\) implica que \(\beta(\delta)\geq \beta(\delta')\).

Observación. La consecuencia directa de este lema es que, si queremos encontrar una prueba que cumpla el criterio de Neyman-Pearson, necesitamos encontrar un valor de \(k\) que haga que \(\alpha(\delta') = \alpha_0\), y se rechace \(H_0\) si \(f_1(x)>kf_0(x) \Leftrightarrow\dfrac{f_0(x)}{f_1(x)}<k^{-1}\).

Tip

Lo que dice el Lema de Neyman-Pearson es que \(\frac{f_{1}(x)}{f_0(x)}\) sería la mejor prueba que se puede encontrar para hipótesis simples.

Ejemplo 11.2 Consideremos el ejemplo donde tenemos una muestra \(X_1,\dots,X_n\) de una distribución normal con media desconocida \(\theta\) y varianza conocida 1. Queremos probar la hipótesis nula \(H_0: \theta = 0\) contra la hipótesis alternativa \(H_1: \theta = 1\) con un nivel de significancia de \(\alpha = 0.05\).

Las funciones de densidad bajo las hipótesis \(H_0\) y \(H_1\) son, respectivamente: \[\begin{align*} f_0(x) &= (2\pi)^{-n/2}\exp\left[-\dfrac 12 \sum_{i=1}^{n} X_i^2\right]\\ f_1(x) &= (2\pi)^{-n/2}\exp\left[-\dfrac 12 \sum_{i=1}^{n} (X_i-1)^2\right]. \end{align*}\].

Entonces, el cociente de verosimilitud es

\[\begin{align*} \dfrac{f_1(x)}{f_0(x)} &= \exp\bigg[-\dfrac 12 \sum_{i=1}^{n} (X_i^2-2X_i+1-X_i^2)\bigg]\\ &= \exp\bigg[n\bar{X}_n - \dfrac n2\bigg] \\ &= \exp\bigg[n\left(\bar{X}_n - \dfrac 12\right)\bigg] \end{align*}\]

Rechazamos \(H_0\) si este cociente es mayor que \(k\), es decir, si

\[ \bar{X}_n > \dfrac 12 + \dfrac{\ln k}{n}. \]

Buscamos el valor que haga que \(\mathbb P\left[\bar{X}_n>k'|\theta = 0\right]=0.05\), donde \(k'=\dfrac 12 + \dfrac{\ln k}{n}\).

Entonces buscamos \(k'\) tal que

\[\begin{align*} & \mathbb P[\bar{X}_n>k'|\theta = 0]=0.05\\ & \mathbb P\bigg[\dfrac{\bar{X}_n}{1/\sqrt n}>\dfrac{k'}{1/\sqrt n}\bigg|\theta = 0\bigg]=0.05 \end{align*}\]

Resolviendo para \(k'\), obtenemos

\[ k'=\dfrac{z_{0.95}}{\sqrt n}. \]

Por lo tanto, entre todas las pruebas donde \(\alpha(\delta)\leq 0.05\), la que tiene el error de Tipo II más pequeño es la que rechaza \(H_0\) si

\[ \bar{X}_n > \dfrac{1.645}{\sqrt n}. \]

El error de Tipo II para esta prueba sería

\[ \beta(\delta') = \mathbb P[\bar{X}_n<1.645\ n^{-1/2}|\theta = 1] = \Phi(1.645-n^{1/2}). \]

Por ejemplo, si \(n=9\), entonces \(\beta(\delta') = \Phi(1.645-3) =0.0877.\)

Ejemplo 11.3 Supongamos que tenemos una muestra \(X_1,\dots,X_n\) de una distribución Bernoulli con probabilidad desconocida \(p\). Tomemos \(n=10\) para concretar los cálculos numéricos. Queremos probar la hipótesis nula \(H_0: p = 0.2\) contra la hipótesis alternativa \(H_1: p = 0.4\) con un nivel de significancia de \(\alpha = 0.05\).

Vamos a usar \(y\) para representar la suma de la muestra: \(y = \sum_{i=1}^{n} X_i\).

Las funciones de masa de probabilidad bajo las hipótesis \(H_0\) y \(H_1\) son:

  • Bajo \(H_0\): \(f_0(x) = 0.2^y0.8^{n-y}\).
  • Bajo \(H_1\): \(f_1(x) = 0.4^y0.6^{n-y}\).

El cociente de verosimilitud es

\[ \dfrac{f_1(x)}{f_0(x)}=\left(\dfrac 34\right)^n\left(\dfrac 83\right)^y. \]

Según el criterio de Neyman-Pearson, rechazamos \(H_0\) si este cociente es mayor que un cierto valor \(k\). Esto es equivalente a

\[ -n\ln \left(\dfrac 43 \right) + y \ln \left(\dfrac 83 \right)>\ln k, \]

o, resolviendo para \(y\),

\[ y>\dfrac{\ln k + n\ln(4/3)}{\ln (8/3)} = k'. \]

Para encontrar \(k'\), queremos que la probabilidad de obtener un valor de \(Y\) mayor que \(k'\), bajo \(H_0\), sea \(0.05\):

\[ \mathbb P(Y>k'|p = 0.2) = 0.05. \]

Pero debido a que \(Y\) sigue una distribución binomial (es discreta), no es posible encontrar un valor exacto para \(k'\). Sin embargo, podemos observar que

\[ \mathbb P(Y>4|p=0.2) = 0.0328 \]

\[ \mathbb P(Y>3|p=0.2) = 0.1209. \]

Por lo tanto, como no podemos alcanzar exactamente \(0.05\) con una variable discreta, elegimos \(Y>4\) como región de rechazo: la prueba resultante tiene nivel \(\alpha(\delta) = 0.0328\), el mayor nivel posible que no supera \(0.05\). Estos valores se verifican directamente con la distribución binomial:

Código
n <- 10
p <- 0.2
(p_4 <- 1 - pbinom(4, n, p)) # P[Y > 4 | p = 0.2]
[1] 0.0327935
Código
(p_3 <- 1 - pbinom(3, n, p)) # P[Y > 3 | p = 0.2]
[1] 0.1208739
Código
from scipy.stats import binom

n, p = 10, 0.2
print(f"P(Y>4) = {binom.sf(4, n, p):.4f}") # P[Y > 4 | p = 0.2]
P(Y>4) = 0.0328
Código
print(f"P(Y>3) = {binom.sf(3, n, p):.4f}") # P[Y > 3 | p = 0.2]
P(Y>3) = 0.1209
TipIdeas clave
  • El cociente de verosimilitud reduce la decisión a comparar un único estadístico con un umbral \(k\).
  • En modelos discretos (como la binomial) el nivel \(\alpha_0\) exacto puede no ser alcanzable; se toma el nivel más alto que no lo supere.
  • La potencia \(1-\beta\) crece con \(n\) y con la separación entre las dos hipótesis.

11.3 Resumen

Tabla 11.1: Resultados principales del capítulo
Concepto Resultado clave
Error tipo I \(\alpha(\delta)=\mathbb P[\text{rechazar }H_0\mid\theta_0]\)
Error tipo II \(\beta(\delta)=\mathbb P[\text{no rechazar }H_0\mid\theta_1]\)
Regla óptima (pérdida \(a\alpha+b\beta\)) rechazar \(H_0\) si \(\dfrac{f_1(x)}{f_0(x)}>\dfrac ab\)
Neyman-Pearson entre las pruebas con \(\alpha(\delta)\le\alpha_0\), la de mínimo \(\beta\) rechaza si \(\dfrac{f_1(x)}{f_0(x)}>k\)
Potencia \(1-\beta\); crece con \(n\) y con la separación entre \(\theta_0\) y \(\theta_1\)