Apéndice C — Apéndice. Distribuciones estadísticas y valores críticos

C.1 Introducción

En los temas anteriores hemos utilizado diferentes distribuciones estadísticas para realizar contrastes de hipótesis y construir intervalos de confianza. Entre las más importantes se encuentran la distribución normal, la distribución t de Student, la distribución F de Snedecor y la distribución chi-cuadrado.

Estas distribuciones permiten determinar qué valores del estadístico de contraste son suficientemente extremos como para rechazar una hipótesis nula.

La idea fundamental puede resumirse de la siguiente manera: Un contraste de hipótesis compara el valor observado de un estadístico con uno o varios valores críticos determinados a partir de una distribución de probabilidad.

C.2 Funciones de las distribuciones en R

Antes de estudiar cada distribución conviene distinguir cuatro tipos de funciones.

En R se utilizan habitualmente las letras:

  • d para la función de densidad.
  • p para la función de distribución acumulada.
  • q para obtener cuantiles o valores críticos.
  • r para generar observaciones aleatorias.

Por ejemplo, para la distribución normal:

Código
dnorm()
pnorm()
qnorm()
rnorm()

La función que nos interesa especialmente para obtener valores críticos es la función q, ya que permite obtener el cuantil correspondiente a una determinada probabilidad acumulada.

Por ejemplo:

Código
qnorm(0.975)
[1] 1.959964

Por tanto, el valor crítico positivo de una normal estándar para un contraste bilateral con \(\alpha=0,05\) es aproximadamente: \(z_{0,975}=1,96.\)

C.3 Distribución normal

La distribución normal es una de las distribuciones más importantes de la estadística. Se caracteriza por ser simétrica respecto a su media y quedar completamente determinada por dos parámetros:

\[ X\sim N(\mu,\sigma^2). \]

Cuando la media es cero y la varianza es uno tenemos la normal estándar:

\[ Z\sim N(0,1). \]

La distribución normal estándar es especialmente importante porque muchos estadísticos de contraste siguen, bajo determinadas hipótesis, una distribución normal o convergen asintóticamente a ella.

C.3.1 Valores críticos de la normal

Supongamos un contraste bilateral con \(\alpha=0,05.\) Como el contraste es bilateral, dividimos el nivel de significación entre las dos colas: \(\frac{\alpha}{2}=0,025.\)

Por tanto, buscamos el valor que deja una probabilidad acumulada de \(1-\frac{\alpha}{2}=0,975.\)

En R:

Código
qnorm(0.975)
[1] 1.959964

Por tanto: \(z_{0,975}\simeq 1,96.\)

La región crítica es:

\[ Z<-1,96 \qquad\text{o}\qquad Z>1,96. \] ### Visualización

El siguiente gráfico permite modificar el nivel de significación y observar cómo cambia la región crítica.

Código
library(plotly)

alpha_values <- c(0.10, 0.05, 0.01)

x <- seq(-4, 4, length.out = 1000)
densidad <- dnorm(x)

fig <- plot_ly(
  x = x,
  y = densidad,
  type = "scatter",
  mode = "lines",
  name = "Densidad normal"
)

for (a in alpha_values) {

  critico <- qnorm(1 - a/2)

  x_izq <- x[x <= -critico]
  y_izq <- dnorm(x_izq)

  x_der <- x[x >= critico]
  y_der <- dnorm(x_der)

  fig <- fig %>%
    add_trace(
      x = x_izq,
      y = y_izq,
      type = "scatter",
      mode = "lines",
      fill = "tozeroy",
      name = paste0("Región crítica α = ", a),
      visible = ifelse(a == 0.05, TRUE, FALSE)
    ) %>%
    add_trace(
      x = x_der,
      y = y_der,
      type = "scatter",
      mode = "lines",
      fill = "tozeroy",
      name = paste0("Región crítica α = ", a),
      visible = ifelse(a == 0.05, TRUE, FALSE)
    )
}

fig
Figura C.1: Distribución normal estándar y regiones críticas
Código
x <- seq(-4, 4, length.out = 1000)
datos_normal <- data.frame(x = x, densidad = dnorm(x))
critico <- qnorm(1 - 0.05 / 2)

