cats
データセット(-MASS-
パッケージから)からブートストラップサンプルを作成するためのスクリプトを作成しています。
Davidson and Hinkleyの教科書[1]に従って、単純な線形回帰を実行し、iid観測からのブートストラップ、つまりペアのリサンプリングに基本的なノンパラメトリック手法を採用しました。
元のサンプルは次の形式です。
Bwt Hwt
2.0 7.0
2.1 7.2
...
1.9 6.8
単変量線形モデルを通じて、猫の炉床重量を脳重量で説明したいと思います。
コードは次のとおりです。
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)
ここで、クラスタリング変数が存在するとしますcluster = 1, 2,..., 24
(たとえば、各猫は特定の同腹子に属しています)。簡単にするために、データのバランスが取れていると仮定します。クラスターごとに6つの観測値があります。したがって、24匹の同腹子のそれぞれは、6匹の猫(すなわちn_cluster = 6
、n = 144
)で構成されています。
次の方法で偽のcluster
変数を作成できます。
q <- rep(1:24, times=6)
cluster <- sample(q)
c.data <- cbind(cats, cluster)
関連する質問が2つあります。
(クラスター化された)データセット構造に従ってサンプルをシミュレートする方法は?つまり、クラスターレベルでリサンプリングする方法は?置換を使用してクラスターをサンプリングし、選択した各クラスター内の観測値を元のデータセットと同じように設定します(つまり、クラスターを置換してサンプリングし、各クラスター内の観測値を置換せずにサンプリングします)。
これは、Davidson(p。100)によって提案された戦略です。B = 100
サンプルを描画するとします。それらのそれぞれは、24のおそらく再発するクラスター(たとえば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
)で構成されている必要があり、各クラスターには、元のデータセットの同じ6つの観測値が含まれている必要があります。でそれを行う方法はR
?(パッケージの有無にかかわらず-boot-
。)続行するための代替案はありますか?
2番目の質問は、初期回帰モデルに関するものです。クラスターレベルの切片を使用した固定効果モデルを採用するとします。採用したリサンプリング手順は変わりますか?
[1] Davidson、AC、Hinkley、DV(1997)。ブートストラップ法とその応用。ケンブリッジ大学出版局。