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/

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!