2015-03-21 11 views
5

Wie formatiert man einen kategorischen Prädiktor in STAN richtig? Ich kann einen kategorischen Prädiktor anscheinend nicht als normale Faktorvariable eingeben. Was ist also der schnellste Weg, eine normale kategoriale Variable so zu transformieren, dass STAN sie akzeptieren kann?Wie wird ein kategorischer Prädiktor dargestellt?

Zum Beispiel sage ich hatte weiterhin ein Prädiktor und eine kategorische Prädiktor wie diese:

 income  country 
1 62085.59  England 
2 60806.33  England 
3 60527.27  England 
4 67112.64   USA 
5 57675.92   USA 
6 58128.44   USA 
7 60822.47 South Africa 
8 55805.80 South Africa 
9 63982.99 South Africa 
10 64555.45  Belgium 

Wie würde ich bereite diese in rstan eingegeben werden?

Antwort

11

Es ist richtig, dass Stan nur reale oder Integral-Variablen eingibt. In diesem Fall möchten Sie einen kategorischen Prädiktor in Dummy-Variablen konvertieren (möglicherweise ohne eine Referenzkategorie). In R, können Sie so etwas wie

dummy_variables <- model.matrix(~ country, data = your_dataset) 

tun könnten jedoch auch, dass nicht auf die richtige Anzahl von Beobachtungen kommen, wenn Sie nicht modellierte Fehlüber auf einigen anderen Variablen haben. Dieser Ansatz kann einen Schritt weiter, indem die gesamte Modellformel Eingabe wie

X <- model.matrix(outcome ~ predictor1 + predictor2 ..., data = your_dataset) 

Jetzt genommen wird, haben Sie eine ganze Design-Matrix von Prädiktoren, die Sie in einem .Stan Programm mit dem linearen Algebra verwenden können, wie

data { 
    int<lower=1> N; 
    int<lower=1> K; 
    matrix[N,K] X; 
    vector[N] y; 
} 
parameters { 
    vector[K] beta; 
    real<lower=0> sigma; 
} 
model { 
    y ~ normal(X * beta, sigma); // likelihood 
    // priors 
} 

Die Verwendung einer Design-Matrix wird empfohlen, da sie Ihr .stan-Programm mit verschiedenen Varianten desselben Modells oder sogar verschiedener Datasets wiederverwendbar macht.