Arkaplan : Sosyal psikolojide, teorik istatistiklerin ve matematiğin nicel derslerimde zar zor kaplandığı bir doktora sahibim. Lisans ve grad okulu aracılığıyla (muhtemelen çoğunuz sosyal bilimlerde de olabilir) muhtemelen klasik "frekans" çerçevesi aracılığıyla öğretildi. Şimdi, ben de Ar seviyorum ve yöntemler işi yapar doğrulamak için simülasyon yöntemleri kullanarak yolubana matematiksel kanıtlardan daha mantıklı geliyor (yine: teorik istatistiklerden ziyade niceliksel bir sosyal bilimde arka plan). Freentist yöntemler ve simülasyon yöntemleri birlikte bana çok mantıklı geliyor. Frekansçılar olasılığı uzun vadede olasılık olarak görürler (örneğin, bunu keyfi olarak çok sayıda yaparsam ve zamanın% 50'sinde gerçekleşirse,% 50 olasılık vardır). Bu uzun vadeyi Monte Carlo yöntemleri ile simüle edebiliriz!
Komplikasyonlar : undergrad beri, Bayes yöntemleri çok farkında olmuştur ve her zaman hayatımda insanlar olasılık almak, sonuçları yorumlamak daha kolay olduğunu söyleyerek, Bayes tarafına beni çağırıyor olmuştur için verilerin yerine hipotezi bir hipotez, vb. verdim. Ben gerçekten bunun içindeydim ve bir Bayes dersi aldım, bazı Bayes kitaplarını ve makalelerini okudum ve şimdi Stan ve onunla ilişkili R paketlerine oldukça aşinayım.
Mayo'ya girin : Bir süre "Bayesian muhtemelen geleceğin yolu" diye düşündükten sonra, Deborah Mayo'nun İstatistiksel Çıkarımını Ciddi Testler olarak okudum . Kitabın başında bir taraf seçmediğini söylüyor, ama öyle yapıyor: O bir frekansçı ve kitabın çoğu sıkça kullanılan metodolojileri savunuyor. Mutlaka kanıt görme biçiminin geçerli olduğunu düşünüp düşünmediğimiz konusunda bir tartışmaya girmek istemiyorum, ama bu beni düşündürdü: Bayes gerçekten reklamı yapılan her şey mi? Demek istediğim, Bayes kalabalığı o kadar kırıldı ki, verileri Bayes çerçevesindeki analiz etmenin "doğru" yolunu bile bilmiyorum. Genellikle, sadecerstanarm
ve bugünkü nokta tahminleri ve güvenilir aralıklar ... sık sık sık tahminler ve güven aralıkları ile yakından uyumludur. Model karşılaştırmaları yapabilirim, ancak her zaman Bayes faktörlerini posterior olasılık karşılaştırmaları olarak tanımlamaktan korkuyorum.
Daha Fazla Düşünme : Mayo'nun kitabında düşünmeye devam ettiğim şey şuydu: Sık kullanılan yöntemlerimizin çalışmasını sağlamak için bilgisayarları kullanmanın bir yolu var, çünkü olasılık uzun vadede gördüğümüz şeydir ve bunu simüle edebiliriz. Bayesliler, Bayes okuluna (varsayılan, öznel, vb.) Bağlı olarak, olasılığın gerçekte ne olduğu konusunda bile anlaşamazlar. Bu da beni soruma götürüyor:
Soru : Bayesyanlar, olasılık uzun vadede oranlar olarak tanımlanmamışsa, yöntemlerinin belirsizliği doğru tanımladığını (yani geçerli güvenilir aralıkları ve posterior dağılımları hesaplayın) Monte Carlo simülasyon yöntemlerini kullanarak nasıl doğrular?
Örnek : Bir veri oluşturucu oluşturuyorum. Bu sadece .5 olasılıklı bir Bernoulli dağılımından taklit edecek:
set.seed(1839)
p <- .50
n <- 100
gen_dat <- function(n, p) {
rbinom(n, 1, p)
}
Şimdi diyelim ki lojistik regresyondaki güven aralıklarının gerçekten geçerli olduğundan emin olmak istiyorum. Bir regresyonu birçok kez simüle edebilir ve gerçek nüfus değerinin% 95 güven aralığının% 95'ine düştüğünden emin olabilirim. Sadece kesişim modeli, bu yüzden p
doğru tahmin ettiğimden emin olmak istiyorum :
set.seed(1839)
iter <- 10000
results <- sapply(seq_len(iter), function(zzz) {
mod <- glm(gen_dat(n, p) ~ 1, binomial)
conf <- suppressMessages(confint(mod))
log(p / (1 - p)) < max(conf) & log(p / (1 - p)) > min(conf)
})
mean(results)
Bu işlemin çalışması birkaç dakika sürüyor, ancak sonuçta mean(results)
bize çağrı geliyor 0.9416
. Bu yaklaşık% 95'tir ve glm
emrin belirsizliği geçerli bir şekilde tanımladığından eminim . Eminim yukarı kalktı iter
ve burada daha uzun süre dizüstü bilgisayarımda beklemek istesem, sağa doğru% 95 oranında daha yakın olurdu .
Öte yandan, aynı şey için bir Bayes modeli koyalım:
library(rstanarm)
set.seed(1839)
dat <- data.frame(y = gen_dat(n, p))
stan_mod <- stan_glm(y ~ 1, binomial, dat)
summary(stan_mod)
Kısmen, bu bana şunu verir:
Estimates:
mean sd 2.5% 25% 50% 75% 97.5%
(Intercept) -0.1 0.2 -0.5 -0.2 -0.1 0.0 0.3
mean_PPD 0.5 0.1 0.3 0.4 0.5 0.5 0.6
log-posterior -73.0 0.7 -75.1 -73.1 -72.7 -72.5 -72.5
Bayesliler olasılığı uzun vadede gördüklerimiz olarak tanımlamadığından, doğrulamak için stan_glm
belirsizliği doğru bir şekilde yakalamaktan ziyade simülasyon yöntemlerini nasıl kullanabilirim ? Yani, bu güvenilir aralıkların simülasyon yöntemleri kullanarak geçerli olduğuna nasıl güvenebilirim? Ve şimdi, bir öncekini tanımlamıyorum bile - burada önceliğin dahil edilmesi nasıl devreye giriyor, çünkü bu belirsizlik ölçütlerimizi etkileyecek?
Bir kez sıfırdan Stan'de bir engel modeli bileşeni ile bir beta regresyonu yazmaya çalışırken, birisinin bana tavsiye etmesini istedim: "Verileri simüle et. Bir sürü kez yapın ve gerçek tahminler 95 civarında güvenilir aralıkta olmalıdır. % 'si. " Ama bu benim için Bayeslilerin inandığı şeye aykırı! Bu, sık sık olasılık anlayışına dayanır! Öyleyse bir Bayesci, modelime yapılan summary()
çağrıdan aldığım güvenilir aralığın simülasyon yöntemlerini kullanarak belirsizliği doğru bir şekilde tanımladığına nasıl ikna edebilirim ?
Sorunun Amacı : Bu önemsiz bir örnek, ancak çoğu zaman müşteriler bana zor problemler sunuyor. Ve bilmediğim şeyleri deniyorum, bu yüzden yaptığım şeyin geçerli olduğundan emin olmak için sıklıkla bir simülasyon çalışması yürütüyorum. Stan'e özel bir model yazsaydım, yaptığım şeyin yasal olduğunu nasıl bilebilirdim? Stan'de yaptığımın aslında ne bilmek istediğimi söyleyeceğini doğrulamak için simülasyon yöntemlerini nasıl kullanabilirim?