
Bootstrapping o morir en el intento?
Esta tecnica puede resultar controversial dado que es una forma (de las muchas que hay) de hallar "cosas" mediante iteraciones finitas (por no decir infinitas). Me estoy refiriendo a las tecnicas de muestreo aleatorio con reemplazamiento hasta encontrar aquellas propiedades que satisfagan una necesidad estadistica.
El ejemplo mas recurrente es ejecutar una regresion (cualquier tipo) y encontrar que los residuos no estan distribuidos normalmente, ni son homogeneos, o que esta violando cualquier otro supuesto asintotico. Naturalmente, quieres ejecutar un analisis parametrico... pero los resultados no son estadisticamente significativos, entonces como?
El metodo Bootstrap
El metodo que describo es el Bootstrap, un termino acunado por su creador al referirse a aplastar o manipular de forma grosera los datos hasta conseguir que cumplan los supuestos estadisticos que tratamos de cumplir (torturar los datos hasta que te digan lo que quieres).
Recordemos que por ejemplo en una regresion lineal por MCO, los coeficientes se han encontrado por la matriz y recordaran que usaremos las medias y especialmente las varianzas para hallar la matriz de varianzas y covarianzas del modelo, sumamente utiles para hallar posteriormente las pruebas de significatividad individual. He aqui el kit de la cuestion.
Algunos recordaran por sus clases de estadistica inferencial o econometria aplicada que los errores estandar (SE) de los nos ayudan a construir el estadistico . Si falla y no son significativos es uno (de muchos problemas) y existen algoritmos que "vuelven a calcular" los SE, como el conocido metodo de los errores robustos de White. El Bootstrap es otro algoritmo mas potente que usa la fuerza bruta a traves de un numero elevado de repeticiones de muestras aleatorias que hallen esos nuevos valores y cumplan los supuestos esperados.

Implementacion en R
En R (mi programa favorito) se puede conseguir ese efecto con un script asi de sencillito:
set.seed(4444)
bstar = NULL # Las filas de bstar seran vectores de los coeficientes de regresion
n = length(kpl)
B = 1000
for (draw in 1:B) {
# Muestra aleatoria de las filas de [variable], con reemplazo
Dstar = datta[sample(1:n, size = n, replace = T), ]
model = lm([Var_Dependiente] ~ [lista_de_variables_independientes], data = dataset)
bstar = rbind(bstar, coef(model))
}
# Ver las primeras 5 filas de bstar
bstar[1:5, ]
El procedimiento es directo:
- Fijar la semilla con
set.seed()para reproducibilidad. - Definir el numero de iteraciones (o mas, segun la necesidad).
- En cada iteracion: extraer una muestra aleatoria con reemplazamiento del dataset original, ajustar el modelo de regresion, y almacenar los coeficientes.
- Resultado: una matriz
bstarcon filas, donde cada fila contiene un vector de coeficientes estimados por bootstrap.
Con esta matriz se pueden calcular los errores estandar bootstrap como la desviacion estandar de cada columna, y construir intervalos de confianza basados en los percentiles de la distribucion bootstrap.
Un saludo a tod@s y buen forecast!!
ramlegacy un paquete de R para gestionar las RAM Legacy
ramlegacy es uno de esos paquetes de R que todo Administrador de Bases de datos y especialmente arquitectos de Big Data esperan ya que esta disenado para descargar, almacenar en cache y leer todas las diferentes versiones de RAM Legacy Stock Assessment Database.
Big data y mi ordenador portatil no se llevan bien Que hago?
Desde hace tiempo, mi interes sobre la aplicacion del analisis econometrico combinado con las tecnicas multivariantes del Machine Learning guian mis pasos de la consultoria sobre un terreno no apto para impacientes.

¿Te gustó este contenido?
Obtén certificados verificables en Python, Data Science y Machine Learning.
Ver Certificaciones Disponibles →