Estoy produciendo un script para crear muestras de bootstrap del cats
conjunto de datos (del -MASS-
paquete).
Siguiendo el libro de texto de Davidson y Hinkley [1], realicé una regresión lineal simple y adopté un procedimiento no paramétrico fundamental para el arranque de las observaciones de iid, a saber, el remuestreo de pares .
La muestra original tiene la forma:
Bwt Hwt
2.0 7.0
2.1 7.2
...
1.9 6.8
A través de un modelo lineal univariante, queremos explicar el peso del hogar de los gatos a través de su peso cerebral.
El codigo es:
library(MASS)
library(boot)
##################
# CATS MODEL #
##################
cats.lm <- glm(Hwt ~ Bwt, data=cats)
cats.diag <- glm.diag.plots(cats.lm, ret=T)
#######################
# CASE resampling #
#######################
cats.fit <- function(data) coef(glm(data$Hwt ~ data$Bwt))
statistic.coef <- function(data, i) cats.fit(data[i,])
bootl <- boot(data=cats, statistic=statistic.coef, R=999)
Supongamos ahora que existe una variable de agrupación cluster = 1, 2,..., 24
(por ejemplo, cada gato pertenece a una camada determinada). Para simplificar, suponga que los datos están equilibrados: tenemos 6 observaciones para cada grupo. Por lo tanto, cada una de las 24 camadas se compone de 6 gatos (es decir, n_cluster = 6
y n = 144
).
Es posible crear una cluster
variable falsa a través de:
q <- rep(1:24, times=6)
cluster <- sample(q)
c.data <- cbind(cats, cluster)
Tengo dos preguntas relacionadas:
¿Cómo simular muestras de acuerdo con la estructura del conjunto de datos (agrupados)? Es decir, ¿cómo volver a muestrear a nivel de clúster? Me gustaría muestrear los grupos con reemplazo y establecer las observaciones dentro de cada grupo seleccionado como en el conjunto de datos original (es decir, tomar muestras con el reemplazo de los grupos y sin reemplazar las observaciones dentro de cada grupo).
Esta es la estrategia propuesta por Davidson (p. 100). Supongamos que sacamos B = 100
muestras. Cada uno de ellos debe estar compuesto por 24 grupos posiblemente recurrentes (por ejemplo cluster = 3, 3, 1, 4, 12, 11, 12, 5, 6, 8, 17, 19, 10, 9, 7, 7, 16, 18, 24, 23, 11, 15, 20, 1
), y cada grupo debe contener las mismas 6 observaciones del conjunto de datos original. ¿Cómo hacer eso en R
? (ya sea con o sin el -boot-
paquete). ¿Tiene sugerencias alternativas para continuar?
La segunda pregunta se refiere al modelo de regresión inicial. Supongamos que adopto un modelo de efectos fijos , con intersecciones a nivel de clúster. ¿Cambia el procedimiento de remuestreo adoptado?
[1] Davidson, AC, Hinkley, DV (1997). Métodos Bootstrap y sus aplicaciones . Prensa de la Universidad de Cambridge.