Cómo realizar Bootstrapping en R (con ejemplos)

Bootstrapping es un método que se puede utilizar para estimar el error estándar de cualquier estadística y producir un intervalo de confianza para la estadística.

El proceso básico de arranque es el siguiente:

  • Tome k muestras repetidas con reemplazo de un conjunto de datos dado.
  • Para cada muestra, calcule la estadística que le interesa.
  • Esto da como resultado k estimaciones diferentes para un estadístico dado, que luego puede usar para calcular el error estándar del estadístico y crear un intervalo de confianza para el estadístico.

Podemos realizar bootstrapping en R usando las siguientes funciones de la biblioteca de arranque :

1. Genere muestras de bootstrap.

arranque (datos, estadística, R,…)

dónde:

  • datos: un vector, una matriz o un marco de datos
  • estadística: una función que produce la (s) estadística (s) que se van a arrancar
  • R: Número de réplicas de bootstrap

2. Genere un intervalo de confianza de arranque.

boot.ci (bootobject, conf, type)

dónde:

  • bootobject: un objeto devuelto por la función boot ()
  • conf: El intervalo de confianza a calcular. El valor predeterminado es 0,95
  • type: Tipo de intervalo de confianza a calcular. Las opciones incluyen «norma», «básico», «semental», «perc», «bca» y «todos». El valor predeterminado es «todos».

Los siguientes ejemplos muestran cómo utilizar estas funciones en la práctica.

Ejemplo 1: Bootstrap de una única estadística

El siguiente código muestra cómo calcular el error estándar para el R-cuadrado de un modelo de regresión lineal simple:

set.seed (0)
 biblioteca (de arranque)

#definir función para calcular R-cuadrado
 rsq_function <- función (fórmula, datos, índices) {
  d <- datos [índices,] #permite al arranque seleccionar el 
  ajuste de la muestra <- lm (fórmula, datos = d) #ajustar el modelo de regresión 
  retorno (resumen (ajuste) $ r.square) #retorno R-cuadrado del modelo
}
# realizar bootstrapping con 2000 repeticiones de replicaciones
 <- boot (data = mtcars, statistic = rsq_function, R = 2000, formula = mpg ~ disp)

#ver resultados de repeticiones de boostrapping


CORREA ORDINARIA NO PARAMÉTRICA


Llamada:
boot (datos = mtcars, estadística = función_rsq, R = 2000, fórmula = mpg ~ 
    disp)


Estadísticas de Bootstrap:
     sesgo original std. error
t1 * 0,7183433 0,002164339 0,06513426

De los resultados podemos ver:

  • El R-cuadrado estimado para este modelo de regresión es 0,7183433 .
  • El error estándar para esta estimación es 0.06513426 .

También podemos ver rápidamente la distribución de las muestras de arranque:

trama (repeticiones)

Histograma de muestras bootstrap en R

También podemos usar el siguiente código para calcular el intervalo de confianza del 95% para el R-cuadrado estimado del modelo:

#calcular el intervalo de percentil de arranque ajustado (BCa)
 boot.ci (reps, type = " bca ")

LLAMADA : 
boot.ci (boot.out = reps, type = "bca")

Intervalos: 
Nivel BCa          
95% (0,5350, 0,8188)  
Cálculos e intervalos en escala original

A partir de la salida, podemos ver que el intervalo de confianza de arranque del 95% para los valores reales de R cuadrado es (.5350, .8188).

Ejemplo 2: Bootstrap de varias estadísticas

El siguiente código muestra cómo calcular el error estándar para cada coeficiente en un modelo de regresión lineal múltiple:

set.seed (0)
 biblioteca (de arranque)

#define la función para calcular los coeficientes de regresión ajustados
 coef_function <- función (fórmula, datos, índices) {
  d <- datos [índices,] # permite al arranque seleccionar el 
  ajuste de la muestra <- lm (fórmula, datos = d) #ajustar modelo de regresión 
  retorno (coef (ajuste)) # coeficientes de retorno estimaciones del modelo
}

# realizar bootstrapping con 2000 repeticiones de
 repeticiones <- boot (data = mtcars, statistic = coef_function, R = 2000, formula = mpg ~ disp)

#ver resultados de repeticiones de boostrapping


CORREA ORDINARIA NO PARAMÉTRICA


Llamada:
boot (datos = mtcars, estadística = coef_function, R = 2000, fórmula = mpg ~ 
    disp)


Estadísticas de Bootstrap:
       sesgo original std. error
t1 * 29.59985476 -5.058601e-02 1.49354577
t2 * -0.04121512 6.549384e-05 0.00527082

De los resultados podemos ver:

  • El coeficiente estimado para la intersección del modelo es 29.59985476 y el error estándar de esta estimación es 1.49354577 .
  • El coeficiente estimado para la variable predictora disp en el modelo es -0,04121512 y el error estándar de esta estimación es 0,00527082 .

También podemos ver rápidamente la distribución de las muestras de arranque:

plot (repeticiones, índice = 1) # intercepción de la gráfica del modelo 
(repeticiones, índice = 2) #disp variable de predicción

Bootstrapping en R

También podemos usar el siguiente código para calcular los intervalos de confianza del 95% para cada coeficiente:

#calcular los intervalos de percentil de arranque (BCa) ajustados
 boot.ci (reps, type = " bca ", index = 1) #intercepción del modelo 
boot.ci (reps, type = " bca ", index = 2) #disp variable predictor

LLAMADA : 
boot.ci (boot.out = reps, type = "bca", index = 1)

Intervalos: 
Nivel BCa          
95% (26,78; 32,66)  
Cálculos e intervalos en escala original
CÁLCULOS DEL INTERVALO DE CONFIANZA DE BOOTSTRAP
Basado en 2000 réplicas de bootstrap

LLAMADA : 
boot.ci (boot.out = reps, type = "bca", index = 2)

Intervalos: 
Nivel BCa          
95% (-0,0520, -0,0312)  
Cálculos e intervalos en escala original

A partir de la salida, podemos ver que los intervalos de confianza de arranque del 95% para los coeficientes del modelo son los siguientes:

  • IC para la intersección: (26,78, 32,66)
  • CI para disp : (-.0520, -.0312)

Recursos adicionales

Cómo realizar una regresión lineal simple en R
Cómo realizar una regresión lineal múltiple en R
Introducción a los intervalos de confianza

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Redactor del artículo

  • Luis Benites
    Director de Statologos.com

    Tengo una Maestría en Ciencias en Estadística Aplicada y he trabajado en algoritmos de aprendizaje automático para empresas profesionales tanto en el sector de la salud como en el comercio minorista.

    Ver todas las entradas

¿Te hemos ayudado?

Deja un comentario en el muro del agradecimiento para que todos sepán que Statologos explica mejor y facil y si te es viable puedes hacer una donación:

Puedes hacer un donativo
Muro del agradecimiento

Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo:

Deja un comentario

La prueba de McNemar se utiliza para determinar si existe una diferencia estadísticamente significativa en las proporciones entre los datos…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!