Küme düzeyinde mi yoksa bireysel düzeyde mi önyükleme yapmalıyım?


10

Hastanelerde iç içe geçmiş, hastaneler için rastgele bir etki içeren hastalar ile bir hayatta kalma modelim var. Rastgele etki gama dağıtılır ve bu terimin 'alaka düzeyini' kolayca anlaşılan bir ölçekte rapor etmeye çalışıyorum.

Medyan Tehlike Oranını (Medyan Oran Oranı gibi) kullanan aşağıdaki referansları buldum ve bunu hesapladım.

Bengtsson T, Dribe M: Tarihsel Yöntemler 43:15, 2010

Ancak, şimdi bu tahminle ilişkili belirsizliği bootstrap kullanarak bildirmek istiyorum. Veriler sağkalım verileridir ve bu nedenle hasta başına birden fazla gözlem ve hastane başına birden fazla hasta vardır. Yeniden örnekleme sırasında hasta gözlemlerini kümelemem gerektiği açık görünüyor. Ama hastaneleri de kümelendirmem gerekip gerekmediğini bilmiyorum (örn. Hastalar yerine hastaneleri yeniden örnekleme)?

Cevabın ilgi parametresine bağlı olup olmadığını merak ediyorum ve hedef hastane düzeyinde değil hasta düzeyinde alakalı bir şey olsaydı farklı olurdu?

Yardımcı olması durumunda aşağıdaki stata kodunu listeledim.

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

Yanıtlar:


2

Çocukların eğitim başarıları hakkında bir çalışma yaptığınızı düşünün. Bir bölgeden rastgele bir okul örneği aldınız ve her okuldan çalışmaya bir sınıf dahil edildi. Analiz yaptınız ve şimdi tahminleriniz için güven aralıkları elde etmek için bootstrap kullanmak istiyorsunuz. Nasıl yapılır?

İlk olarak, verilerinizin hiyerarşik olduğuna, birkaç seviyeye sahip olduğuna dikkat edin: okullar, okul içindeki sınıflar ve sınıf içindeki öğrenciler. Okul başına sadece bir sınıf olduğundan, ikinci seviye verilerinizde mevcut değildir. Okullarda bazı benzerlikler ve okullar arasındaki farklılıklar olduğunu varsayabiliriz. Okullarda benzerlikler varsa, öğrencileri rasgele örneklediyseniz, okul üyeliklerini dikkate almadan, muhtemelen verilerinizin hiyerarşik yapısını yok edebilirsiniz.

Genel olarak, birkaç seçenek vardır:

  1. değiştirilen örnek öğrenciler,
  2. tüm okulları değiştirerek örnekleme,
  3. önce değiştirilen okulları örnekleyin, ardından (a) değiştirilen veya (b) değiştirmeden örnek öğrencileri.

İlk yaklaşımın en kötüsü olduğu anlaşılıyor. Bootstrap örneklemesinin çalışmanızdaki örnekleme sürecini bir şekilde taklit etmesi gerektiğini ve bireysel öğrencilerden ziyade okulları örneklediğinizi hatırlayın . (2) ve (3) arasında seçim yapmak daha karmaşıktır, ancak umarım bu konuyu dikkate alarak araştırma makaleleri bulabilirsiniz (örneğin Rena ve ark. 2010, Field ve Galce, 2007). Genel olarak seçenekler (2) veya (3b) tercih edilir, çünkü değiştirme ile çok fazla örnekleme seviyesinin dahil edilmesi taraflı sonuçlara yol açar. Bu konu hakkında daha fazla bilgiyi Efron ve Tibshirani (1994) ve Davison ve Hinkley (1997) 'nin kitaplarında da bulabilirsiniz. Önyükleme zaman serisi verileriyle benzer bir sorun yaşadığımıza dikkat edinve bu durumda, bireysel gözlemlerden ziyade tüm seri bloklarını (örneğin, mevsimsellik varsayarsak tüm sezon) örnekliyoruz çünkü aksi takdirde zaman yapısı yok olur. Pratikte tek bedene uyan bir çözüm yoktur, ancak karmaşık veri yapıları ile verilerinize ve sorununuza en uygun olan önyükleme örnekleme şemasını seçmeli ve mümkünse farklı çözümleri karşılaştırmak için bir simülasyon çalışması kullanmalısınız.


Davison, AC ve Hinkley, DV (1997). Bootstrap Yöntemleri ve Uygulamaları. Cambridge.

Efron, B. ve Tibshirani, RJ (1994). Bootstrap'a Giriş . CRC tuşuna basın.

Ren, S., Lai, H., Tong, W., Aminzadeh, M., Hou, X. ve Lai, S. (2010). Hiyerarşik veriler için parametrik olmayan önyükleme. Uygulamalı İstatistik Dergisi, 37 (9), 1487-1498.

Field, CA ve Welsh, AH (2007). Kümelenmiş verileri önyükleme. Kraliyet İstatistik Kurumu Dergisi: B Serisi (İstatistiksel Metodoloji), 69 (3), 369-390.


1
Cevabınızı (teşekkürler) Kabul, ama diğerleri için ben artık bunu yapmanın R bir fonksiyonu hayata geçirdik cevap
drstevok

3

Cevap, yeniden örnekleme sürecinin verilerin yapısını hesaba katması gerektiği gibi görünmektedir. Burada güzel bir açıklama var (bunu uygulamak için bazı R kodlarıyla birlikte).

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

UCLA İstatistiksel Danışmanlık Grubunun göstericisi sayesinde .

Kod snippet'inin daha hızlı (ama daha az esnek) bir versiyonunu yazdım - güncellemeler ve ayrıntılar için buraya bakın.

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)
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.