Bloque 4. Inferencia

Formación PDI - Universidad de Málaga

Antonio Elías

Agenda

  • Inferencia para una muestra (media, varianza, proporciones)

  • Inferencia para dos muestras (diferencia de medias, diferencia de proporciones y ratio de varianzas)

  • Otros test de hipótesis.

    • ANOVA

    • Chi-Cuadrado

    • Kolgomorov-Smirnov

  • Otros: Máxima Verosimilitud y Bootstrap.

Resultados una muestra bajo Normalidad

Sea \(X_1, \dots, X_n\) una secuencia de variables aleatorias independientes e identicamente distribuidas como una \(N(\mu, \sigma^2)\). Definimos como \(\bar{X} = 1/n\sum_{i=1}^nX_i\) y \(S^2 = 1/(n-1)\sum_{i=1}^n(X_i - \bar{X})^2\) la media y la cuasivarianza muestral.

Entonces,

  1. \(\bar{X}\) y \(S^2\) son dos variables aleatorias independientes.

  2. \(\sqrt{n}(\bar{X}-\mu)/\sigma\) se distribuye \(N(0, 1)\).

  3. \((n-1)S^2/\sigma^2\) se distribuye como una \(\mathcal{X}^2\) con \(n-1\) grados de libertad.

  4. \(\sqrt{n}(\bar{X}-\mu)/S\) se distribuye como una t-student con \(n-1\) grados de libertad.

Simulación punto 2

# Parámetros poblacionales
mu <- 10
sigma <- 3
n <- 20
Nsim <- 1000

# Simulación
Z_values <- replicate(Nsim, {
  x <- rnorm(n, mean = mu, sd = sigma)
  sqrt(n) * (mean(x) - mu) / sigma
})
# Distribución Normal(0,1)
par(mfrow = c(1,2))
hist(Z_values, breaks=40, freq=FALSE, col="skyblue",
     main="Simulación punto 2",
     xlab="Valor")
curve(dnorm(x, 0, 1), add=TRUE, lwd=2, col="red")

# QQ-plot
qqnorm(Z_values)
abline(0, 1, col = "red", lwd = 2)

Simulación punto 3

# Parámetros poblacionales
mu <- 10
sigma <- 3
n <- 20
Nsim <- 1000

# Simulación
Chi_values <- replicate(Nsim, {
  x <- rnorm(n, mean = mu, sd = sigma)
  (n - 1) * var(x) / sigma^2
})
# Distribución Chi-cuadrado
par(mfrow = c(1,2))
hist(Chi_values, breaks=40, freq=FALSE, col="lightgreen",
     main="Simulación punto 3",
     xlab="Valor")
curve(dchisq(x, df=n-1), add=TRUE, lwd=2, col="red")

# QQ-plot
qqplot(qchisq(ppoints(Nsim), df = n-1), Chi_values,
       main = expression("QQ-plot para " * chi^2),
       xlab = "Cuantiles teóricos Chi-cuadrado",
       ylab = "Cuantiles simulados",
       pch = 19, col = "blue")
abline(0, 1, col = "red", lwd = 2)

Ley de Grandes Números

Sea \(X_1, \dots, X_n\) una secuencia de variables aleatorias independientes e identicamente distribuidas tal que \(\mathbb{E}[X] = \mu\) y \(\mathbb{E}[X^2] < \infty\). Entonces, cuando \(n \rightarrow \infty\)

\[\frac{1}{n} \sum_{i=1}^n X_i \rightarrow \mu.\] Esta convergencia se da en el sentido fuerte (\(\bar{X} \xrightarrow{c.s.} \mu\)) y en el sentido débil (\(\bar{X} \xrightarrow{p} \mu\)).

Ley de Grandes Números

seq_N <- 2:500 #maximum sample size

R <- 100
epsilon <- 0.01

mean_sample_mean <- sapply(seq_N, function(x) mean(replicate(R, mean(rnorm( n = x)))))

plot(seq_N, mean_sample_mean, type = "l", main = "LGN")
abline(h = c(-0.01, 0.01))

