我正在尝试使用 STAN 进行切换点分析。我有一个数据向量y
,它有两个不同的高斯随机变量序列。目标是找到可能发生转变的时间的后验分布。我正在使用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 似乎不支持随机整数变量,只有连续变量。