9 votos

Agrupaciones de bootstrap en R

Estoy realizando una regresión binomial negativa de los recuentos de clínicas en cada condado de todo el país (~3k condados). Me gustaría tener en cuenta, al menos en parte, la no independencia de los condados vecinos mediante el uso de bootstrap de los intervalos de confianza de forma "agrupada", por ejemplo, extrayendo los datos de todo un estado (50 estados en total) a la vez. Esto se ha convertido en práctica habitual para bien o para mal, en la literatura econométrica.

Podría escribir el código para hacer esto yo mismo, pero el boot parece que debería tener la capacidad de hacer esto de alguna manera, y en general prefiero soluciones probadas y generales a hacks puntuales. ¿Hay alguna forma de forzar el boot paquete para hacer un bootstrap agrupado?

Probé el strata pero que aleatoriza en estratos en lugar de aleatorizar qué clúster se toma, como confirma el siguiente código:

dat <- data.frame( cluster=rep(letters[1:5],each=10), x=runif(5*10), stringsAsFactors=TRUE )
boot.stat <- function(dat,idx) {
    print(dat[idx,]$cluster)
        print(table(dat[idx,]$cluster))
    mean(dat[idx,]$x)
    }
    boot( 
        data=dat, 
        statistic=boot.stat, 
        strata=dat$cluster, 
    stype="i", 
    R=5 
)

0voto

Guest Puntos 1

Si te entiendo bien, quieres estimar una estadística por estado y promediar esa estadística para obtener una estimación bootstrapped de la estadística global.

Muestreo estratificado hace algo diferente. Garantiza que la etiqueta sea una muestra representativa en cada muestra. No creo que eso sea lo que usted quiere hacer.

Podría hacerlo manualmente sin ser hacky . Utilizando el dplyr , tidyr y purrr del paquete tidyverse esto se convierte en un código transparente y limpio.

library(tidyr)
library(dplyr)
library(purrr)

dat <- data.frame(cluster=rep(letters[1:5],each=10),
  x=runif(5*10), stringsAsFactors=TRUE)

boot.stat2 <- function(df) {
  mean(df$x)
}

dat %>%
  nest(x) %>%
  mutate(stat = map_dbl(data, boot.stat2))

Más información sobre el

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X