3  Técnicas de Remuestreo

Autor/a

Esteban Bermúdez Aguilar

Fecha de publicación

8 de agosto de 2025

3.1 Remuestreo

Las técnicas de remuestreo (resampling) es una variedad de métodos que permiten estimar la precisión de una muestra mediante el uso de subconjuntos de datos disponibles o validar modelos.

Los métodos de remuestreo son técnicas basadas en crear diferentes muestras a partir de una muestra dada y hacer una estimación de un parámetro en cada una de ellas, luego relacionando todas las estimaciones se obtiene un nuevo estimador, que con frecuencia tiene mejores propiedades que el estimador inicial.

Entre las técnicas más comunes de remuestreo esta el bootstrapping, Jackknife, validación cruzada (Cross-validation) y submuestreo.

3.2 Validación Cruzada

El término validación Cruzada es una clase de métodos que estiman usualmente la tasa de error de un modelo, donde se excluye una parte de las observaciones de la muestra (data de prueba o testing data) y el restante de la muestra (data de entrenamiento o training data) se usa para construir el modelo. Esto se realiza con el fin de medir la capacidad predictiva del modelo o seleccionar niveles de flexibilidad del modelo.

Definición 3.1 Validación Cruzada

El remuestreo de la validación cruzada se define como:

Dada una muestra \(X=x_1,x_2,...,x_N\), se divide en \(k\) subconjuntos \(X_i\) de longitud \(l\) observaciones disjuntas, llamados folds, tal que:

\[X=\bigcup_i X_i\] Se le llama grupo de entrenamiento al subconjunto

\[X_{E,j}=\bigcup_{i \neq j} X_i\]

y la subconjunto \(X_j\) como grupo de validación o prueba.

La segmentación puede variar según el analista, pero usualmente cada grupo tienen la longitud entre el 5% al 20% del tamaño de la muestra.

Nota

En caso que \(K=1\) el método se le llama validación cruzada dejando uno fuera (Leave-One-Out, LOOCV), sin embargo este procedimiento tiene un alto costo computacional.

Sea \(Y\) el estadístico o variable a estimar y sea \(e(X,Y)\) una medida de error ( puede ser MSE por ejemplo) entre las variables explicativas \(X\) y las variables de respuesta \(Y\).

Dada una muestra \(X\) se toma una partición de \(k\) partes (folds), tenemos un estimador llamado validación cruzada \(CV_k\) definido por:

\[CV_k=\frac{1}{k}\sum_{i=1}^ke(X_i,Y_i) \tag{3.1}\]

Donde se estima una fórmula para \(\hat Y\) con base en las las \(k-1\) partes distintas a \(i\), \(X_1,X_2,...X_{i-1},X_{i+1},...X_k\) llamado el conjunto de entrenamiento. Dada la fórmula para \(\hat Y\) se estiman los valores \(\hat Y_i\) según las observaciones de \(X_i\), llamado el conjunto de prueba y se estima el error \(e(X_i,Y_i)\) con las variables observadas \(Y_i\).

Observación

Entre más grande el conjunto de entrenamiento menos será el sesgo del error, pero más caro constitucionalmente la estimación del \(CV_k\).

Modelo de validación Cruzada

Ejemplo 3.1 Validación Cruzada

Consideramos una serie de datos mensuales sobre la Humedad Promedio y la Precipitación promedio de una Ciudad, como se muestra a continuación:

Mes Humedad Precipitación
1 88 72
2 86 33.9
3 81 37.5
4 79 36.6
5 80 31.0
6 78 16.6
7 71 1.2
8 69 6.8
9 78 36.8
10 82 30.8
11 85 38.5
12 83 22.7
library(caret)
Loading required package: ggplot2
Loading required package: lattice
Humedad<-c(88,86,81,79,80,78,71,69,78,82,85,83)
Precipitacion<-c(72, 33.9, 37.5, 36.6, 31.0, 16.6,1.2, 6.8, 36.8, 30.8, 38.5, 22.7)
Datos<-data.frame( Humedad = Humedad, Precipitacion = Precipitacion)

El objetivo es crear un modelo que aproxime con una recta \(y=ax+b\), los datos entre Humedad y Precipitación, con el fin de predecir la Humedad y estimaremos \(CV_k\) del modelo, para esto usaremos como medida del error, el Error Cuadrático Medio (ECM o MSE)

A nuestro set de datos, lo ordenaremos aleatoriamente, para crear 6 particiones, donde 10 datos de la muestra serán nuestro datos de entrenamiento y 2 nuestro datos de Prueba:

Aux<-runif(12)

Datos2<-cbind(Datos,Aux)
Datos2<-Datos2[order(Datos2$Aux),]
Datos2
   Humedad Precipitacion       Aux
9       78          36.8 0.1006756
5       80          31.0 0.1013131
3       81          37.5 0.1350000
2       86          33.9 0.2172209
6       78          16.6 0.2716227
10      82          30.8 0.2979354
12      83          22.7 0.5096628
4       79          36.6 0.5890837
7       71           1.2 0.6061814
8       69           6.8 0.6339263
11      85          38.5 0.7564434
1       88          72.0 0.9267172

Trabajemos la primera partición, para esto tomaremos las 10 primeras observaciones como el conjunto de entrenamiento y las 2 últimas con el conjunto de Prueba

Datos.E<-Datos2[c(1:10),]
Datos.E
   Humedad Precipitacion       Aux
9       78          36.8 0.1006756
5       80          31.0 0.1013131
3       81          37.5 0.1350000
2       86          33.9 0.2172209
6       78          16.6 0.2716227
10      82          30.8 0.2979354
12      83          22.7 0.5096628
4       79          36.6 0.5890837
7       71           1.2 0.6061814
8       69           6.8 0.6339263
Datos.P<-Datos2[-c(1:10),]
Datos.P
   Humedad Precipitacion       Aux
11      85          38.5 0.7564434
1       88          72.0 0.9267172
Regresion1<-lm(Humedad~Precipitacion,data=Datos.E)

cat("los coeficientes de la recta son: \n") 
los coeficientes de la recta son: 
Regresion1$coefficients
  (Intercept) Precipitacion 
   70.9782695     0.3041249 
plot(x=Datos.E$Precipitacion,y=Datos.E$Humedad, pch = 16, col = "blue",
     main="Regresion1",ylab="Humedad",xlab="Precipitacion", xlim=c(0,100),ylim=c(60,90)) 
points(x=Datos.P$Precipitacion,y=Datos.P$Humedad, pch=18,cex=2,col=2)
abline(Regresion1)

Datos.estimados<-predict(Regresion1,newdata=Datos.P)

cat("Los Datos estimados son: \n") 
Los Datos estimados son: 
Datos.estimados
      11        1 
82.68708 92.87526 
#Error Cuadrático Medio
ECM1<-mean((Datos.estimados - Datos.P$Humedad)^2)
cat("El Error cuadrático Medio de la primera partición es \n") 
El Error cuadrático Medio de la primera partición es 
ECM1
[1] 14.55889

Continuaremos con la segunda partición, para esto tomaremos las 8 primeras observaciones y las 2 últimas como el conjunto de entrenamiento y las observaciones 9 y 10 como el conjunto de Prueba

Datos.E<-Datos2[c(1:8,11,12),]
Datos.P<-Datos2[-c(1:8,11,12),]

Regresion2<-lm(Humedad~Precipitacion,data=Datos.E)

cat("los coeficientes de la recta son: \n") 
los coeficientes de la recta son: 
Regresion2$coefficients
  (Intercept) Precipitacion 
   76.7319427     0.1478131 
plot(x=Datos.E$Precipitacion,y=Datos.E$Humedad, pch = 16, col = "blue",
     main="Regresion2",ylab="Humedad",xlab="Precipitacion", xlim=c(0,100),ylim=c(60,90)) 
