J'ai:stan - difficulté vectorisation
mu_x - une matrice 10x10 de valeurs réelles
ptype - un 10000 à long vecteur
sender_name_type - un 10000 à long vecteur
Je voudrais trouver les valeurs de
x_real - 10000 un vecteur à long
Le code que j'ai actuellement, et travaille, est:
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);
}
}
Je voudrais cependant à vectoriser. Pour ce faire, je dois d'abord traiter de la clause if. Pour ce faire, j'ai essayé simplement d'ajouter deux distributions, comme ceci:
x_real ~ normal(mu_x[ptype,sender_name_type],0.1) * (1-x_avaiable) + normal(x,0.01) * x_available;
Cependant, Rstan semble gérer ne pas ajouter/multiplier les distributions. La deuxième approche que j'ai essayé était comme ceci:
x_real ~ normal(mu_x[ptype,sender_name_type],0.1);
x_real[x_available == 1] ~ normal(x,0.01);
est similaire à la première approche, mais il redéfinit les lignes de x_real, dont la condition est remplie. Cependant, il me donne l'erreur de
Aucun élément correspondant à:
réelle [] ~ normal (matrice, réel)
Comment puis-je vectoriser ma solution actuelle, si possible? Y a-t-il d'autres façons de l'accélérer?
Merci, c'était très utile. – user2089357