我想在 Stan 中运行稳健的逻辑回归(robit)。该模型在 Gelman & Hill 的“使用回归和多级方法的数据分析”(2006 年,第 124 页)中提出,但我不确定如何实现它。我检查了Stan 的 Github 存储库和参考手册,但不幸的是我仍然感到困惑。这是我用来模拟常规逻辑回归的一些代码。我应该添加什么,以便错误跟随,例如,在具有 7 个自由度的分布时?无论如何,如果我运行多级分析,它会是相同的程序吗?
library(rstan)
set.seed(1)
x1 <- rnorm(100)
x2 <- rnorm(100)
z <- 1 + 2*x1 + 3*x2
pr <- 1/(1+exp(-z))
y <- rbinom(100,1,pr)
df <- list(N=100, y=y,x1=x1,x2=x2)
# Stan code
model1 <- '
data {
int<lower=0> N;
int<lower=0,upper=1> y[N];
vector[N] x1;
vector[N] x2;
}
parameters {
real beta_0;
real beta_1;
real beta_2;
}
model {
y ~ bernoulli_logit(beta_0 + beta_1 * x1 + beta_2 * x2);
}
'
# Run the model
fit <- stan(model_code = model1, data = df, iter = 1000, chains = 4)
print(fit)
谢谢!