Stan (özellikle rstan), tahmini posterior dağılımlar oluşturmak için yerleşik olanaklara sahip mi?
Stan uyumdan dağıtım yapmak zor değil, ama tekerleği yeniden icat etmemeyi tercih ederim.
Stan (özellikle rstan), tahmini posterior dağılımlar oluşturmak için yerleşik olanaklara sahip mi?
Stan uyumdan dağıtım yapmak zor değil, ama tekerleği yeniden icat etmemeyi tercih ederim.
Yanıtlar:
Göre Stan Kullanım kılavuzu v2.2.0 (sayfa 361-362):
Stan'de posterior simülasyonlar iki şekilde üretilebilir. İlk yaklaşım, öngörülen değişkenleri parametre olarak ele almak ve sonra dağılımlarını model bloğunda tanımlamaktır. Ayrık değişkenler için de çalışan ikinci yaklaşım, oluşturulan miktarlar bloğunda rasgele sayı üreteçleri kullanarak çoğaltılmış veriler üretmektir.
Ben genellikle ikincisini kullanıyorum.
Aşağıdaki tam bir cevap değildir, ancak umarım cevap vermekten daha iyidir. Kendi uygulamalarımda, doğrusal bir modelden oluşturulan tek bir bağımlı ölçüm için model tahminlerini incelemek üzere arka tahmin kontrolleri uyguluyorum. Bu JAGS'de basit, ancak Stan'de biraz daha opak.
data{
int<lower=1> N; // no. rows
real x[N]; // predictor
real y[N]; // dependent variable
}
parameters{
real alpha; // int.
real beta; // slope
real<lower=0> sigma_e; // resid. var.
real y_tilde[N]; // post. pred.
}
model{
real mu[N];
for(i in 1:N){
mu[i] <- alpha + beta*x[i];
}
y ~ normal(mu,sigma_e); //lik
y_tilde ~ normal(mu,sigma_e);
alpha ~ normal(0,5);
beta ~ normal(0,5);
sigma_e ~ cauchy(0,5);
}
generated quantities{
real minimum;
real maximum;
minimum <- min(y_tilde);
maximum <- max(y_tilde);
}
Bunu yapmanın daha iyi bir yolu olmalı, bu yüzden lütfen daha iyi bir cevap gönderin. Ancak yukarıdaki kod, her gözlem için bir tane olmak üzere N posterior prediktif dağılım üretir. Bunu, ekstremin tahmini bir dağılımının bulunabilmesi için yapıyorum, ancak sadece posterior prediktif miktarla ilgileniyorsanız, y_tilde
hepsi olmadan yapabilirsiniz. Büyük veri setleri için yukarıdaki çözümün çok fazla yer harcayacağı açıktır.