Teorema Central del Límite

Sea \(X_1, \dots, X_n\) una secuencia de variables aleatorias independientes e identicamente distribuidas tal que \(\mathbb{E}[X] = \mu\) y \(\mathbb{V}[X] = \sigma^2\). Entonces,

\[\frac{\bar{X_n} - \mu}{\sigma/\sqrt(n)} \xrightarrow{d} N(0,1).\]

Es decir, la media estandarizada converge en distribución a una distribución normal estándar.

Teorema Central del Límite

N <- 1000 
n1 <- 5

medias_n1 <- replicate(N, mean(rpois(n1, lambda = 1)))

hist(medias_n1,
     breaks = 40, freq = FALSE, col = "lightblue",
     main = paste("TCL con n =", n1),
     xlab = "Media muestral")
curve(dnorm(x, mean=1, sd=1/sqrt(n1)), add = TRUE, lwd = 2, col="red")

N <- 1000 
n2 <- 50

medias_n2 <- replicate(N, mean(rpois(n2, lambda = 1)))

hist(medias_n2,
     breaks = 40, freq = FALSE, col = "lightgreen",
     main = paste("TCL con n =", n2),
     xlab = "Media muestral")
curve(dnorm(x, mean=1, sd=1/sqrt(n2)), add = TRUE, lwd = 2, col="red")

Inferencia para la media

Intervalo para la media muestral bajo normalidad (\(\sigma\) conocida)

Sabemos \(\bar{X} \sim N(\mu, \sigma^2/n)\) cuando la variable aleatoria \(X\) se distribuyen como una normal y son iid.

Por lo tanto,

\[\frac{\sqrt{n}(\bar{X} - \mu)}{\sigma} \sim N(0,1)\]

Esta función es un estadístico pivote

\[\mathbb{P}(-Z_{\alpha/2} < \frac{\sqrt{n}(\bar{X} - \mu)}{\sigma} < Z_{\alpha/2}) \approx 1- \alpha.\]

\[ \bar{X} \pm Z_{1 - \alpha/2} \cdot \frac{\sigma}{\sqrt{n}} \]

# Parámetros poblacionales
n <- 30; sigma <- 10; alpha <- 0.05

# Generamos la muestra
x <- rnorm(n, mean = 52, sd = sigma)

# IC
mean(x) - qnorm(alpha/2, lower.tail = FALSE)*sigma/sqrt(n)
[1] 47.54094
mean(x) + qnorm(alpha/2, lower.tail = FALSE)*sigma/sqrt(n)
[1] 54.69772

Visualización del intervalo

Test de Hipótesis para la media bajo normalidad (\(\sigma\) conocida)

Test bilateral:

\[H_0: \mu = \mu_0\] \[H_1: \mu \ne \mu_0\]

Estadístico: \[Z = \frac{\bar{x} - \mu_0}{\sigma / \sqrt{n}}\]

# Parámetros poblacionales
n <- 30; sigma <- 10; mu0 <- 50; alpha <- 0.05

# Generamos la muestra
x <- rnorm(n, mean = 52, sd = sigma)

# Calculamos el estadístico del contraste
z <- abs(mean(x) - mu0) / (sigma / sqrt(n))

#Rechazo si
z > qnorm(0.05/2, lower.tail = FALSE) 
[1] FALSE
# Obtenemos el pvalor
2 * (1 - pnorm(z))  # valor p
[1] 0.06005003

Ejercicio de simulación

Compruebe por simulación que el Intervalo de Confianza al \(95 \%\) continene efectivamente el parámetro poblacional \(\mu\) en esa proporción.

Cobertura empírica: 0.955 

Intervalo para la media muestral bajo normalidad (\(\sigma\) desconocida)

  • \(X_1, \dots, X_n \sim \mathcal{N}(\mu, \sigma^2)\), \(\sigma\) desconocida.

\[ \bar{x} \pm t_{n-1, 1 - \alpha/2} \cdot \frac{s}{\sqrt{n}} \]