ggplot(datos_normal, aes(x = x, y = densidad)) +
  geom_line() +
  geom_area(
    data = subset(datos_normal, x <= -critico),
    fill = "steelblue", alpha = 0.5
  ) +
  geom_area(
    data = subset(datos_normal, x >= critico),
    fill = "steelblue", alpha = 0.5
  ) +
  labs(
    title = "Distribución normal estándar y región crítica (α = 0,05)",
    x = "z", y = "Densidad"
  ) +
  theme_minimal()

El resultado permite observar visualmente una idea fundamental: Cuanto menor es el nivel de significación \(\alpha\), más alejados de cero se encuentran los valores críticos. Por ejemplo:

\(\alpha\) Valor crítico bilateral
0,10 1,645
0,05 1,960
0,01 2,576

Estos valores pueden obtenerse directamente en R:

Código
qnorm(1 - 0.10/2)
[1] 1.644854
Código
qnorm(1 - 0.05/2)
[1] 1.959964
Código
qnorm(1 - 0.01/2)
[1] 2.575829

C.4 Distribución t de Student

La distribución t de Student aparece especialmente cuando se trabaja con muestras pequeñas y la varianza poblacional es desconocida. Su forma depende de los grados de libertad, que denotaremos por \(\nu\). Podemos escribir:

\[ T\sim t_{\nu}. \]

La distribución t es simétrica alrededor de cero, pero presenta colas más pesadas que la distribución normal. A medida que aumentan los grados de libertad, la distribución t se aproxima a la distribución normal estándar.

C.4.1 Valores críticos

Supongamos que disponemos de \(n=20\) observaciones y necesitamos realizar un contraste sobre la media. Los grados de libertad serán: \(\nu=n-1=19.\) Para un contraste bilateral con \(\alpha=0,05\): \(t_{0,975;19}.\)

En R:

Código
qt(0.975, df = 19)
[1] 2.093024

Por tanto, la región crítica será:

\[ T<-2,093 \qquad\text{o}\qquad T>2,093. \] ### Visualización

Podemos visualizar cómo cambia la distribución t cuando aumentan los grados de libertad.

Código
alpha <- 0.05
df <- 19

critico <- qt(1 - alpha/2, df = df)

x <- seq(-4, 4, length.out = 1000)
y <- dt(x, df = df)

fig <- plot_ly(
  x = x,
  y = y,
  type = "scatter",
  mode = "lines",
  name = "t de Student"
)

x_izq <- x[x <= -critico]
x_der <- x[x >= critico]

fig %>%
  add_trace(
    x = x_izq,
    y = dt(x_izq, df),
    fill = "tozeroy",
    mode = "lines",
    name = "Región crítica"
  ) %>%
  add_trace(
    x = x_der,
    y = dt(x_der, df),
    fill = "tozeroy",
    mode = "lines",
    name = "Región crítica"
  )
Figura C.2: Región crítica bilateral de la distribución t
Código
alpha <- 0.05
df <- 19
critico <- qt(1 - alpha / 2, df = df)

x <- seq(-4, 4, length.out = 1000)
datos_t2 <- data.frame(x = x, densidad = dt(x, df = df))

ggplot(datos_t2, aes(x = x, y = densidad)) +
  geom_line() +
  geom_area(
    data = subset(datos_t2, x <= -critico),
    fill = "steelblue", alpha = 0.5
  ) +
  geom_area(
    data = subset(datos_t2, x >= critico),
    fill = "steelblue", alpha = 0.5
  ) +
  labs(
    title = "Región crítica bilateral de la distribución t (gl = 19)",
    x = "t", y = "Densidad"
  ) +
  theme_minimal()

C.5 Distribución F de Snedecor

La distribución F de Snedecor aparece fundamentalmente en contrastes relacionados con varianzas y, de manera especialmente importante en econometría, en los contrastes conjuntos de significación.

La distribución F depende de dos parámetros: \(F\sim F_{\nu_1,\nu_2},\) donde:

  • \(\nu_1\) son los grados de libertad del numerador;
  • \(\nu_2\) son los grados de libertad del denominador.

A diferencia de las distribuciones normal y t, la distribución F solamente toma valores positivos: \(F>0.\) Además, no es simétrica.

