Je produis un script pour créer des échantillons de bootstrap à partir de l' cats
ensemble de données (à partir du -MASS-
package).
En suivant le manuel de Davidson et Hinkley [1], j'ai effectué une régression linéaire simple et adopté une procédure fondamentale non paramétrique pour le bootstrap à partir des observations iid, à savoir le rééchantillonnage des paires .
L'échantillon d'origine se présente sous la forme:
Bwt Hwt
2.0 7.0
2.1 7.2
...
1.9 6.8
Grâce à un modèle linéaire univarié, nous voulons expliquer le poids du foyer du chat à travers le poids de son cerveau.
Le code est:
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)
Supposons maintenant qu'il existe une variable de regroupement cluster = 1, 2,..., 24
(par exemple, chaque chat appartient à une portée donnée). Pour simplifier, supposons que les données soient équilibrées: nous avons 6 observations pour chaque cluster. Ainsi, chacune des 24 portées est composée de 6 chats (ie n_cluster = 6
et n = 144
).
Il est possible de créer une fausse cluster
variable via:
q <- rep(1:24, times=6)
cluster <- sample(q)
c.data <- cbind(cats, cluster)
J'ai deux questions connexes:
Comment simuler des échantillons conformément à la structure (groupée) de l'ensemble de données? Autrement dit, comment rééchantillonner au niveau du cluster? Je voudrais échantillonner les grappes avec remplacement et définir les observations dans chaque grappe sélectionnée comme dans le jeu de données d'origine (c'est-à-dire échantillonner avec remplacement des grappes et sans remplacer les observations dans chaque grappe).
C'est la stratégie proposée par Davidson (p. 100). Supposons que nous prélevions des B = 100
échantillons. Chacun d'eux devrait être composé de 24 grappes éventuellement récurrentes (par exemple 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
), et chaque grappe devrait contenir les mêmes 6 observations de l'ensemble de données d'origine. Comment faire ça en R
? (avec ou sans le -boot-
paquet.) Avez-vous d'autres suggestions pour continuer?
La deuxième question concerne le modèle de régression initial. Supposons que j'adopte un modèle à effets fixes , avec des interceptions au niveau du cluster. Modifie-t-il la procédure de rééchantillonnage adoptée?
[1] Davidson, AC, Hinkley, DV (1997). Méthodes d'amorçage et leurs applications . La presse de l'Universite de Cambridge.