Test de hipótesis para la media muestral bajo normalidad (\(\sigma\) desconocida)

Test:

\[H_0: \mu = \mu_0\] \[H_1: \mu \neq \mu_0\]

Estadístico:

\[T = \frac{\bar{X} - \mu_0}{S / \sqrt{n}}, \qquad T \sim t_{n-1}\]

t.test(x)

    One Sample t-test

data:  x
t = 25.962, df = 29, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
 49.22386 57.64248
sample estimates:
mean of x 
 53.43317 

Inferencia para la proporcion

Intervalo de confianza para la proporción

  • \(X \sim \text{Binomial}(n, p)\), estimador \(\hat{p} = X/n\).

\[ \hat{p} \pm z_{1 - \alpha/2} \cdot \sqrt{ \frac{\hat{p}(1 - \hat{p})}{n} } \]

Test de hipótesis para la proporción

\(X \sim \text{Binomial}(n, p)\), estimador \(\hat{p} = X/n\).

Test de hipótesis:

\[H_0: p = p_0\] \[H_1: p \ne p_0\]

Opción 1 (t.test):

x <- rbinom(1000, size = 1, prob = 0.8)
mean(x) + c(-1,1) * qnorm(0.975) * sqrt(mean(x)*(1-mean(x))/n)
[1] 0.6380391 0.9539609
t.test(x, mu = 0.5)

    One Sample t-test

data:  x
t = 23.217, df = 999, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 0.5
95 percent confidence interval:
 0.7709814 0.8210186
sample estimates:
mean of x 
    0.796 

Opción 2 (prop.test):

prop.test(sum(x), length(x), p = 0.5, correct = FALSE)

    1-sample proportions test without continuity correction

data:  sum(x) out of length(x), null probability 0.5
X-squared = 350.46, df = 1, p-value < 2.2e-16
alternative hypothesis: true p is not equal to 0.5
95 percent confidence interval:
 0.7699136 0.8198210
sample estimates:
    p 
0.796 

Inferencia para la varianza

Intevalo de confianza para la varianza bajo normalidad

  • \(X_1, \dots, X_n \sim \mathcal{N}(\mu, \sigma^2)\).

\[ \left[ \frac{(n-1)s^2}{\chi^2_{1 - \alpha/2}}, \frac{(n-1)s^2}{\chi^2_{\alpha/2}} \right] \]

Test de hipótesis para la varianza bajo normalidad

  • \(X_1, \dots, X_n \sim \mathcal{N}(\mu, \sigma^2)\).

Test de hipótesis:

\[H_0: \sigma^2 = \sigma_0^2\]

\[H_1: \sigma^2 \ne \sigma_0^2\]

Estadístico:

\[\chi^2 = \frac{(n-1)s^2}{\sigma_0^2}, \qquad \chi^2 \sim \chi^2_{n-1}\]

x <- rnorm(20, sd = 2)
s2 <- var(x)
n <- length(x)
sigma0_2 <- 4 

# Estadístico
chi2 <- (n - 1) * s2 / sigma0_2

# Valor p bilateral
2 * min(pchisq(chi2, df = n - 1), 1 - pchisq(chi2, df = n - 1))
[1] 0.04707332
# valor p H1 sigma>sigma_0
1 - pchisq(chi2, df = n-1)
[1] 0.02353666
# valor p H1 sigma<sigma_0
pchisq(chi2, df = n-1)
[1] 0.9764633

Inferencia para diferencia de medias

Diferencia de medias (independientes)

  • Dos muestras independientes normales, varianzas iguales.

Hipótesis:

\[H_0: \mu_1 = \mu_2\], \[H_1: \mu_1 \ne \mu_2\]

x <- rnorm(30, mean = 100, sd = 10)
y <- rnorm(30, mean = 95, sd = 10)
t.test(x, y, var.equal = TRUE)

    Two Sample t-test

data:  x and y
t = 2.9128, df = 58, p-value = 0.005078
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
  2.415902 13.031272
sample estimates:
mean of x mean of y 
100.32036  92.59678 