points(x=Datos.P$Precipitacion,y=Datos.P$Humedad, pch=18,cex=2,col=2)
abline(Regresion2)

Datos.estimados<-predict(Regresion2,newdata=Datos.P)

#Error Cuadrático Medio
ECM2<-mean((Datos.estimados - Datos.P$Humedad)^2)
cat("El Error cuadrático Medio de la segunda partición es \n") 
El Error cuadrático Medio de la segunda partición es 
ECM2
[1] 55.62823

Asi, continuamos con las otras particiones:

par(mfrow=c(2, 2))
#Tercera Partición

Datos.E<-Datos2[c(1:6,9:12),]
Datos.P<-Datos2[-c(1:6,9:12),]

Regresion3<-lm(Humedad~Precipitacion,data=Datos.E)

plot(x=Datos.E$Precipitacion,y=Datos.E$Humedad, pch = 16, col = "blue",
     main="Regresion3",ylab="Humedad",xlab="Precipitacion", xlim=c(0,100),ylim=c(60,90)) 
points(x=Datos.P$Precipitacion,y=Datos.P$Humedad, pch=18,cex=2,col=2)
abline(Regresion3)

Datos.estimados<-predict(Regresion3,newdata=Datos.P)

#Error Cuadrático Medio
ECM3<-mean((Datos.estimados - Datos.P$Humedad)^2)


#Cuarta Partición

Datos.E<-Datos2[c(1:4,7:12),]
Datos.P<-Datos2[-c(1:4,7:12),]


Regresion4<-lm(Humedad~Precipitacion,data=Datos.E)

plot(x=Datos.E$Precipitacion,y=Datos.E$Humedad, pch = 16, col = "blue",
     main="Regresion4",ylab="Humedad",xlab="Precipitacion", xlim=c(0,100),ylim=c(60,90)) 
points(x=Datos.P$Precipitacion,y=Datos.P$Humedad, pch=18,cex=2,col=2)
abline(Regresion4)

Datos.estimados<-predict(Regresion4,newdata=Datos.P)

#Error Cuadrático Medio
ECM4<-mean((Datos.estimados - Datos.P$Humedad)^2)

#Quinta Partición

Datos.E<-Datos2[c(1:2,5:12),]
Datos.P<-Datos2[-c(1:2,5:12),]

Regresion5<-lm(Humedad~Precipitacion,data=Datos.E)

plot(x=Datos.E$Precipitacion,y=Datos.E$Humedad, pch = 16, col = "blue",
     main="Regresion5",ylab="Humedad",xlab="Precipitacion", xlim=c(0,100),ylim=c(60,90)) 
points(x=Datos.P$Precipitacion,y=Datos.P$Humedad, pch=18,cex=2,col=2)
abline(Regresion5)

Datos.estimados<-predict(Regresion5,newdata=Datos.P)


#Error Cuadrático Medio
ECM5<-mean((Datos.estimados - Datos.P$Humedad)^2)


#Sexta Partición

Datos.E<-Datos2[c(3:12),]

Datos.P<-Datos2[-c(3:12),]


Regresion6<-lm(Humedad~Precipitacion,data=Datos.E)

plot(x=Datos.E$Precipitacion,y=Datos.E$Humedad, pch = 16, col = "blue",
     main="Regresion6",ylab="Humedad",xlab="Precipitacion", xlim=c(0,100),ylim=c(60,90)) 
points(x=Datos.P$Precipitacion,y=Datos.P$Humedad, pch=18,cex=2,col=2)
abline(Regresion6)

Datos.estimados<-predict(Regresion6,newdata=Datos.P)

#Error Cuadrático Medio
ECM6<-mean((Datos.estimados - Datos.P$Humedad)^2)

Una vez analizado el modelo, podemos estimar el \(CV_k\) del modelo con la muestra

ECMT=c(ECM1,ECM2,ECM3,ECM4,ECM5,ECM6)
cat("El vector de los ECM o MSE: \n")
El vector de los ECM o MSE: 
ECMT
[1] 14.558888 55.628230 16.990965  4.351484 15.504649  8.386313
Error_Validacion_Cruzada<-mean(ECMT)
cat("El Error estimado por validación cruzada es \n")
El Error estimado por validación cruzada es 
Error_Validacion_Cruzada
[1] 19.23675

3.3 Método Jackknife

El método de Jackknife fue presentado por Quenouille (1949) y Tukey (1958) generalizó la técnica y propuso su nombre actual, al ser un herramienta “aspera y lista” que puede resolver una variedad de problemas. Esta parte es tomada de Guzmán & Recuena (s.f.) , Wasserman (2006) y Fernández Casal (2023)

En las estimaciones puntuales, buscamos idealmente un estadístico, insesgado, Aunque en la práctica muchos estimadores poseen un sesgo.

En 1949, Quenouille, propuso una técnica para estimar y reducir el sesgo de un estimador (\(T_n\)) de \(\theta\), en particular cuando satisface:

\[E[T_n]=\theta+\frac{\alpha}{n}+O(1/n^2)\] El método elimina el término \(\frac{\alpha}{n}\)

Ejemplo 3.2  

Sea \(S^2\) la varianza muestral para una m.a.s \(X=x_1,x_2,...,x_n\), es decir que:

\[S^2=\frac{1}{n}\sum_{n=1}^n(x_i-\bar x)^2\] Se sabe que \(S^2\) es un estimador sesgado para la varianza \(\sigma^2\), con esperanza:

\[E[S^2]=\sigma^2-\frac{\sigma^2}{n}\]

Posteriormente Tukey en 1958, generalizó el método para la varianza de \(T_n\) con el fin de estimarla y reducirla.

Definición 3.2 Sea una m.a.s \(X=x_1,x_2,...x_n\) de una variable aleatoria, la muestra i-esima de Jackknife es la muestra eliminando la i-sima observación de la muestra original.

\[{}_iX=(x_1,x_2,x_{i-1},x_{i+1},...,x_n)\]

Sea el estimador \(T_n=T_n(x_1,x_2,...x_n)\) para la variable \(\theta\). El estimador i-esimo de Jackknife se define como:

\[{}_iT_{n-1}=T_{n-1}(x_1,x_2,x_{i-1},x_{i+1},...,x_n)\] Observe que existen \(n\) estimadores de Jackknife.

Definición 3.3 El i-esimo seudo valor de Jackknife se define como:

\[{}_i \hat T_n=nT_n-(n-1){}_iT_{n-1}\] El seudo valor \({}_i \hat T_n\) es una medida de la diferencia entre el estimador y el estimador Jackknife.

La media muestral de los \({}_i \hat T_n\) es:

\[ \hat T_n=\frac{1}{n}\sum_{i=1}^n{}_i \hat T_n=nT_n-\frac{(n-1)}{n}\sum_{i=1}^n{}_iT_{n-1}\] Si \(T_n\) es un estimador sesgado de la forma:

\[E[T_n]=\theta+\frac{\alpha}{n}+O(1/n^2)\]

Observe que:

\[ E[\hat T_n]=nE[T_n]-\frac{(n-1)}{n}\sum_{i=1}^nE[{}_iT_{n-1}]\]

\[=n \left(\theta+\frac{\alpha}{n}+O(1/n2) \right)-\frac{(n-1)}{n}\left(n\theta+\frac{n\alpha}{n-1}+O(1/n2) \right)=\theta+O(1/n2)\]

El sesgo se redujo, podemos definir como estimador de sesgo Jackknife a:

\[b_{jack}=T_n-\hat T_n=(n-1)(\bar T_n-T_n)\]

donde \(\bar T_n=\frac{1}{n}\sum_{i=1}^n{}_i T_{n-1}\)

Un estimador para \(\theta\) sería:

\[T_{jack}=T_n-b_{jack}\]

