Мы решили использовать RStan, потому что он уже был на CRAN, и мы использовали его в другой части пакета.У нас было более сильное предпочтение чему-то на CRAN, который реализовал байесовскую регрессию, чем схема Поля-Гамма.
Файл Stan содержит:
// Code for 0-1 loss Bayes Logistic Regression model
data {
int<lower=0> n; // number of observations
int<lower=0> p; // number of covariates
matrix[n,p] x; // Matrix of covariates
int<lower=0,upper=1> y[n]; // Responses
real<lower=0> beta_sd; // Stdev of beta
}
parameters {
vector[p] beta;
}
model {
beta ~ normal(0,beta_sd);
y ~ bernoulli_logit(x * beta); // Logistic regression
}
И мы называем это с помощью:
bayes_log_reg <- rstan::stan(stan_file, data = data, seed = seed,
iter = n_bootstrap * 2, chains = 1)
stan_bayes_sample <- rstan::extract(bayes_log_reg)$beta
См. виньетка пакета для получения полной информации.
Я понимаю, что многие другие пакеты реализуют байесовскую логистическую регрессию в общем случае.