Diferencia de medias (pareadas)

  • Supuestos: diferencias normales.

Hipótesis:

\[H_0: \mu_d = 0\] \[H_1: \mu_d \ne 0\]

donde \(d_i = x_i - y_i\).

before <- rnorm(20, mean = 100)
after  <- before + rnorm(20, mean = -5)
t.test(before, after, paired = TRUE)

    Paired t-test

data:  before and after
t = 25.32, df = 19, p-value = 4.21e-16
alternative hypothesis: true mean difference is not equal to 0
95 percent confidence interval:
 4.733021 5.586008
sample estimates:
mean difference 
       5.159514 

Inferencia para la diferencia de proporciones

Diferencia de proporciones

  • Supuestos: dos muestras independientes.

Hipótesis:

\[H_0: p_1 = p_2\] \[H_1: p_1 \ne p_2\]

x <- c(40, 60)
n <- c(100, 100)
prop.test(x, n)

    2-sample test for equality of proportions with continuity correction

data:  x out of n
X-squared = 7.22, df = 1, p-value = 0.00721
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.34579029 -0.05420971
sample estimates:
prop 1 prop 2 
   0.4    0.6 

Otro ejemplo (4 poblaciones):

smokers  <- c(83, 90, 129, 70)
patients <- c(86, 93, 136, 82)
prop.test(smokers, patients)

    4-sample test for equality of proportions without continuity correction

data:  smokers out of patients
X-squared = 12.6, df = 3, p-value = 0.005585
alternative hypothesis: two.sided
sample estimates:
   prop 1    prop 2    prop 3    prop 4 
0.9651163 0.9677419 0.9485294 0.8536585 

Inferencia para el ratio de varianzas

Comparación de varianzas (dos muestras)

  • Supuestos:
    • \(X_1, \dots, X_n \sim \mathcal{N}(\mu_1, \sigma_1^2)\)
    • \(Y_1, \dots, Y_m \sim \mathcal{N}(\mu_2, \sigma_2^2)\)
    • Independencia entre muestras.

Hipótesis:

\[H_0: \sigma_1^2 = \sigma_2^2\] \[H_1: \sigma_1^2 \ne \sigma_2^2\]

Estadístico:

\[F = \frac{s_1^2}{s_2^2} \sim F_{n-1, m-1}\]

# Simulación de dos muestras
x <- rnorm(25, sd = 2)
y <- rnorm(30, sd = 3)

# Test F de igualdad de varianzas
var.test(x, y)

    F test to compare two variances

data:  x and y
F = 0.33037, num df = 24, denom df = 29, p-value = 0.007167
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
 0.1533751 0.7325787
sample estimates:
ratio of variances 
         0.3303709 

Otros contrastes

Análisis de la Varianza (ANOVA)

ANOVA

  • Objetivo: comparar medias de \(k\) poblaciones
  • Hipótesis: \[ H_0: \mu_1 = \mu_2 = \dots = \mu_k \quad vs \quad H_1: \text{al menos una media difiere} \]
  • Supuestos:
    • Independencia de las observaciones.
    • Normalidad en cada grupo.
    • Igualdad de varianzas \(\sigma^2\).

Modelo

\[ Y_{ij} = \mu_i + \varepsilon_{ij}, \quad \varepsilon_{ij} \sim \mathcal{N}(0, \sigma^2) \]

  • \(i = 1, \dots, k\): grupo
  • \(j = 1, \dots, n_i\): observación dentro del grupo
  • \(N\): número total de observaciones

Se basa en la descomposición de la variabilidad suma de cuadrados total (SCT):

\[ \text{SCT} = \sum_{i=1}^k \sum_{j=1}^{n_i} (Y_{ij} - \bar{Y})^2 \]

\[ \text{SCT} = \underbrace{\sum_{i=1}^k n_i (\bar{Y}_i - \bar{Y})^2}_{\text{SCB}} + \underbrace{\sum_{i=1}^k \sum_{j=1}^{n_i} (Y_{ij} - \bar{Y}_i)^2}_{\text{SCD}} \]

