Ich würde gerne eine robuste logistische Regression (robit) in Stan ausführen. Das Modell wird in Gelman & Hill's "Datenanalyse mit Regression und Multilevel-Methoden" (2006, S. 124) vorgeschlagen, aber ich bin mir nicht sicher, wie es zu implementieren ist. Ich habe Stan's Github repository und überprüft, aber leider bin ich immer noch verwirrt. Hier ist ein Code, den ich verwendet habe, um eine reguläre logistische Regression zu modellieren. Was soll ich hinzufügen, damit die Fehler etwa einer t-Verteilung mit 7 Freiheitsgraden folgen? Könnte es bei einer mehrstufigen Analyse zufällig genauso sein?Wie führe ich ein Robit-Modell in Stan?
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)
Vielen Dank!
Sorry, ich weiß nicht, die Antwort aber Sie könnten Ihren Code in Zeile fixieren wollen 'df = Daten. Liste (N = 100, y = y, x1 = x1, x2 = x2) Hier ist keine 'data.list()' in R; es sollte lauten: 'df = liste (N = 100, y = y, x1 = x1, x2 = x2)'. –
FWIW, @johnmyleswhite hat ein JAGS-Beispiel für die robit-Regression [hier] (https://github.com/johnmyleswhite/JAGSExamples/blob/master/scripts/robit/robit.R). – jbaums