cats
(-MASS-
パッケージから)データセットからブートストラップサンプルを作成するためのスクリプトを作成しています。
Davidsonと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]デビッドソン、AC、ヒンクリー、DV(1997)。ブートストラップメソッドとそのアプリケーション。ケンブリッジ大学出版局。