我正在使用 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
变量使用指数或狄利克雷一样?