Stan で堅牢なロジスティック回帰 (Robit) を実行したいと考えています。このモデルは、Gelman & Hill の「Data Analysis Using Regression and Multilevel Methods」(2006 年、pp. 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)
ありがとうございました!