STANでスイッチポイント解析をしようとしています。y
ガウス確率変数の 2 つの異なるシーケンスを持つデータ ベクトルがあります。目標は、シフトが発生した可能性がある時期の事後分布を見つけることです。実行に使用RStan
していますが、エラーは STAN 内にあります。
これは STAN コードです。
data {
int N;
vector[N] y;
}
parameters {
real mu1;
real sigma1;
real mu2;
real sigma2;
real<lower=0, upper=N> shift;
}
model {
int i_shift <- round(shift);
for(n1 in 1:i_shift)
y[n1] ~ normal(mu1, sigma1);
for(n2 in i_shift:N)
y[n2] ~ normal(mu2, sigma2);
}
パーサー (Rstudio に付属) は次のエラーを返します。
SYNTAX ERROR, MESSAGE(S) FROM PARSER:
ERROR at line 13
11: }
12: model {
13: int i_shift <- round(shift);
^
14: for(n1 in 1:i_shift)
PARSER EXPECTED: ";"
Error in stanc(model_code = paste(program, collapse = "\n"), model_name = model_cppname, :
failed to parse Stan model due to the above error.
キャストを行う変数の割り当てを処理できないのはなぜですか? STAN では、この種の分析に別のパターンが必要ですか。で整数変数を作成しようとしましたparameters
が、STAN はランダム整数変数をサポートしていないようで、連続変数のみをサポートしています。