3

モデルのすべてのパラメーターを推定したい多項モデル (4 つのモダリティがあります) を使用しています (3 つの最初のモダリティのそれぞれに 2 つのパラメーターがあるため、6 つのパラメーター)。私はそれを行うことができました。私の問題は、パラメーターに制約を追加して、最初のモダリティの確率が共変量で減少するようにしたいということxです。

したがって、次のものが必要であると計算します。

beta1^(1) + sum_(k=1 to 3) (beta1^(1)-beta1^(k)).exp(beta0^(k)+beta1^(k).x) < 0

runjagsJAGSを使ったRのパッケージを使っています。各サンプルについて、この制約が尊重されることを望みます。それは可能ですか?

通常は C/C++ ライブラリを使用し、各反復で条件をチェックし、条件が満たされない場合はこの反復のすべてのパラメーターを再サンプリングします。しかし、私は JAGS でそれを行う方法を見つけることができません (また、コラボレーションの理由から、C を使用できません)。

現在のコードは次のとおりです。

model <- "model{
  for(j in 1:(nb_rep-1)) {
    beta1[j] ~ dnorm(0, 0.1)
  }
  for(j in 1:(nb_rep-1)) {
    beta0[j] ~ dnorm(0, 0.01)
  }

  for(i in 1:n){
    y_eff[i] ~ dcat(q[i,1:nb_rep])
    for(k in 1:(nb_rep-1)){
      cal_exp[i,k] <- exp(beta0[k] + beta1[k]*x_eff[i])    
    }
    sum_exp[i] <- sum(cal_exp[i,1:(nb_rep-1)])
    for(j in 1:(nb_rep-1)){     
      q[i,j] <- exp(beta0[j] + beta1[j]*x_eff[i]) / (1 + sum_exp[i])
    }
    q[i,nb_rep] <- 1 - sum(q[i,1:(nb_rep-1)])
  }
}"

よろしくお願いいたします。

一番

4

0 に答える 0