C.5.1 Valores críticos

Supongamos que tenemos: \(\nu_1=3\) y \(\nu_2=20.\) Para un contraste con: \(\alpha=0,05,\) el valor crítico se obtiene mediante:

Código
qf(0.95, df1 = 3, df2 = 20)
[1] 3.098391

C.5.2 Visualización

Código
alpha <- 0.05
df1 <- 3
df2 <- 20

critico <- qf(1 - alpha, df1 = df1, df2 = df2)

x <- seq(0, 8, length.out = 1000)
y <- df(x, df1 = df1, df2 = df2)

fig <- plot_ly(
  x = x,
  y = y,
  type = "scatter",
  mode = "lines",
  name = "F de Snedecor"
)

x_crit <- x[x >= critico]

fig %>%
  add_trace(
    x = x_crit,
    y = df(x_crit, df1, df2),
    type = "scatter",
    mode = "lines",
    fill = "tozeroy",
    name = "Región crítica"
  )
Figura C.3: Distribución F y región crítica
Código
alpha <- 0.05
df1 <- 3
df2 <- 20
critico <- qf(1 - alpha, df1 = df1, df2 = df2)

x <- seq(0, 8, length.out = 1000)
datos_f <- data.frame(x = x, densidad = df(x, df1 = df1, df2 = df2))

ggplot(datos_f, aes(x = x, y = densidad)) +
  geom_line() +
  geom_area(
    data = subset(datos_f, x >= critico),
    fill = "steelblue", alpha = 0.5
  ) +
  labs(
    title = "Distribución F y región crítica (df1 = 3, df2 = 20)",
    x = "F", y = "Densidad"
  ) +
  theme_minimal()

En los contrastes F habituales la región crítica se encuentra en la cola derecha.

C.6 Distribución chi-cuadrado

La distribución chi-cuadrado aparece en numerosos procedimientos de inferencia estadística. Entre otros usos, se emplea en:

  • contrastes sobre varianzas;
  • contrastes de independencia;
  • contrastes de bondad de ajuste;
  • algunos procedimientos relacionados con modelos de regresión.

La distribución depende de un único parámetro:

\[ \chi^2_{\nu}, \]

donde \(\nu\) representa los grados de libertad.

Al igual que la distribución F, solamente puede tomar valores positivos:

\[ \chi^2>0. \]

La distribución es asimétrica para pocos grados de libertad, aunque se aproxima progresivamente a una distribución más simétrica cuando estos aumentan.

C.6.1 Valores críticos

Supongamos que tenemos: \(\nu=10\) grados de libertad y un nivel de significación: \(\alpha=0,05.\)

El valor crítico se obtiene mediante:

Código
qchisq(0.95, df = 10)
[1] 18.30704

Por tanto, para un contraste de cola derecha, la región crítica será:

\[ \chi^2>18,307. \]

C.6.2 Visualización

Código
alpha <- 0.05
df <- 10

critico <- qchisq(1 - alpha, df = df)

x <- seq(0, 35, length.out = 1000)
y <- dchisq(x, df = df)

fig <- plot_ly(
  x = x,
  y = y,
  type = "scatter",
  mode = "lines",
  name = "Chi-cuadrado"
)

x_crit <- x[x >= critico]

fig %>%
  add_trace(
    x = x_crit,
    y = dchisq(x_crit, df),
    type = "scatter",
    mode = "lines",
    fill = "tozeroy",
    name = "Región crítica"
  )
Figura C.4: Distribución chi-cuadrado y región crítica
Código
alpha <- 0.05
df <- 10
critico <- qchisq(1 - alpha, df = df)

x <- seq(0, 35, length.out = 1000)
datos_chi <- data.frame(x = x, densidad = dchisq(x, df = df))

ggplot(datos_chi, aes(x = x, y = densidad)) +
  geom_line() +
  geom_area(
    data = subset(datos_chi, x >= critico),
    fill = "steelblue", alpha = 0.5
  ) +
  labs(
    title = "Distribución chi-cuadrado y región crítica (df = 10)",
    x = expression(chi^2), y = "Densidad"
  ) +
  theme_minimal()

C.7 Uso de las tablas estadísticas

