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