Как поставить разные приоры используя rstanarm
Допустим, у меня есть модель формы y=a_{i} + b_{i,1}*x_{1} + b_{2}*x_{2}
, где i=1,2,...,12
и я хотел бы оценить эту модель, используя rstanarm
,
Можно ли установить разные приоры для каждого перехвата a_{i}
(так скажем, первые 4 имеют normal(location = 0, scale = 1, autoscale = TRUE)
Следующие 4 имеют normal(location = 1, scale = 2, autoscale = TRUE)
и последние 4 student_t(df = 1, location = 0, scale = NULL, autoscale = TRUE)
). Я также хотел бы установить такие же приоры для b_{i,1}
И наконец b_{2}~normal(location = 3, scale = 1, autoscale = TRUE)
,
Возможно ли это сделать с помощью rstanarm?
1 ответ
В моделях, поддерживаемых rstanarm, имеется не более одного пересечения, но вы можете подавить перехват, добавив в формулу -1 и рассматривая коэффициенты в фиктивных переменных как коэффициенты. Для коэффициентов вы можете сделать что-то вроде
prior = student_t(df = c(rep(Inf, 8), rep(1, 4)),
location = c(rep(0, 4), rep(1, 4), rep(0, 4)),
scale = c(rep(1, 4), rep(2, 4), rep(1, 4)),
autoscale = TRUE)
Но, похоже, вы имеете в виду какую-то иерархическую модель, и в этом случае априор для отклонений от глобальных параметров может быть только многомерным нормальным. Увидеть ?prior_decov
,