Я пытаюсь построить модель, в которой ответ является пропорцией (фактически это доля голосов, которую партия получает в избирательных округах). Его распределение не является нормальным, поэтому я решил смоделировать его с помощью бета-версии. У меня также есть несколько предикторов.
Однако я не знаю, как написать это в BUGS / JAGS / STAN (JAGS был бы моим лучшим выбором, но это не имеет значения). Моя проблема в том, что я делаю сумму параметров по предикторам, но что я могу с этим сделать?
Код будет что - то вроде этого (в синтаксисе зазубрины), но знает , что Дон»как„звено“ y_hat
и y
параметры.
for (i in 1:n) {
y[i] ~ dbeta(alpha, beta)
y_hat[i] <- a + b * x[i]
}
( y_hat
это просто перекрестное произведение параметров и предикторов, отсюда и детерминированные отношения. a
И b
это коэффициенты, которые я пытаюсь оценить, x
будучи предиктором).
Спасибо за ваши предложения!
Ответы:
Подход бета-регрессии заключается в повторной параметризации в терминах и . Где будет эквивалентно y_hat, которое вы предсказываете. В этой параметризации у вас будет и . Затем вы можете смоделировать как логит линейной комбинации. может иметь собственный априор (должен быть больше 0) или может быть смоделирован также на ковариатах (выберите функцию связи, чтобы оставить ее больше 0, например, экспоненциальную).μ φ μ α = μ × ϕ β= ( 1 - μ ) × ϕ μ φ
Возможно что-то вроде:
источник
Грег Сноу дал отличный ответ. Для полноты здесь приведен эквивалент в синтаксисе Stan. Хотя у Stan есть бета-дистрибутив, который вы можете использовать, быстрее вычислить логарифм бета-плотности самостоятельно, потому что константы
log(y)
иlog(1-y)
могут быть рассчитаны один раз в начале (а не каждый раз, когдаy ~ beta(alpha,beta)
это будет вызываться). Увеличивая зарезервированнуюlp__
переменную (см. Ниже), вы можете суммировать логарифм бета-плотности по наблюдениям в вашей выборке. Я использую метку «гамма» для вектора параметров в линейном предикторе.источник