2015-03-21 22 views
5

STAN'da kullanılacak kategorik bir yordayıcıyı biçimlendirmenin doğru yolu nedir? Kategorik bir belirleyiciyi normal bir faktör değişkeni olarak göremiyorum, bu yüzden STAN'ın kabul edebileceği normal bir kategorik değişkeni dönüştürmenin en hızlı yolu nedir?Kategorik bir yordayıcı rstan nasıl temsil edilir?

 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 

Nasıl bu Rstan girilecek hazırlamak olacaktır: Örneğin

, bir bir öngorücunun ve bunlar gibi bir kategorik öngorücunun devam olduğunu söyledikleri?

cevap

11

Stan'ın yalnızca gerçek veya integeger değişkenleri girdiği doğrudur. Bu durumda, kategorik bir yordayıcıyı kukla değişkenlere dönüştürmek istersiniz (belki bir referans kategorisini hariç tutuyor). Eğer diğer bazı değişkenlere modellenmemiş missingness varsa Ar, sen Ancak

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

gibi bir şey yapabileceğini sözlerine gözlemlerin doğru sayıya çıkıp olmayabilir. Bu yaklaşım şimdi

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

gibi tüm model aşağıdaki formüle girerek bir adım daha alınabilir, sen, lineer cebir bir .stan programında kullanabilir belirleyicilerinin bütün tasarım matris sahip olan,

olarak
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 
} 

Bir tasarım matrisinin kullanılması önerilir çünkü .stan programınızı aynı modeldeki veya farklı veri kümelerinin farklı varyasyonlarıyla yeniden kullanılabilir hale getirir.

İlgili konular