RStan - 定义多元模型的问题

问题描述

模型的代码是,

data {
    int<lower=0> N;
    int<lower=0> K;
    matrix[N,K] y;
     matrix[N,K] X;
    
  }
   parameters {
     matrix[K,K] lambda_hat;
     matrix[K,K] sigma_0;
     matrix[K,K] L;
   }
   transformed parameters {
     matrix[N,K] mu;
     vector[4] v;
     for (i in 1:K)
       v[i]=1;
     
     for (i in 1:N)
       mu[i,]'=lambda_hat*x[i,]';

   }
   model {
     L~ wishart(K,diag_matrix(v));
     sigma_0~ wishart(K,L);
     lambda_hat~ wishart(K,L);
     for (t in 1:N)
       y[t,]'~ multi_normal(y[(t-1),]'+mu[t,]',sigma_0);
   }

运行此代码时出现以下错误

rt = stanc("mystancode.stan")

得到的错误是, *语法错误,来自解析器的消息: 以非空表达式开头的非法语句被解析为 转置(mu[i,:]) 不是合法的赋值、采样或函数语句。请注意

  • 赋值语句只允许变量(带有可选索引)在左边;
  • 采样语句允许左侧的任意值表示表达式。
  • 用作语句的函数必须声明为无效返回

“model2e850c17b4_mystancode”第 20 行第 7 列中的错误

18:      
19:      for (i in 1:N)
20:        mu[i,]';
          ^
21: 

分析器预期: stanc("mystancode.stan") 中的错误: 由于上述错误,无法解析 Stan 模型“mystancode”。*

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)