Использование разных априорных значений для групп независимых переменных в модели байесовской пробит-регрессии (rstanarm)

Я использую байесовскую логистическую регрессию (пробит) из пакета rstanarm для обучения модели событиям по умолчанию. В качестве входных данных модель принимает некоторые финансовые коэффициенты и некоторые качественные данные. Есть ли способ, которым я могу на самом деле упорядочить коэффициенты только для качественных данных, чтобы они всегда были положительными?

Например, когда я использую один априор для всего, я получаю следующие результаты (я калибрую модель с помощью MCMC с set.seed(12345)):

prior <- rstanarm::normal(location = 0, scale = NULL, autoscale = TRUE)

model.formula <-
  formula(paste0('default_events ~ fin_ratio_1 + ',
                 'fin_ratio_2 + fin_ratio_3 +',
                 'fin_ratio_4 + fin_ratio_5 +',
                 'fin_ratio_6 + fin_ratio_7 +',
                 'fin_ratio_8 + Qual_1 + Qual_2 +',
                 'Qual_3 + Qual_4'))

bayesian.model <- rstanarm::stan_glm(model.formula,
                                     family = binomial(link = "probit"),
                                     data = as.data.frame(ds), prior = prior,
                                     prior_intercept = NULL,
                                     init_r = .1, iter=600, warmup=200)

Коэффициенты следующие:

summary(bayesian.model)

Estimates:
               mean    sd      2.5%    25%     50%     75%     97.5%
(Intercept)    -2.0     0.4    -2.7    -2.3    -2.0    -1.7    -1.3
fin_ratio_1    -0.7     0.1    -0.9    -0.8    -0.7    -0.6    -0.4
fin_ratio_2    -0.3     0.1    -0.5    -0.4    -0.3    -0.2    -0.1
fin_ratio_3     0.4     0.1     0.2     0.4     0.4     0.5     0.6
fin_ratio_4     0.3     0.1     0.1     0.2     0.3     0.3     0.4
fin_ratio_5     0.2     0.1     0.1     0.2     0.2     0.3     0.4
fin_ratio_6    -0.2     0.1    -0.4    -0.2    -0.2    -0.1     0.0
fin_ratio_7    -0.3     0.1    -0.5    -0.3    -0.3    -0.2    -0.1
fin_ratio_8    -0.2     0.1    -0.5    -0.3    -0.2    -0.1     0.0
Qual_1         -0.2     0.1    -0.3    -0.2    -0.2    -0.1    -0.1
Qual_2          0.0     0.1    -0.1    -0.1     0.0     0.0     0.1
Qual_3          0.2     0.0     0.1     0.1     0.2     0.2     0.3
Qual_4          0.0     0.2    -0.3    -0.1     0.0     0.1     0.3

Вопрос в том, можно ли использовать два разных дистрибутива? Например, для переменных fin_ratio_x использовать обычные, а для переменных Qual_x использовать экспоненциальные или дирихле?


person Jespar    schedule 26.07.2019    source источник


Ответы (1)


В моделях, поставляемых пакетом rstanarm, невозможно ни использование разных априорных семейств, ни ограничения неравенства на коэффициенты. И то, и другое довольно легко сделать с помощью пакета brms или путем написания собственной программы Stan.

person Ben Goodrich    schedule 27.07.2019