【发布时间】:2020-03-31 22:47:44
【问题描述】:
有没有办法从两个分布的总和中预测一个值?当我在这里尝试估计 y 时,我在 rstan 上遇到语法错误:y ~ binomial(,) + poisson()
library(rstan)
BH_model_block <- "
data{
int y;
int a;
}
parameters{
real <lower = 0, upper = 1> c;
real <lower = 0, upper = 1> b;
}
model{
y ~ binomial(a,b)+ poisson(c);
}
"
BH_model <- stan_model(model_code = BH_model_block)
BH_fit <- sampling(BH_model,
data = list(y = 5,
a = 2),
iter= 1000)
产生这个错误:
SYNTAX ERROR, MESSAGE(S) FROM PARSER:
error in 'model2c6022623d56_457bd7ab767c318c1db686d1edf0b8f6' at line 13, column 20
-------------------------------------------------
11:
12: model{
13: y ~ binomial(a,b)+ poisson(c);
^
14: }
-------------------------------------------------
PARSER EXPECTED: ";"
Error in stanc(file = file, model_code = model_code, model_name = model_name, :
failed to parse Stan model '457bd7ab767c318c1db686d1edf0b8f6' due to the above error.
【问题讨论】:
-
就日志密度而言,
y ~ foo(theta) + bar(phi)的符号应该是什么?您是否正在寻找x + y的分布x ~ binomial(a, b)和y ~ poisson(c)? -
嗨@BobCarpenter,是的,没错。我正在寻找 x + y 的分布,其中 x ~ binomial(a,b) 和 y ~ poisson(c)。当我在模型块中分离出术语时,我遇到了一个问题,我需要定义新参数“x”,它必须是一个整数。似乎整数不能在参数或转换的参数块中定义。我尝试在模型块中定义“int x”,但初始化失败(可能是因为未定义 x 的范围?)