Antes de la generalización de los programas estadísticos, los valores críticos se obtenían habitualmente mediante tablas estadísticas.

Estas tablas no contienen todos los posibles valores de las distribuciones, sino únicamente una selección de cuantiles.

Por ejemplo, una tabla de la distribución normal estándar puede contener:

\(\alpha/2\) \(1-\alpha/2\) Valor crítico
0,10 0,90 1,282
0,05 0,95 1,645
0,025 0,975 1,960
0,01 0,99 2,326
0,005 0,995 2,576

Es importante prestar atención a la forma en que está construida cada tabla. Algunas tablas proporcionan directamente:

\[ P(Z\leq z), \]

mientras que otras proporcionan la probabilidad acumulada desde cero hasta \(z\) o la probabilidad correspondiente a una cola.

Por este motivo, antes de utilizar una tabla es necesario conocer qué representa exactamente cada una de sus columnas o filas.

La utilización de R evita algunas de las limitaciones de las tablas estadísticas.

Por ejemplo, si queremos calcular el valor crítico de una normal estándar para:

\[ \alpha=0,05, \]

podemos utilizar:

Código
qnorm(1 - 0.05/2)
[1] 1.959964

En cambio, si queremos utilizar una tabla, normalmente tendremos que localizar el valor correspondiente a:

\[ 0,975. \]

En R podemos obtener directamente el resultado con toda la precisión numérica disponible.

Las principales funciones que utilizaremos son:

Distribución Función de cuantiles
Normal qnorm()
t de Student qt()
F de Snedecor qf()
Chi-cuadrado qchisq()

Por tanto, podemos resumir:

Código
# Normal
qnorm(0.975)
[1] 1.959964
Código
# t de Student
qt(0.975, df = 19)
[1] 2.093024
Código
# F de Snedecor
qf(0.95, df1 = 3, df2 = 20)
[1] 3.098391
Código
# Chi-cuadrado
qchisq(0.95, df = 10)
[1] 18.30704

C.8 Ejemplos

Supongamos que queremos obtener los valores críticos correspondientes a un nivel de significación del 5 %.

Código
alpha <- 0.05

# Normal estándar
z <- qnorm(1 - alpha/2)

# t de Student con 19 grados de libertad
t <- qt(1 - alpha/2, df = 19)

# F de Snedecor con 3 y 20 grados de libertad
F <- qf(1 - alpha, df1 = 3, df2 = 20)

# Chi-cuadrado con 10 grados de libertad
chi2 <- qchisq(1 - alpha, df = 10)

c(
  Normal = z,
  t_Student = t,
  F_Snedecor = F,
  Chi_cuadrado = chi2
)
      Normal    t_Student   F_Snedecor Chi_cuadrado 
    1.959964     2.093024     3.098391    18.307038 

Los resultados serán aproximadamente:

Distribución Parámetros Valor crítico
Normal \(\alpha=0,05\) bilateral 1,960
t de Student \(df=19\) 2,093
F de Snedecor \(df_1=3\), \(df_2=20\) 3,099
Chi-cuadrado \(df=10\) 18,307

Debe tenerse en cuenta que estos valores no son directamente comparables entre sí, ya que cada distribución aparece asociada a estadísticos diferentes y a regiones críticas distintas.

C.9 Relación entre valor crítico y p-valor

Los valores críticos y los p-valores representan dos formas alternativas de tomar una decisión en un contraste de hipótesis.

El enfoque basado en el valor crítico consiste en comparar:

\[ \text{estadístico observado} \quad\text{frente a}\quad \text{valor crítico}. \]

El enfoque basado en el p-valor consiste en comparar:

\[ p\text{-valor} \quad\text{frente a}\quad \alpha. \]

Las dos reglas son equivalentes.

Por ejemplo, en un contraste bilateral:

\[ |z|>z_{1-\alpha/2} \]

implica rechazar \(H_0\).

Equivalentemente:

\[ p\text{-valor}<\alpha. \]

Esta equivalencia es especialmente importante en la práctica porque los programas estadísticos suelen proporcionar directamente los p-valores, mientras que en los desarrollos teóricos y en las tablas estadísticas es frecuente trabajar con valores críticos.

C.10 Contenido interactivo