Es la suma de la Suma de Cuadrados entre (between) Grupos (SCB) y la Suma de Cuadrados dentro de los Grupos (SCD).

Estadístico de contraste

  • Media cuadrática entre grupos: \[\text{MCE} = \frac{\text{SCB}}{k - 1}\]
  • Media cuadrática dentro de grupos: \[\text{MCI} = \frac{\text{SCD}}{N - k}\]

Estadístico:

\[F = \frac{\text{MCE}}{\text{MCI}} \sim F_{k-1, N-k} \quad \text{(bajo $H_0$)}\]

Regla: Rechazar \(H_0\) si: \[ F_{\text{obs}} > F_{k-1, N-k}^{(1-\alpha)}\]

ANOVA en R

group <- factor(rep(1:3, each = 20))
valores <- c(rnorm(20, 5), rnorm(20, 5), rnorm(20, 6))
anova_model <- aov(valores ~ group)
summary(anova_model)
            Df Sum Sq Mean Sq F value  Pr(>F)   
group        2  12.56   6.282   5.602 0.00601 **
Residuals   57  63.92   1.121                   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Test de Chi-cuadrado (χ²)

Test de Chi-cuadrado (χ²)

  • Evaluar si existe asociación entre dos variables categóricas (test de independencia).
  • Evaluar si una distribución observada se ajusta a una teórica (bondad de ajuste).

Estadístico

\[X^2 = \sum_{i=1}^{k} \frac{(O_i - E_i)^2}{E_i}\]

  • \(O_i\): frecuencia observada en la categoría \(i\)
  • \(E_i\): frecuencia esperada bajo la hipótesis nula
  • \(k\): número de categorías o celdas

Distribución bajo \(H_0\)

\[X^2 \overset{H_0}{\sim} \chi^2_{\nu}\]

  • \(\nu = (r - 1)(c - 1)\) en una tabla de contingencia \(r \times c\)

  • \(\nu = k - 1\) (test de bondad de ajuste sin parámetros estimados)

Test de Chi-cuadrado en R: Independencia

# Ejemplo: tabla 3x2
# filas: Grupo A, Grupo B, Grupo C
# columnas: Sí, No

tabla <- matrix(c(20, 15, 30,   # columna 1 (Sí) por fila
                  10, 25, 15),  # columna 2 (No)
                nrow = 3, byrow = FALSE)
rownames(tabla) <- c("Grupo1", "Grupo2", "Grupo3")
colnames(tabla) <- c("Si", "No")

tabla
       Si No
Grupo1 20 10
Grupo2 15 25
Grupo3 30 15
res <- chisq.test(tabla)
res

    Pearson's Chi-squared test

data:  tabla
X-squared = 9.0304, df = 2, p-value = 0.01094
# Mostrar tablas de frecuencias esperadas
res$expected
             Si       No
Grupo1 16.95652 13.04348
Grupo2 22.60870 17.39130
Grupo3 25.43478 19.56522

Test de Chi-cuadrado en R: Bondad de Ajuste

# Datos: frecuencias observadas
observed <- c(50, 30, 20)

# Frecuencias esperadas (proporciones teóricas)
expected_prop <- c(0.5, 0.3, 0.2)
expected <- sum(observed) * expected_prop # en valores absolutos

# Test de bondad de ajuste
chisq.test(x = observed, p = expected_prop) 

    Chi-squared test for given probabilities

data:  observed
X-squared = 0, df = 2, p-value = 1

Test de Kolmogorov-Smirnov (K-S)

Test de Kolmogorov-Smirnov (K-S)

Objetivo:

  • Evaluar si una muestra proviene de una distribución teórica específica (una muestra)

  • Evaluar si dos muestras provienen de la misma distribución (dos muestras).

Estadístico (una muestra)

\[D_n = \sup_x \left| F_n(x) - F(x) \right|\]

  • \(F_n(x)\): función de distribución empírica (ECDF)
  • \(F(x)\): función de distribución teórica bajo \(H_0\)