Similarmente, podemos estimar la varianza de \(\theta\), usando la cuasi-varianza muestral de \({}_i \hat T_n\)

\[\sigma_{jack}=\frac{n-1}{n}\sum_{i=1}^n({}_i T_{n-1}-\bar T_n)^2\]

Ejemplo 3.3 Ejemplo media

Estimador de Jackknife para la \(\bar X=\mu\), de una m.a.s. \(X=x_1,x_2...,x_n\)

Muestro estimador sería:

\[T_n=\frac{1}{n}\sum_{i=1}^nx_i=\bar X\] Los estimadores Jackknife serían:

\[{}_iT_{n-1}=\frac{1}{n-1}\sum_{j\neq i}x_j=\frac{1}{n-1}\left(\sum_{j=1}^nx_j-x_i \right)=\frac{1}{n-1}(n\bar X-x_i)\]

El promedio de los estimadores Jackknife es:

\[\bar T_n= \frac{1}{n}\sum_{i=1}^n{}_i T_{n-1}=\frac{1}{n(n-1)}\sum_{i=1}^n{}_i (n\bar X-x_i)=\frac{n\bar X}{(n-1)}-\frac{\bar X}{(n-1)}=\bar X\]

Por lo que:

\[b_{jack}=(n-1)(\bar T_n-T_n)=0\]

El estimador Jackknife para la media sería \(\bar X\).

Nota

Si \(T_n\) es un estimador insesgado para \(\theta\), entonces el estimador Jackknife es el mismo estimador \(T_n\) o que el sesgo Jackknife es igual a 0. (ejercicio al lector).

Para el caso del ejemplo analizado los seudovalores \({}_i \hat T_n\) se estiman como:

\[{}_i \hat T_n=nT_n-(n-1){}_iT_{n-1}=n \bar X-(n\bar X-x_i)=x_i\]

y la varianza jackknife se estima en:

\[\sigma_{jack}=\frac{n-1}{n}\sum_{i=1}^n({}_i T_{n-1}-\bar T_n)^2\] \[=\frac{n-1}{n}\sum_{i=1}^n\left( \frac{n \bar X-x_i}{n-1}-\bar X\right)^2=\frac{n-1}{n}\sum_{i=1}^n\left(\frac{\bar X-x_i}{n-1}\right)^2\]

\[\frac{1}{n(n-1)}\sum_{i=1}^n\left(\bar X-x_i\right)^2=\frac{1}{n}\hat S^2\]

donde \(\hat S^2\) es la cuasivarianza muestral ( estimador insesgado de \(\sigma^2\)).

Ejemplo 3.4 Ejemplo Varianza Muestral

Sea \(\theta=\sigma^2\) la varianza poblacional. Consideremos como estimador \(T_n=S^2\) la varianza muestral, de una m.a.s. \(X=x_1,x_2,...,x_n\), sabemos:

\[E[S^2]=E\left[ \frac{1}{n}\sum_{i=1}^{n}\left( x_i- \bar{X} \right)^2\right]=\sigma^2-\frac{\sigma^2}{n}\]

en este caso, tenemos un estimador sesgado. Los estimadores Jackknife se definen como:

\[{}_iT_{n-1}= \frac{1}{n-1}\sum_{j=1,j\neq i}^{n}\left( x_j- {}_i\bar{X} \right)^2\]

donde \({}_i\bar{X}=\frac{1}{n-1}\sum_{j=1,j\neq i}^{n} x_j\)

\[{}_iT_{n-1}= \frac{1}{n-1}\sum_{j=1,j\neq i}^{n}\left( x_j- \frac{1}{n-1}\sum_{k=1,k\neq i}^{n} x_k \right)^2\]

agrupando obtenemos que:

\[{}_iT_{n-1}= \frac{1}{n-1}\sum_{j=1,j\neq i}^{n}\left( \frac{n-2}{n-1}x_j- \frac{1}{n-1}\sum_{k=1,k\neq i, k\neq j}^{n} x_k \right)^2\] El promedio de \({}_iT_{n-1}\) estaría dado por:

\[\bar T_n= \frac{1}{n(n-1)}\sum_{i=1}^n\sum_{j=1,j\neq i}^{n}\left( \frac{n-2}{n-1}x_j- \frac{1}{n-1}\sum_{k=1,k\neq i, k\neq j}^{n} x_k \right)^2\]

El sesgo jackknife sería:

\[b_{jack}=(n-1)\left(\frac{1}{n(n-1)}\sum_{i=1}^n\sum_{j=1,j\neq i}^{n}\left( \frac{n-2}{n-1}x_j- \frac{1}{n-1}\sum_{k=1,k\neq i, k\neq j}^{n} x_k \right)^2- \frac{1}{n}\sum_{i=1}^{n}\left( x_i- \bar{X} \right)^2\right)\] Verifiquemos que el Estimador Jackknife es un estimador insesgado. En otras palabras que:

\[E[T_{jack}]=E[T_n-b_{jack}]=\sigma^2\]

Se conoce que \(E[S^2]=\frac{n-1}{n}\sigma^2\). Estimemos \(E[b_{jack}]\)

\[E[b_{jack}]=E\left[(n-1)\left(\frac{1}{n(n-1)}\sum_{i=1}^n\sum_{j=1,j\neq i}^{n}\left( \frac{n-2}{n-1}x_j- \frac{1}{n-1}\sum_{k=1,k\neq i, k\neq j}^{n} x_k \right)^2- \frac{1}{n}\sum_{i=1}^{n}\left( x_i- \bar{X} \right)^2\right) \right]\]

\[E[b_{jack}]=\frac{1}{n}\sum_{i=1}^n\sum_{j=1,j\neq i}^{n}E\left[\left( \frac{n-2}{n-1}x_j- \frac{1}{n-1}\sum_{k=1,k\neq i, k\neq j}^{n} x_k \right)^2\right]-\frac{(n-1)^2}{n}\sigma^2\]

\[\Rightarrow E[b_{jack}]=\frac{1}{n}\sum_{i=1}^n\sum_{j=1,j\neq i}^{n}E\left[\left( \frac{n-2}{n-1}(x_j-\mu)- \frac{1}{n-1}\sum_{k=1,k\neq i, k\neq j}^{n} (x_k-\mu) \right)^2\right]-\frac{(n-1)^2}{n}\sigma^2\]

\[\Rightarrow E[b_{jack}]=\frac{1}{n}\sum_{i=1}^n\sum_{j=1,j\neq i}^{n}var\left[ \frac{n-2}{n-1}(x_j-\mu)- \frac{1}{n-1}\sum_{k=1,k\neq i, k\neq j}^{n} (x_k-\mu) \right]-\frac{(n-1)^2}{n}\sigma^2\]

al ser m.a.s.

\[\Rightarrow E[b_{jack}]=\frac{1}{n}\sum_{i=1}^n\sum_{j=1,j\neq i}^{n} \frac{(n-2)^2}{(n-1)^2}\sigma^2+ \frac{n-2}{(n-1)^2}\sigma^2 -\frac{(n-1)^2}{n}\sigma^2\]

\[\Rightarrow E[b_{jack}]=\frac{(n-2)}{n-1}\sigma^2-\frac{(n-1)^2}{n}\sigma^2=\frac{-\sigma^2}{n}\]

\[\Rightarrow E[T_{jack}]=E[T_n-b_{jack}]=\sigma^2-\frac{1}{n}\sigma^2-\frac{-\sigma^2}{n}=\sigma^2\]

Ejemplo 3.5 \(\mu^2\)

Sea \(T_n=(\bar X)^2\) un estimador de \(\mu^2\).

\[E[(\bar X)^2]=var(\bar X)+E[\bar X]^2=\frac{\sigma^2}{n}+\mu^2\]

