Próbuję zbudować model, w którym odpowiedź jest proporcjonalna (w rzeczywistości jest to liczba głosów, jaką partia zdobywa w okręgach wyborczych). Jego rozkład nie jest normalny, więc postanowiłem modelować go z rozkładem beta. Mam też kilka predyktorów.
Nie wiem jednak, jak napisać to w BŁĘDACH / JAGACH / STANU (JAGS byłby moim najlepszym wyborem, ale to naprawdę nie ma znaczenia). Mój problem polega na tym, że wykonuję sumę parametrów za pomocą predyktorów, ale co mogę z tym zrobić?
Kod byłby mniej więcej taki (w składni JAGS), ale nie wiem, jak „połączyć” parametry y_hat
i y
.
for (i in 1:n) {
y[i] ~ dbeta(alpha, beta)
y_hat[i] <- a + b * x[i]
}
( y_hat
jest tylko produktem krzyżowym parametrów i predyktorów, stąd relacja deterministyczna. a
i b
są współczynnikami, które staram się oszacować, x
będąc predyktorem).
Dzięki za sugestie!
Odpowiedzi:
Być może coś takiego:
źródło
Greg Snow dał świetną odpowiedź. Dla kompletności, oto odpowiednik w składni Stan. Chociaż Stan ma rozkład beta, którego można użyć, szybciej jest samodzielnie opracować logarytm gęstości beta, ponieważ stałe
log(y)
ilog(1-y)
można je obliczyć na początku (a nie za każdym razem, gdyy ~ beta(alpha,beta)
zostanie to wywołane). Zwiększając zarezerwowanąlp__
zmienną (patrz poniżej), można zsumować logarytm gęstości beta z obserwacji w próbie. Używam etykiety „gamma” dla wektora parametru w predyktorze liniowym.źródło