1
mu_x - 实际值
的10×10矩阵p型 - 10000长的矢量
sender_name_type - 10000长的矢量
我想找到的价值
x_real - 10000长矢量
我现在有代码,和作品,是:
for(i in 1:N){
if(x_available[i]){
x_real[i]~normal(x[i],0.01);} else{
x_real[i]~normal(mu_x[ptype[i],sender_name_type[i]],0.1);
}
}
我喜欢然而,向量化它。要做到这一点,我首先需要处理if子句。为此,我尝试添加两个分布,如下所示:
x_real ~ normal(mu_x[ptype,sender_name_type],0.1) * (1-x_avaiable) + normal(x,0.01) * x_available;
但是,Rstan似乎无法处理添加/乘法分布。我想第二个办法是,像这样:
x_real ~ normal(mu_x[ptype,sender_name_type],0.1);
x_real[x_available == 1] ~ normal(x,0.01);
这类似于第一种方法,但它重新定义x_real的行,为此,满足条件。然而,它给了我
号的错误匹配:
真正[]〜NORMAL(矩阵,实)
我怎样才能向量化我目前的解决方案,如果可能的话?有没有其他方法可以加快速度?
谢谢,这是非常有益的。 – user2089357