0

RStan を使用して、2 つの法線の混合に適合させています。

data {
 int<lower = 1> K;
 int<lower = 1> N;
 real y[N];
}
parameters {
 simplex[K] theta;
 real mu[K];
 real<lower = 0> sigma;
}
model{
 real ps[K]; // place-holder for log component densities
 sigma ~ uniform(0.5, 1.5);
 mu ~ normal(0, 10);
 for (n in 1:N){
  for (k in 1:K) {
   ps[k] <- log(theta[k]) + normal_log(y[n], mu[k], sigma);
  }
  increment_log_prob(log_sum_exp(ps)); // log_sum_exp(lp1,lp2) =    log(exp(lp1) + exp(lp2))
  }
}

mu[1] が mu[2] より小さいという条件を追加したいと思います。どうやってやるの?

ご協力いただきありがとうございます

4

1 に答える 1

1

スタンにはオーダータイプがあります。として宣言muordered[K] muます。

于 2015-11-06T12:44:19.973 に答える