Construiremos un estimador insesgado para \(\mu^2\)

El i-esimo estimador jackknife para una m.a.s. de n variables, se define como:

\[{}_iT_{n-1}=\left(\frac{1}{n-1}\sum_{i \neq j}^n x_j \right)^2=({}_i\bar X_{n-1})^2\]

\[\Rightarrow \bar T_n=\frac{1}{n}\sum_{i=1}^n ({}_i\bar X_{n-1})^2\]

El sesgo de jackknife se determina por:

\[b_{jack}=(n-1)(\bar T_n-T_n)=(n-1)\left(\frac{1}{n}\sum_{i=1}^n ({}_i\bar X_{n-1})^2-\bar X^2 \right)\]

\[\Rightarrow b_{jack}=\frac{n-1}{n}\sum_{i=1}^n (({}_i\bar X_{n-1})^2-\bar X^2)=\frac{n-1}{n}\sum_{i=1}^n ({}_i\bar X_{n-1})-\bar X)({}_i\bar X_{n-1})+\bar X)\]

Por otro lado tenemos que:

\[\bar X=\frac{(n-1){}j\bar X_{n-1}+x_i}{n} \Rightarrow \frac{n \bar X-x_i}{n-1}=i\bar X_{n-1}\]

\[{}_i\bar X_{n-1}-\bar X=\frac{n \bar X-x_i}{n-1}-\bar X=\frac{\bar X-x_i}{n-1}\]

\[{}_i\bar X_{n-1}+\bar X=\frac{n \bar X-x_i}{n-1}+\bar X=\frac{(2n-1)\bar X-x_i}{n-1}=\frac{(2n-2)\bar X+ (\bar X - x_i)}{n-1}\]

Retornando al sesgo de jackknife

\[b_{jack}=\frac{n-1}{n}\sum_{i=1}^n ({}_i\bar X_{n-1})-\bar X)({}_i\bar X_{n-1})+\bar X)\] \[\frac{n-1}{n}\sum_{i=1}^n ({}_i\bar X_{n-1})-\bar X)({}_i\bar X_{n-1})+\bar X)=\]

\[\frac{n-1}{n(n-1)^2}\sum_{i=1}^n (\bar X-x_i)((2n-2)\bar X+ (\bar X - x_i))\] \[b_{jack}=\frac{1}{n(n-1)}\sum_{i=1}^n (2n-2)(\bar X^2-\bar Xx_i)+ (\bar X - x_i)^2)=\frac{\hat S^2}{n}\]

Por lo que el estimador Jackknife sería:

\[T_{jack}=\bar X^2-\frac{\hat S^2}{n}\]

Ejercicios

  • Con base en el ejemplo anterior (\(T_n=\bar X^2\) estimador de \(\mu^2\)):
  1. Muestre que \(T_{jack}\) obtenido es un estimador insesgado para \(\mu^2\).

  2. Usando la ecuación \(T_{jack}=nT_n-(n-1)\bar T_n\) demuestre que:

\[\frac{1}{n}\sum_{i=1}^2 {}_i \bar X^2_{n-1}=\bar X+\frac{\hat S^2}{n(n-1)}\]

  1. Muestre que

\[\sigma_{jack}=\frac{n-1}{n}\sum_{i=1}^2\left({}_i \bar X^2_{n-1}-\bar X^2-\frac{\hat S^2}{n(n-1)} \right)^2\]

Si se define \(c_d=\sum_{i=1}^n(\bar X-x_i)^d\) se puede demostrar que:

\[\sigma_{jack}=\frac{c_4}{n(n-1)^3}+\frac{4 \bar X^2c_2}{n(n-1)}+\frac{4 \bar X^2c_3}{n(n-1)^2}+\frac{c_2^2}{n^2(n-1)^2}\]

  • Sea m.a.s. \(X= (10,15,20,12,8,7,18,8,10,11,14)\) de las edades de los hijos de un grupo de asegurados.
  1. Estime la media muestral y la varianza muestral de \(X\).

  2. Estime los remuestreos de Jackknife de la muestra (\({}_iX\))

  3. Estime las medias muestrales y la varianza muestrales para cada muestra Jackknife (\({}_iT_{n-1}\)).

  4. Estime \(MSE\) entre la media muestral y los \({}_iT_{n-1}\).

Nota

\(MSE=\sum (T_n-{}_iT_{n-1})^2\)

  1. Cálcule los seudo valores de Jackknife para la media y la varianza (\({}_i \hat T_n\))

  2. Estime el sesgo de Jacknife para la media y la varianza de la muestra.

  3. Determine el estimador de Jacknife de la media y la varianza muestral.

  • Sea una muestra aleatoria simple \(X= (1,5,7,9,11,6,4,2,3,4)\).
  1. Estime la mediana muestral de \(X\).

  2. Estime los remuestreos de Jacknife de la muestra.

  3. Estime las medianas muestrales para cada remuestra Jacknife.

  4. Calcule los seudovalores de Jacknife para la mediana.

  5. Estime el sesgo de Jacknife para la mediana.

  6. Calcule el estimador de Jacknife de la mediana para la muestra.

  • Prueba que si \(T_n\) es una estimador insesgado de \(\theta\), entonces el sesgo de jackknife es cero.

3.3.1 Consistencia

Método Delta

Sea \(\{X_n\}\) una sucesión de variables aleatorias, y sea \(\{a_n\}\) una sucesión numérica, con \(g\) función real. Si

\[a_n(X_n-\mu)\to N(0,1)\] para un valor \(\mu\) y g diferenciable en \(\mu\) Entonces