Estadístico (dos muestras)

\[D_{n,m} = \sup_x \left| F_n(x) - G_m(x) \right|\]

  • \(F_n(x)\): ECDF de la primera muestra (tamaño \(n\))
  • \(G_m(x)\): ECDF de la segunda muestra (tamaño \(m\))

Distribución bajo \(H_0\)

  • Para una muestra:

\[\sqrt{n} D_n \xrightarrow{d} \sup_{t \in [0,1]} |B(t)|\]

donde \(B(t)\) es el puente browniano (Kolmogorov distribution)

  • Para dos muestras:

\[ \sqrt{\frac{nm}{n + m}} D_{n,m} \xrightarrow{d} \sup_{t \in [0,1]} |B(t)| \]

Test de Kolmogorov-Smirnov en R (una muestra)

  • Contrasta si una muestra sigue una distribución teórica.

Hipótesis:

\[H_0: F(x) = F_0(x)\]

\[ H_1$: F(x) \ne F_0(x)\]

x <- runif(100)
ks.test(x, "punif", min = 0, max = 1)

    Asymptotic one-sample Kolmogorov-Smirnov test

data:  x
D = 0.080825, p-value = 0.5308
alternative hypothesis: two-sided

Test de Kolmogorov-Smirnov en R (dos muestras)

  • Contrasta si dos muestras provienen de la misma distribución.

Hipótesis:

\[H_0: F_1(x) = F_2(x)\]

\[H_1: F_1(x) \ne F_2(x)\]

x <- rnorm(100)
y <- rnorm(100, mean = 0.5)
ks.test(x, y)

    Asymptotic two-sample Kolmogorov-Smirnov test

data:  x and y
D = 0.28, p-value = 0.0007873
alternative hypothesis: two-sided

Resumen Test de hipótesis una muestra

Test Hipótesis nula Función R
t de una muestra \(H_0: \mu = \mu_0\) t.test(x, mu = mu0)
Proporción (1 muestra) \(H_0: p = p_0\) prop.test(x, n, p = p0)
Kolmogorov-Smirnov (1 muestra) \(H_0: F = F_0\) ks.test(x, "pnorm", ...)
Shapiro-Wilk \(H_0\): normalidad shapiro.test(x)
Wilcoxon (1 muestra) \(H_0\): simetría wilcox.test(x)

Resumen Test de hipótesis varias muestra

Test Hipótesis nula Función R
t de dos muestras indep. \(H_0: \mu_1 = \mu_2\) t.test(x, y)
t pareado \(H_0: \mu_d = 0\) t.test(x, y, paired=TRUE)
Varianzas (F) \(H_0: \sigma_1^2 = \sigma_2^2\) var.test(x, y)
Proporciones (2 muestras) \(H_0: p_1 = p_2\) prop.test(c(x1, x2), c(n1, n2))
Chi-cuadrado independencia \(H_0\): independencia de variables chisq.test(tabla)
Kolmogorov-Smirnov (2 muestras) \(H_0: F_1 = F_2\) ks.test(x, y, ...)
Mann-Whitney U (2 muestras) \(H_0\): igualdad de distribuciones wilcox.test(x, y)
Mann-Whitney U (2 muestras pareado) \(H_0\): simetría wilcox.test(x, y, paired = TRUE)
ANOVA \(H_0: \mu_1 = \cdots = \mu_k\) aov(y ~ grupo)
Kruskal-Wallis \(H_0: \mu_1 = \cdots = \mu_k\) (no param.) kruskal.test(y ~ grupo)
Friedman \(H_0: \mu_1 = \cdots = \mu_k\) friedman.test(y ~ grupo | bloque)
Spearman (\(\rho\)) \(H_0: \rho = 0\) cor.test(x, y, method = "spearman")

Otros conceptos

Máxima Verosímilud

La función de verosimilitud o likelihood de un vector aleatorio \(X_1,\dots, X_n\) cuya distribución depende de un parámetro o vector de parámetros \(\theta\) se define como la función de densidad o de probabilidad conjunta

