クラスターレベルまたは個別レベルでブートストラップする必要がありますか?


10

私は病院に入れ子にされた患者の生存モデルを持っています。これには病院のランダム効果が含まれます。ランダム効果はガンマ分布であり、私はこの用語の「関連性」を簡単に理解できる尺度で報告しようとしています。

中央ハザード比(中央値オッズ比に少し似ています)を使用する次の参照を見つけ、これを計算しました。

Bengtsson T、Dribe M:歴史的方法43:15、2010

ただし、ここで、ブートストラップを使用してこの推定に関連する不確実性を報告したいと思います。データは生存データであるため、患者ごとに複数の観測値があり、病院ごとに複数の患者があります。再サンプリング時に患者の観察をクラスタリングする必要があることは明らかです。しかし、病院をクラスタ化する必要があるかどうかもわかりません(つまり、患者ではなく病院をリサンプルしますか?

答えが関心のあるパラメーターに依存するかどうか疑問に思っています。したがって、ターゲットが病院レベルではなく患者レベルで関連性のあるものである場合、結果は異なりますか?

それが役立つ場合に備えて、以下のstataコードをリストしました。

cap program drop est_mhr
program define est_mhr, rclass
stcox patient_var1 patient_var2 ///
    , shared(hospital) ///
    noshow
local twoinvtheta2 = 2 / (e(theta)^2)
local mhr = exp(sqrt(2*e(theta))*invF(`twoinvtheta2',`twoinvtheta2',0.75))
return scalar mhr = `mhr'
end

bootstrap r(mhr), reps(50) cluster(hospital): est_mhr

回答:


2

子供の教育成果について調査を行ったとしましょう。いくつかの地域からランダムに学校のサンプルを取り、各学校から1つのクラスが調査に含まれました。分析を実施し、ブートストラップを使用して推定の信頼区間を取得する必要があります。どうやってするの?

最初に、データが階層的であることに注意してください。データにはいくつかのレベルがあります。学校、学校内のクラス、クラス内の生徒です。学校ごとにクラスが1つしかないため、2番目のレベルはデータに存在しません。学校内にはいくつかの類似点があり、学校間の違いがあると考えられます。学校内に類似点がある場合、生徒をランダムにサンプリングし、学校のメンバーシップを考慮しないと、データの階層構造が破壊される可能性があります。

一般に、いくつかのオプションがあります。

  1. 代替のサンプル学生、
  2. 全校を代替品で試して、
  3. 最初に代替のある学校をサンプルし、次に(a)代替のある、または(b)代替なしの学生をサンプルします。

最初のアプローチが最悪のアプローチであるようです。ブートストラップサンプリングは、研究のサンプリングプロセスを模倣したものであり、個々の生徒ではなく学校をサンプリングしていることを思い出してください。(2)と(3)のどちらを選択するかはより複雑ですが、このトピックを検討している研究論文が見つかることを期待しています(例:Rena et al。2010、Field and Welsh、2007)。一般に、オプション(2)または(3b)が望ましいです。置換を伴うサンプリングのレベルが高すぎると、結果に偏りが生じるようです。このトピックの詳細については、Efron and Tibshirani(1994)とDavison and Hinkley(1997)の書籍も参照してください。時系列データのブートストラップに関して同様の問題があることに注意してくださいこの場合、時間構造が破壊されるため、個々の観測値ではなく、シリーズのブロック全体(例:季節性を仮定する場合は全シーズン)もサンプリングします。実際には万能のソリューションはありませんが、複雑なデータ構造では、データと問題に最適なブートストラップサンプリングスキームを選択し、可能であればシミュレーションスタディを使用してさまざまなソリューションを比較する必要があります。


Davison、ACおよびHinkley、DV(1997)。ブートストラップ法とその応用。ケンブリッジ。

Efron、B.およびTibshirani、RJ(1994)。ブートストラップの紹介。CRCプレス。

Ren、S.、Lai、H.、Tong、W.、Aminzadeh、M.、Hou、X.、&Lai、S.(2010)階層データのノンパラメトリックブートストラップ。Journal of Applied Statistics、37(9)、1487-1498。

フィールド、カリフォルニア、ウェールズ、AH(2007)。クラスター化されたデータのブートストラップ。英国王立統計学会誌:シリーズB(統計手法)、69(3)、369-390。


1
あなたの答えを受け入れました(ありがとう)が、他の人たちのために、私はこれを私の答えで
drstevok

3

答えは、リサンプリングプロセスがデータの構造を考慮する必要があるということです。ここに素晴らしい説明があります(これを実装するためのいくつかのRコードとともに)。

http://biostat.mc.vanderbilt.edu/wiki/Main/HowToBootstrapCorrelatedData

UCLA Statistical Consulting Groupからのポインタに感謝します。

上記にリンクされているコードスニペットのより高速な(ただし柔軟性は低い)バージョンを作成しました。更新と詳細については、こちらを確認てください。

rsample2 <- function(data=tdt, id.unit=id.u, id.cluster=id.c) {
require(data.table)

setkeyv(tdt,id.cluster)
# Generate within cluster ID (needed for the sample command)
tdt[, "id.within" := .SD[,.I], by=id.cluster, with=FALSE]

# Random sample of sites
bdt <- data.table(sample(unique(tdt[[id.cluster]]), replace=TRUE))
setnames(bdt,"V1",id.cluster)
setkeyv(bdt,id.cluster)

# Use random sample of sites to select from original data
# then
# within each site sample with replacement using the within site ID
bdt <- tdt[bdt, .SD[sample(.SD$id.within, replace=TRUE)],by=.EACHI]

# return data sampled with replacement respecting clusters
bdt[, id.within := NULL] # drop id.within
return(bdt)
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.