β1 ∈ (−15, −5) означает (на основе предварительной информации), что мы ожидаем, что коэффициент x1 будет в диапазоне от -15 до -5, поэтому мы выбираем нормальное со средним = -10 и сд = 5. Аналогично, β2 ∈ (−1,1) означает, что мы ожидаем, что коэффициент x2 будет в диапазоне от -1 до 1, поэтому мы выбираем нормальный априор со средним значением = 0 и sd = 2. Эти предыдущие варианты обозначаются в виньетке как β∼Normal ((- 10,0), (5,0,0,2)) (матричная форма среднего значения и дисперсия / ковариация).
Для конкретного примера, скажем, мы хотим согласовать следующую модель с фреймом данных mtcars
:
mpg ~ wt + hp + cyl
Мы хотим указать априоры для трех переменных-предикторов. Допустим, мы хотим получить гауссовы априоры со средними значениями -1, 0, 1 и стандартными отклонениями 4, 2, 3. Мы создадим их следующим образом:
my_prior <- normal(location = c(-1, 0, 1), scale = c(4, 2, 3), autoscale = FALSE)
Аналогичным образом, мы можем создать априоры для перехвата и стандартного отклонения ошибки (в данном случае это prior_aux
):
my_prior_intercept <- student_t(4, 0, 10, autoscale=FALSE)
my_prior_aux <- cauchy(0, 3, autoscale=FALSE)
Тогда функция модели:
m1 = stan_glm(mpg ~ wt + hp + cyl, data = mtcars,
prior = my_prior,
prior_intercept=my_prior_intercept,
prior_aux=my_prior_aux)