\[a_n(g(X_n)-g(x))\to N(0,g'(\mu)^2)\]

Para una m.a.s. \(X=(x_1,x_2,...,x_n)\) de la v.a. \(X\) con media \(\mu\) y varianza \(\sigma^2\), por el Teorema del Límite Central se sabe que:

\[\frac{\bar X-\mu}{\sigma/\sqrt{n}} \sim N(0,1)\] Entonces si \(g\) una función real, derivable en \(\mu\), por el método Delta tenemos que:

\[\frac{g(\bar X)-g(\mu)}{\sigma/\sqrt{n}} \sim N(0,g'(\mu))\] Si \(T_n=g(\bar X)\) tenemos que:

\[\frac{T_n-g(\mu)}{\sigma_n} \sim N(0,1)\]

con \(\sigma_n^2=\sigma^2g'(\mu)^2/n\), la varianza asintótica de \(T_n\)

Teorema 3.1 Consistencia de Jackknife

Sea \(X\) una v.a., y sea \((x_1,x_2,...,x_n)\) una m.a.s de \(X\) y \(T_n=g(\bar X)\) con \(g\) continua en \(\mu\). Supongamos que \(\sigma^2\) existe y que \(g'(\mu) \neq 0\). Entonces, el estimador jackknife de la varianza de \(T_n\) es fuertemente consistente, es decir que

\[\frac{\sigma_{jack}}{\sigma_n^2} \stackrel{c.s.}{\longrightarrow}1\]

donde \(\sigma_n^2=\sigma^2g'(\mu)^2/n\), la varianza asintótica de \(T_n\)

3.4 Remuestreo Bootstrap

Sea \(X\) una v.a. con distribución desconocida \(F\), y sea \(X=(x_1,...,x_n)\) una m.a.s. de X, y \(T_n=T_n(x_1,...,x_n)\) un estadístico. El objetivo es calcular ciertas características del estadístico \(T_n\) como su varianza, el error de estimación, o su distribución, con lo que se podría construir intervalos de confianza. Esta sección se basa en Wasserman (2006) y Fernández Casal (2023).

En el caso, por ejemplo, de la varianza de un estadístico, \(T_n\), tenemos que esta se obtiene de la forma

\[var(T_n)=\int \left( T_n(X)-E[T_n(X)] \right)^2dF\]

Claramente, si \(F\) es desconocida, la expresión anterior no se puede evaluar. El método bootstrap plantea como solución, aproximar la expresión anterior sustituyendo la distribución desconocida por una estimación de \(F\). Podemos tener dos metodologías bootstrap:

  • Bootstrap no paramétrico Se origina que no conocemos la distribución que sigue nuestra m.a.s, y estimamos \(F\) usando la distribución empírica \(\hat F_n(x)\).

  • Bootstrap paramétrico En este caso, conocemos la distribución \(F\) de la m.a.s., pero no conocemos los parámetros \(\theta=(\theta_1,...,\theta_k)\) de la distribución \(F\), esta metodología busca la estimación de \(\hat \theta\).

Para esta sección desarrollaremos el Bootstrap no paramétrico.

Para un estadístico \(T_n\), si tenemos varias muestras de la población, se puede estimar

\[P(T_n \leq x)\]

Pero en ocasiones lo que contamos es con una sola muestra grande de tamaño \(n\). Si la muestra es suficientemente grande debería ser una buena representación de la población, lo que nos permite realizar muestras replicadas con reemplazo de la muestra original, y utilizarla como muestras aleatoriamente simples.

La cantidad de muestras con reemplazo son \(n^n\)

Esta es la idea del método Bootstrap, propuesto por Efron (1979) , permite como se indicó encontrar propiedades de los estadísticos como una generalización del método de Jackknife y utiliza el método de Monte Carlo para hallar \(F\) y estimar sus características.

Definición 3.4 Definición Muestra Bootstrap

Sea \(X=(x_1,...,x_n)\) una m.a.s. de X, y \(T_n=T_n(x_1,...,x_n)\) un estadístico, el vector \(X^{*}_{b}=(x_1^{{*}},x_2^{{*}},...,x_n^{{*}})\) se denomina una muestra bootstrap, es decir una muestra con reemplazo de la m.a.s y el estimador i-esimo bootstrap \(T_n^{{*}}\) se define como \(T_i^{{*}}=T_n(x_1^{{*}},x_2^{{*}},...,x_n^{{*}})\) con \(i=1,...n^n\).

Si la probabilidad de asignar un determinado valor en la entrada i-esima es del mismo peso, se indica que es un Bootstrap uniforme o Naïve, es decir:

\[P(x_i^{{*}}=x_j)=\frac{1}{n}, \, j=1,...,n\]

Ejemplo 3.6  

set.seed(1)
n <- 10
cat("Muestra original: \n")
Muestra original: 
(x <- rexp(n, 1/6))
 [1]  4.5310910  7.0898567  0.8742404  0.8387716  2.6164118 17.3698112
 [7]  7.3773723  3.2380970  5.7394050  0.8822759
cat("Muestra bootstrap: \n")
Muestra bootstrap: 
(bootvalues <- sample(x, size=n, replace=TRUE))
 [1] 2.6164118 5.7394050 5.7394050 2.6164118 2.6164118 7.0898567 0.8822759
 [8] 5.7394050 4.5310910 0.8387716

Observe en el ejemplo Ejemplo 3.6 que en la muestra bootstrap puede no sólo permutar los lugares las variables de la muestra, si no también repetir valores.

Para una muestra de \(n\) elementos existen \(n^n\) muestras bootstraps.

Escogencia de las muestras bootstraps

En ocasiones no es viable tomar las \(n^n\) muestras bootstraps, si no un conjunto de \(B\) muestras, sobre todo por el costo computacional del método. Algo importante es que la cantidad de muestras \(B\) no afectan la consistencia del modelo, pero si influyen en la precisión numérica de las aproximación de los resultados. Aunque no existe una regla establecida, se suele usar los siguiente parámetros:

Cantidad de muestras B Uso recomendado
B = 50 – 200 Para estimaciones rápidas exploratorias
B = 500 – 1000 Estimaciones razonablemente estables
B = 5000 o más Para estimar cuantiles, intervalos con alta precisión (percentiles)
B = 10000 o más Solo si el costo computacional es bajo o se necesita gran precisión

También esta el mínimo de Hall ( Hall (1992) ) , que es una regla empírica que dice que:

\[ B \geq \frac{100}{\alpha} \]

donde \(\alpha\) es el nivel de significancia para los intervalos de confianza.

Por ejemplo para un Intervalo de Confianza del 95%, es decir con un \(\alpha =0,05\) , entonces:

\[ B\geq 2000 \]

3.4.1 Distribución Bootstrap

Para encontrar una distribución del estimador \(T_n\), tenemos que:

\[P(T_n \leq x)=\int I_{(T_n(X) \leq x)}dF\]

Usando las muestras Bootstrap tenemos la aproximación

\[P(T_n \leq x)=\frac{1}{n^n}\sum_{i=1}^{n^n}I_{(T_i^{{*}} \leq x)}\]

Como \(n^n\) es muy grande, el costo computacional es muy elevado por lo que podemos acotar por \(B\) la muestras

\[P(T_n \leq x)\approx \frac{1}{B}\sum_{i=1}^{B}I_{(T_i^{{*}} \leq x)}\]

Si tenemos una función real \(g\) tenemos que:

\[E[g(T_n(x))]=\int g(T_n)dF\]

Podemos aproximar \(E[g(T_n(x))]\) por medio de las muestras bootstrap

\[E[g(T_n(x))]=\frac{1}{n^n}\sum_{i=1}^{n^n} g(T_i^{{*}})\] Dado el costo computacional del muestreo Bootstrap acotamos la aproximación en \(B\) muestras:

\[E[g(T_n(x))]\approx \frac{1}{B}\sum_{i=1}^{B} g(T_i^{{*}})\]

Podemos establecer un sesgo bootstrap como lo establecimos con Jackknife, tal que:

\[b_{boot}=\frac{1}{B}\sum_{i=1}^{B} g(T_i^{{*}})-g(T_n)\]

3.4.2 Varianza Bootstrap

Si construimos los \(n^n\) muestras bootstrap podremos estimar la varianza de las muestras bootstrap (\(\sigma_{boot}\))

\[\sigma^2_{boot}=\frac{1}{n^n}\sum_{i=1}^{n^n} \left(g(T_i^{{*}})-\frac{1}{n^n}\sum_{j=1}^{n^n}g(T_j^{{*}}) \right)^2\]

Observe que este estimador es “ideal” ya que para un \(n\) muy grande, es prácticamente imposible calcularlo, por lo que se acota para hacerlo computacionalmente operativo a una cantidad de \(B\) muestras.

3.4.3 MSE Bootstrap

También podemos establecer un error cuadrático medio, del proceso bootstrap definido como:

\[MSE_{boot}=\frac{1}{B}\sum_{b=1}^B(g(T_i^{{*}})-g(T_n))^2\]

3.4.4 Intervalos de Confianza Bootstrap

Sea m.a.s \(X=(x_1,x_2,...,x_n)\) con distribución \(F\) con media \(\mu\) conocida y varianza \(\sigma^2\) conocida. Queremos estimar:

\[T(F(X))=\int xdF=\int xf(x)dx\]

Usaremos el estadístico \(R\) definido como:

\[R=\sqrt{n}\frac{\bar X-\mu}{\sigma}\]

con \(T(F(X))=\int xf(x)dx\approx\bar X\)

Si asumimos normalidad de \(X\) entonces

\[X \sim N(\mu,\sigma^2) \Rightarrow R \sim N(0,1)\]

Si F no es normal, se sabe que:

\[R \stackrel{d}{\sim} N(0,1)\]

En el sentido de la estadística clásica podemos obtener un Intervalo de Confianza (IC) con nivel de significancia \(\alpha\) para la media \(\mu\).

\[IC_{\alpha}(\mu)=\left(\bar X-Z_{1-\alpha/2}\frac{\sigma}{\sqrt{n}},\bar X+Z_{1-\alpha/2}\frac{\sigma}{\sqrt{n}} \right)\]

Consideremos una distribución empírica \(\hat F=F_n\) como aproximación de \(F\). Para la aproximación bootstrap, tomaremos B muestras bootstrap uniforme \(X^{*}_{b}=(x_{1,b}^{{*}},x_{2,b}^{{*}},...,x_{n,b}^{{*}})\) con \(b=1,2,..., B\)

Podemos realizar un R bootstrap:

\[R_b=\sqrt{n}\frac{\bar X_b^{*}-\bar X}{\sigma}, \; b=1,2,...B\]

donde \(\bar X_b^{*}=\frac{1}{n}\sum x_{i,b}^{{*}}\)

\(R\) tendrá una distribución aproximada \(R^{{*}}\) ( La distribución empírica de los \(R_b\). Podemos aproximar los puntos críticos

\(X_{\alpha/2}^{*}\) y \(X_{1-\alpha/2}^{*}\) tal que:

\[P(X_{\alpha/2}^{*}\leq R_b \leq X_{1-\alpha/2}^{*})=1-\alpha\]

Dado lo anterior podemos crear un intervalo de confianza:

\[IC_{\alpha}^{boot}(\mu)=\left(\bar X^{*}-X_{\alpha/2}^{*}\frac{\sigma_{boot}}{\sqrt{n}},\bar X^{*}+X_{1-\alpha/2}^{*}\frac{\sigma_{boot}}{\sqrt{n}} \right)\]

En general el intervalo creado por el método bootstrap genera intervalos no centrados en \(\mu\), y este método es usando \(R_b\) como pivote.

Retomaremos \(R^{{*}}\) como se definió anteriormente bajo el algoritmo bootstrap, es decir la distribución de los \(R_b\).

Por otro lado tenemos que:

\[E[R]=E \left[\sqrt{n}\frac{\bar X-\mu}{\sigma} \right]=\sqrt{n}\frac{E[\bar X]-\mu}{\sigma}=0\]

\[var[R]=var \left[\sqrt{n}\frac{\bar X-\mu}{\sigma} \right]=\frac{n}{\sigma^2}var[\bar X]=1\]

Consideremos:

\[E[\bar X_b^{*}]=\frac{1}{n}\sum_{i=1}^nE[x_i^{*}]=E[x^{*}]\] \[E[x^{*}]=\sum_{j=1}^nx_jP(x=x_j), \; \text{por ser uniforme}\] \[E[x^{*}]=\sum_{j=1}^n\frac{1}{n}x_j=\bar X\] \[\Rightarrow E[\bar X_b^{*}]= \bar X\] Por otro lado:

\[var[\bar X_b^{*}]=\frac{1}{n^2}\sum_{i=1}^nvar[x_i^{*}]=\frac{1}{n}var[x^{*}]\] \[var[x^{*}]=E[(x^{*})^2]-E^2[x^{*}]=\sum_{i=1}^nx_i^2P(x=x_i)-(\bar X)^2\] \[var[x^{*}]=\frac{1}{n}\sum_{i=1}^nx_i^2-\bar X^2=\frac{1}{n}\sum_{i=1}^n(x_i-\bar X)^2=S^2\] \[\Rightarrow var[\bar X_b^{*}]=\frac{1}{n}S^2\]

Por lo tanto:

\[E[R^{*}]=E \left[\sqrt{n}\frac{\bar X_b^{{*}}-\bar X}{\sigma} \right]=\sqrt{n}\frac{E[\bar X_b^{{*}}]-\bar X}{\sigma}=0\]

\[var[R^{*}]=\frac{nvar[X_b^{{*}}]}{\sigma^2}=\frac{S^2}{\sigma^2}\]

Observe que la esperanza de \(R\) y \(R^{{*}}\) coinciden pero sus varianzas no son iguales, aunque asintóticamente la varianza de \(R^{{*}}\) es igual a la varianza de R

\[var[R^{{*}}]=\frac{S^2}{\sigma^2} \to 1=var[R] \; \text{ cuando } n\to \infty\]

Podemos hacer un cambio en las variables de la muestra tal que \((\tilde x_1,...\tilde x_n)\) donde: \(\tilde x_i=\bar X+\frac{\sigma}{S_n}(x_i-\bar X)\), para \(i=1,...,n\), como ejercicio comprobar que con la nueva muestra:

\[E[R]=E[R^{{*}}]\] \[Var[R]=Var[R^{{*}}]\]

En general tenemos tres métodos para estimar un intervalo de confianza.

Método 1: Intervalo Normal

Este método simple que se basa en el intervalo de confianza normal, sin embargo este no es preciso si nuestro estimador \(T_n\) no es normal.

\[T_n \pm Z_{1-\alpha/2}\sigma_{boot} \tag{3.2}\]

Método 2: Intervalos Pivotales

Se basa como el ejemplo desarrollado anteriormente en una función pivotal, si \(\theta=F(\theta)\) y como estimador \(\hat \theta_n=T(\hat F_n)\). Definimos la función pivotal como \(R_n=\hat \theta_n-\theta\), sea \(\hat \theta_{n,1}^{*}\),…,\(\hat \theta_{n,B}^{*}\), los estimadores obtenidos con \(B\) muestras bootstrap (replicaciones) de \(\hat \theta_n\).

Sea \(H(r)\) la distribución del pivot:

\[H(r)=P(R_n\leq r)\] Definimos los puntos \(a\) y \(b\) como:

\[a=\hat \theta_n-H^{-1}\left(1-\alpha/2 \right)\]

\[b=\hat \theta_n-H^{-1}\left(\alpha/2 \right)\]

Ejercicio al lector Demostrar que

\[P(a\leq \theta \leq b)=1-\alpha\]

Si conociéramos la distribución \(H\) los valores \(a\) y \(b\),serían exactos, desafortunadamente desconocemos \(H\) por lo que debemos realizar un estimación bootstrap de \(H\):

\[\hat H(r)=\frac{1}{B}\sum_{b=1}^B I_{(R^{*}_{n,b}\leq r)}\]

donde \(R^{*}_{n,b}=\hat \theta_{n,b}^{*}-\hat \theta_n\)

De las muestras \(R^{*}_{n,1}, ..., R^{*}_{n,B}\) el \(\beta\) cuantil lo denotaremos como \(r_\beta^{*}\). Podemos aproximar los valores de \(a\) y \(b\) como:

\[\hat a = \hat \theta_n -\hat H^{-1}(1-\alpha/2)=\hat \theta_n-r_{1-\alpha/2}^{*}=2\hat \theta_n- \theta_{n,1-\alpha/2}^{*}\]

\[\hat b = \hat \theta_n -\hat H^{-1}(\alpha/2)=\hat \theta_n-r_{\alpha/2}^{*}=2\hat \theta_n-\theta_{n,\alpha/2}^{*}\]

Donde \(\theta_{n,\beta}^{*}\) es el percentil \(\beta\) de la muestra \(\hat \theta_{n,1}^{*},...,\hat \theta_{n,B}^{*}\)

El intervalo Pivotal bootstrap de nivel de confianza \(1-\alpha\) para el estimador \(\hat \theta_n\) es:

\[IC_{boot}= \left(2\hat \theta_n-\theta_{n,1-\alpha/2}^{*}, 2\hat \theta_n- \theta_{n,\alpha/2}^{*}\right) \tag{3.3}\] cuando \(n \to \infty\) entonces \(P(IC_{boot})\to 1-\alpha\)

Método 3: Intervalos Percentiles

El intervalo percentil bootstrap se define como:

\[IC_{boot}= \left(\theta_{n,\alpha/2}^{*}, \theta_{n,1-\alpha/2}^{*}\right) \tag{3.4}\]

Ejemplo 3.7 Comparación de Métodos

Nos interesa encontrar un estimador para \(exp(\mu)\) de una m.a.s con media \(\mu=0.5\) y \(\sigma^2=1\), de una distribución lognormal, el valor real es \(\sqrt{e} \approx 1.64872\).

construiremos una muestra de 1000 observaciones

set.seed(2025)
m<-rlnorm(1000,0.5,1)

Un estimador para \(exp(\mu)\) es \(\hat{\theta}_1 = \exp\left( \frac{1}{n} \sum_{i=1}^n \log X_i \right)\). Este es el estimador de máxima verosimilitud e insesgado.

Para nuestra muestra \(\hat{\theta}_1\) sería

(theta_1 <- (exp(mean(log(m)))))
[1] 1.652322

Si trabajamos con \(Y_i=\ln(X_i)\), el log-espacio de la nuestra, podemos generar otro estimador \(\hat{\theta}_2\), dado que sabemos que:

\(Y_i \sim N(\mu, \sigma^2)\)

Usando la función generadora de momentos \(M_Y(t)=E[e^{tY}]\), tenemos que:

\[M_Y(t)=\exp\left(t\mu+\frac{t^2\sigma^2}{2} \right)\]

Por lo tanto si tomamos el promedio de las observaciones de \(Y_i\) tenemos que

\[E[e^{t\bar {Y}}]=\exp\left(t\mu+\frac{t^2\sigma^2}{2n} \right)\]

En particular si tomamos \(t=1\), tenemos que:

\[E[e^{\bar {Y}}]=\exp\left(\mu+\frac{\sigma^2}{2n} \right)\]

Por lo que, otro estimador sería

\(\hat{\theta}_2=exp(\bar{Y}- \frac{\hat{\sigma}^2}{2n})\)

(theta_2<-exp(mean(log(m))-var(log(m))/(2*length(m))))
[1] 1.651506

Este estimador, corrige el sesgo (error), tiene un mejor desempeño que \(\theta_1\) para muestras pequeñas, pero son equivalente asintóticamente.

Como tercera opción vamos a construir el estimador Bootstrap.

\(\hat{\theta}_3=\frac{1}{B}\sum_{b=1}^{B}exp(\bar{x}_b)\)

donde \(exp(\bar{x}_b)\) es el promedio de cada muestra bootstrap

library(boot)

Attaching package: 'boot'
The following object is masked from 'package:lattice':

    melanoma
set.seed(1)
results <- boot(data=m, 
                statistic=function(y,indices) exp(mean(log(y[indices]))), 
                R=1000)
(theta_3 <- mean(results$t))
[1] 1.650983

También podemos con la función boot, gráficar el histograma del bootstrap y el QQplot.

plot(results)

print(results)

ORDINARY NONPARAMETRIC BOOTSTRAP


Call:
boot(data = m, statistic = function(y, indices) exp(mean(log(y[indices]))), 
    R = 1000)


Bootstrap Statistics :
    original       bias    std. error
t1* 1.652322 -0.001338497  0.05309513

La función Boot nos brinda también el resultado del estimador original, el sesgo y la desviación estándar proceso bootstrap.

El cuarto estimador, construiremos el estimador jackknife

e_x<-function(x){exp(mean(log(x)))}
Jack<-function(i, x){e_x(x[-i])}

n=length(m)
pJack<-rep(0,n)
for(i in 1:n){pJack[i]=Jack(i,m)}

pJack<-mean(pJack)

bjack<-(n-1)*(e_x(m)-pJack) #Sesgo
 
ejack<-e_x(m)-bjack #Estimador

sjack=rep(0,n)

sjack <- (pJack - Jack(n, m))^2 #varianza
sjack<-((n-1)/n)*sjack
sdjack<-sqrt(sjack)

print(c(ejack, bjack,sjack,sdjack))
[1]  1.653138e+00 -8.160306e-04  2.096943e-06  1.448083e-03

Si aumentamos la muestra que sucedería con los estimadores:

e_x<-function(x){exp(mean(log(x)))}

Jack<-function(i, x){e_x(x[-i])}

param <- function(x){
  n <- length(x)
  theta_1 <- exp(mean(log(x)))
  theta_2 <- exp(mean(log(x))-var(log(x))/(2*n))
  results <- boot(data=x, 
                statistic=function(y,indices) exp(mean(log(y[indices]))), 
                R=1000)
  theta_3 <- mean(results$t)
  
pJack <- mean(sapply(1:n, function(i) Jack(i, x)))

bjack<-(n-1)*(e_x(x)-pJack) #Sesgo
 
theta_4<-e_x(x)-bjack #Estimador
  
  return(c(theta_1,theta_2,theta_3,theta_4))
}
set.seed(2074)
ns<- 200
est <- function(n){
call_param <- function(i) param(rlnorm(n,1/2,1))
V <- Vectorize(call_param)(1:ns)
apply(V,1,median)
}
VN=seq(500,3000,by=500)
Est <- Vectorize(est)(VN)

matplot(VN,t(Est),type="l", col=2:5, lty=2:5, ylim=exp(0.5)+c(-0.1,0.1),
        xlab="sample size (n)", ylab="estimador")
abline(h = exp(0.5), lty = 1, col = 1) 
legend("topleft", c("MLE", "Ajustado", "bootstrap", "Jacknife"),
       col=2:5,lty=2:5, bty="n")

Ejercicios

  • Sea \(X=(x_1,...,x_n)\) una muestra m.a.s sin datos repetidos (todos distintos), muestre que si no importa el orden de los elementos existen

\[\binom{2n-1}{n}\] muestras bootstrap.

  • Indique si esta de acuerdo o no con las siguientes afirmaciones:
  1. La distribución bootstrap de un estadístico coincide con la distribución muestral de ese estadístico.

  2. La técnica bootstrap sólo puede aplicarse cuando trabajamos con variables cuantitativas.

Respuesta Ambas son falsas, la distribución bootstrap es una apróximación a la distribución muestral, pero no es exacta (su esperanza es la distribución muestral), por ejemplo los intervalos de confianza no son centrados con respecto a estimador. Para la segunda afirmación, la técnica consiste en tomar muestras con reemplazos de una muestra inicial, para obtener la distibución bootstrap de un estadístico. Esta técnica puede utilizarse cuando la variable es cuantitativa o cualitativa, por ejemplo podemos usarla para estimar el porcentaje de individuos de una población de determinada categoría.

-Realizar los ejercicios dejados al lector.

-Realizar ejercicios del Capitulo 8 del libro Wasserman (2006) .

3.5 Submuestreo

Las técnicas de submuestreo (downsampling) son una técnica de remuestreo utilizada para reducir el tamaño de una muestra o conjunto de datos, eliminando alguna observaciones, las razones de utilizar submuestreo son dos:

  • Costo computacional de un modelo, reducir el tamaño de la muestra para ejecutar el modelo con menos datos.

  • Para casos de clasificación supervisada con clases desbalanceadas, estos son casos donde un alto porcentaje de la muestra pertenece a la clase \(A\) y la otra clase \(B\) tiene pocos elementos.

Ejemplo 3.8 Cartera de Crédito

Un ejemplo, de una clasificación supervisada con clases desbalanceadas, es una cartera de crédito, donde se quiere estimar la probabilidad de impago de los clientes, usualmente en estos casos la categoría de prestamos al día posee la mayoría de créditos.

En casos de clasificación supervisada con clases desbalanceadas, lo usual es aplicar una técnica de submuestreo para la clase con mayor datos o aplicar una técnica de SMOTE (Synthetic Minority Over-sampling Technique) a la clase con menos datos, o una mezcla de ambas técnicas.

Las técnicas de submuestreo se formalizan en el libro Subsampling ( Politis et al. (1999) ) donde los autores realizan una propuesta alternativa al bootstrap por medio de submuestreo. Aunque podemos usar de referencia históricas los trabajos de Nyquist (1928) y Shannon (1949) como trabajos previos para las técnicas de submuestreo, así como el método Jackknife se podría clasificar como una técnica de submuestreo.

Sea \(X\) una v.a. con distribución desconocida \(F\), y sea \(X=(x_1,...,x_n)\) una m.a.s. de X, y \(T=T(F)\) un estadístico, como la media, la varianza, mediana, entre otros.

Sea \(\hat{T_n}=T(\hat F_n)\) , donde \(\hat F_n\) es la distribución empírica con los datos de la muestra de \(X_n\). Lo que queremos realizar es encontrar la distribución entre \(\hat T_n\) y el valor real de \(T\) por medio de:

\[ \sqrt{n}(\hat T_n-T) \]

Que representa la variabilidad del estimador respecto al valor real del parámetro, esto nos ayuda a construir intervalos de confianza o estimaciones del error.

Nota:

Recordemos que por el Teorema de Limite Central para Estimadores (TLCE), ver Método Delta, tenemos que asintóticamente, que para el estimador \(\hat \theta\) de \(\theta\) , se tiene:

\[ \sqrt{n}(\hat{\theta}_n - \theta) \xrightarrow{d} \mathcal{N}(0, \sigma^2) \]

En este caso, al desconocer \(F\), tampoco conocemos el comportamiento de la varianza \(\sigma^2\).

Definición 3.5 Definición Submuestra

Sea \(X=(x_1,...,x_n)\) una m.a.s. de X, y \(\hat T_n=T_n(x_1,...,x_n)\) un estadístico, el vector \({}_iX_{b}=(x_1^{(i)},x_2^{(i)},...,x_b^{(i)})\) con \(b<n\), se denomina una submuestra, esta submuestra es sin reemplazo de la m.a.s y el subestimador i-esimo de la submuestra \({}_i\hat T_n\) se define como \({}_i\hat T_b=T_b(x_1^{(i)},x_2^{(i)},...,x_b^{(i)})\) con \(i=1,...N_b\). donde \(N_b=\binom{n}{b}\) o una muestra aleatoria de \(\binom{n}{b}\) si \(N_b\) es muy grande.

Observe que si \(b=n-1\) estaríamos en el caso de las muestras jackknife.

Escogencia de las submuestras

A diferencia del modelo Bootstrap donde seleccionamos una cantidad de \(B\) muestras, y la escogencia de esa cantidad no afectaba la consistencia del modelo, solamente la precisión del mismo. En caso de las submuestras, la elección del tamaño de \(b\) es muy importante ya que que puede afectar la consistencia del modelo.

Si \(b\) es relativamente pequeño, se puede perder entre las submuestra información, agregar mucha volatilidad a los resultados y si \(b\) es muy grande se puede perder la independencia entre los subestimadores y podría aumentar el error o riesgo.

Según Politis et al. (1999) el \(b\) debe cumplir con:

\[ b \rightarrow \infty \quad \text{y}\quad \frac{b}{n}\rightarrow 0 \quad \text{cuando }n\rightarrow \infty \]

La primera condición \(b \rightarrow \infty\) pretende que cada submuestra tenga suficiente información y que sea razonablemente consistente, mientras que la segunda condición \(\frac{b}{n}\rightarrow 0\) pretende disminuir el sesgo introducido por trabajar con submuestras más pequeñas que la muestra original, de esta forma garantizar el comportamiento asintótico. Ambas condiciones hace que podamos aplicar el TLCE, nos permite estimar la varianza del estimador en forma correcta.

Aunque no existe una fórmula exacta, existes reglas heurísticas, las cuales se basan es un \(b=n^\gamma\) con \(\gamma \in [0,1]\). Para muestras grandes \(n \geq 500\) se recomienda escoger un \(b\) entre \(n^{0.5}\) y \(n^{0.9}\), un valor práctico es \(b=\left\lfloor n^{0.7} \right\rfloor\) , por ejemplo si n=1000, entonces \(b\in[32,501 ]\), y un número práctico del tamaño de las submuestras sería 125.

La sección del \(b\) puede hacerse empíricamente, aunque una forma más adecuada es minimizando el error cuadrático medios (MSE) mediante validación cruzada.

3.5.1 Distribución Submuestreo

Definición 3.6 Disbribución Submuestreo Se define la distribución empírica del submuestreo como:

\[ P(T_n \leq x)\approx L_{n,b}(x)=\frac{1}{N_b}\sum_{i=1}^{N_b}I_{(\sqrt{b}({}_i\hat T_b-\hat T_n) \leq x)} \]

Obtenido la distribución \(L_{n,b}(x)\) , podemos construir un intervalo de confianza \(1-\alpha\) para \(T\) determinando los cuantiles \(\tau_{\alpha/2}\) y \(\tau_{1-\alpha/2}\) de \(L_{n,b}(x)\) , de tal manera que el intervalo sería:

\[ \left[ \hat{T}_n - \frac{\tau_{1 - \alpha/2}}{\sqrt{n}},\; \hat{T}_n + \frac{\tau_{\alpha/2}}{\sqrt{n}} \right] \]

ejercicio al lector que es el intervalo de confianza.

Ejemplo 3.9 Ejemplo Submuestreo

Estimaremos el ejemplo Ejemplo 3.7 que realizamos anteriormente de un estimador para \(exp(\mu)\) de una m.a.s con media \(\mu\), de una distribución lognormal, el valor real es 1.64872.

set.seed(2025)
m<-rlnorm(1000,0.5,1)
n<-length(m)

#Valores del submuestreo
b <- floor(n^0.7)  #tamaño de la submuestra
Nb<-1000 #número de submuestreo a considerar

tn<-numeric(Nb) #crea el vector de submuestras

for (i in 1:Nb) {
  indices <- sample(1:n, size = b, replace = FALSE)
  x_b <- m[indices]
  tn[i] <- exp(mean(log(x_b)))
}

tn_estimado<-mean(tn) #estimador de la submuestra
sesgo<-tn_estimado-(exp(1/2))

#Otros valores
varianza<-var(tn)
desv<-sd(tn)

cat("Estimador Submuestreo:", tn_estimado, "\n")
Estimador Submuestreo: 1.656942 
cat("Sesgo estimado:", sesgo, "\n")
Sesgo estimado: 0.008220641 
cat("Varianza estimada:", varianza, "\n")
Varianza estimada: 0.01806368 
cat("Desviación estándar:", desv, "\n")
Desviación estándar: 0.1344012 

3.5.2 SMOTE

A inicios de esta sección se mencionó que para casos de clasificación supervisada con clases desbalanceadas, la clase con menos datos se puede usar el método SMOTE (Synthetic Minority Over-sampling Technique). Esta técnica se basa en crear sintéticamente nuevas observaciones con base en una combinación lineal entre puntos cercanos (vecinos más cercanos), esta forma de crear observaciones evita sobreajustes que ocurren cuando se duplican las observaciones y preserva la estructura de los datos.

Método

El método de creación de observaciones es relativamente sencillo.

Paso1: Se escoge un valor \(x_i\) de la muestra que pertenece a la clase.

Paso 1: Se selecciona \(k\) vecinos más cercanos de \(x_i\), usualmente se toman los 5 puntos más cercanos de la misma clase.

Paso 2: Se escoge aleatoriamente uno de esos vecinos.

Paso 3: el nuevo punto de observación sería:

\[ x_{nuevo}=x_i+\lambda(x_{vecino}-x_i) \quad \lambda \sim U[0,1] \]

Con este método, hay que cuidar que los datos nuevos sean realistas, para más información se puede leer Chawla et al. (2002).