\[L(\theta) = f_{X_1, \dots, X_n}(x_1, \dots, x_n; \theta).\] con dominio en \(\mathbb{R}^k\).

Bajo muestras aleatorias independiente e identicamente distribuídas, la función de verosimilitud se reduce a

\[L(\theta) = \prod_{i=1}^n f_X(x; \theta).\]

Los estimadores de máxima verosimilitud vienen de encontrar el valor de \(\hat{\theta}\)que maximiza la verosimilitud. Esto es

\[\hat{\theta}_{\text{MV}} = \arg\max_{\theta \in \Theta} L(\theta).\]

Verosimilitud en R

Dada una muestra de una Poisson:

muestra <- rexp(100, rate = 3)

Supongamos que desconocemos su parámetro y queremos obtener una estimación por máxima verosimilitud.

Para ello, vamos a evaluar la función de verosimilitud en diferentes valores del parámetro y nos quedaremos con aquel que la maximice.

grid_rate <- seq(1, 5, by = 0.1)

verosimilitud <- sapply(grid_rate, function(x) prod(dexp(muestra, rate = x)))

print(paste0("Estimador Máximo Verosímil: ", grid_rate[which.max(verosimilitud)]))
[1] "Estimador Máximo Verosímil: 3.2"

Podemos graficar la verosimilutud para cada valor del parámetro:

plot(grid_rate, verosimilitud, type = "l")
points(grid_rate[which.max(verosimilitud)], max(verosimilitud), col = "red", pch = 16)

Introducción al Método Bootstrap

Motivación

  • En muchos problemas estadísticos, la distribución muestral de un estimador es desconocida o difícil de derivar analíticamente o difícil de aproximar asintóticamente.

El bootstrap es un enfoque computacional desarrollado por Bradley Efron (1979) que permite aproximar la distribución muestral de un estadístico a partir de la muestra observada, sin necesidad de suposiciones fuertes sobre la población.

Si la muestra representa bien a la población, ¡podemos simular nuevas muestras re-muestreando con reemplazo!

Fundamento teórico

Sea \(X = (X_1, X_2, \dots, X_n)\) una muestra i.i.d. de una población desconocida con función de distribución \(F\), y sea \(T = T(X_1, \dots, X_n)\) un estadístico cualquiera.

El bootstrap clásico consiste en:

  1. Construir una distribución empírica \(\hat{F}_n\) asignando masa \(1/n\) a cada observación de la muestra.

  2. Generar \(B\) muestras de tamaño \(n\) con reemplazo de \(\hat{F}_n: X^{*b} = (X_1^{*b}, \dots, X_n^{*b})\), para \(b = 1, \dots, B\).

  3. Calcular el estadístico en cada muestra: \(\hat{T^{*b}}\).

  4. Utilizar \(\hat{\{T^{*1}}, \dots, \hat{T^{*B}\}}\) como aproximación a la distribución muestral de \(T\).

Ejemplo Bootstrap para la Mediana

# Muestra original
x <- c(-0.38, 0.65, 0.5, 1.47, -1.4, 1.32, -0.54, -1.5, -0.65, 0.26)
t_hat <- median(x)

# Bootstrap
B <- 1000
t_boot <- vector(mode = "numeric", B)*NA

for(b in 1:B){
  x_star <- sample(x, size = length(x), replace = TRUE)
  t_boot[b] <- median(x_star)
}

IC Bootstrap 95%:

round(quantile(t_boot, probs = c(alpha/2, 1-alpha/2)), digits = 2)
 2.5% 97.5% 
-0.97  0.79 

Aproximación a la distribución Bootstrapp e IC

# Muestra los Resultados
hist(t_boot, freq = FALSE, 
     main = "Distribución Bootstrap de la Mediana",
     xlab = "Mediana Bootstrap")
abline(v = t_hat, col = "red", lwd = 2, lty = 2)
abline(v = quantile(t_boot, probs = c(alpha/2, 1-alpha/2)), col = "blue", lwd = 2, lty = 2)

¿Preguntas?