Ich erstelle ein Skript zum Erstellen von Bootstrap-Beispielen aus dem cats
Dataset (aus dem -MASS-
Paket).
Nach dem Lehrbuch von Davidson und Hinkley [1] führte ich eine einfache lineare Regression durch und übernahm ein grundlegendes nichtparametrisches Verfahren für das Bootstrapping von iid-Beobachtungen, nämlich das Resampling von Paaren .
Das Originalmuster hat folgende Form:
Bwt Hwt
2.0 7.0
2.1 7.2
...
1.9 6.8
Durch ein univariates lineares Modell wollen wir das Herdgewicht von Katzen durch ihr Gehirngewicht erklären.
Der Code lautet:
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)
Angenommen, es gibt jetzt eine Clustervariable cluster = 1, 2,..., 24
(zum Beispiel gehört jede Katze zu einem bestimmten Wurf). Nehmen wir zur Vereinfachung an, dass die Daten ausgewogen sind: Wir haben 6 Beobachtungen für jeden Cluster. Daher besteht jeder der 24 Würfe aus 6 Katzen (dh n_cluster = 6
und n = 144
).
Es ist möglich, eine gefälschte cluster
Variable zu erstellen durch:
q <- rep(1:24, times=6)
cluster <- sample(q)
c.data <- cbind(cats, cluster)
Ich habe zwei verwandte Fragen:
Wie simuliere ich Proben gemäß der (gruppierten) Datensatzstruktur? Das heißt, wie kann ein Resample auf Clusterebene durchgeführt werden? Ich möchte die Cluster mit Ersetzung abtasten und die Beobachtungen innerhalb jedes ausgewählten Clusters wie im Originaldatensatz festlegen (dh Stichproben mit Ersetzung der Cluster und ohne Ersetzung der Beobachtungen innerhalb jedes Clusters).
Dies ist die von Davidson vorgeschlagene Strategie (S. 100). Angenommen, wir ziehen B = 100
Proben. Jeder von ihnen sollte aus 24 möglicherweise wiederkehrenden Clustern (z. B. 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
) bestehen, und jeder Cluster sollte die gleichen 6 Beobachtungen des ursprünglichen Datensatzes enthalten. Wie geht das R
? (entweder mit oder ohne -boot-
Paket.) Haben Sie alternative Vorschläge für das weitere Vorgehen?
Die zweite Frage betrifft das anfängliche Regressionsmodell. Angenommen, ich verwende ein Modell mit festen Effekten und Abschnitten auf Clusterebene. Ändert es das angewandte Resampling-Verfahren ?
[1] Davidson, AC, Hinkley, DV (1997). Bootstrap-Methoden und ihre Anwendungen . Cambridge University Press.