微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R stan 在运行分层贝叶斯模型时显示奇怪的错误消息

如何解决R stan 在运行分层贝叶斯模型时显示奇怪的错误消息

我正在尝试从该模型的后验样本中进行采样: enter image description here

x 是一个 10x1 的向量,mu 是一个 10x1 的向量,sigma 是一个 10x10 的矩阵,psi_0 是一个 10x10 的矩阵,粗体 1 是一个 5x1 的统一向量,其余的都是标量。 F 和 E 是我们分析中两组股票的下标(我们正在进行投资组合优化)。我尝试运行以下代码

stancode <- "data {
  int<lower=1> T;
  matrix[T,10] data_total; 
  real<lower=0> sigma_squared;
  real k;
  real<lower=0> r_squared;
  matrix[10,10] psi;
}

parameters {
  vector[10] mu_var;
  matrix[10,10] Sigma_var;
  real alpha_energy_var;
  real alpha_fin_var;
  real beta;
}

transformed parameters {
  vector[10] mu_mean;
  mu_mean = [alpha_fin_var,alpha_fin_var,alpha_energy_var,alpha_energy_var]';
}

model {
  target += normal_lpdf(beta | k,sqrt(r_squared));
  target += inv_wishart_lpdf(Sigma_var | 12,psi);
  target += normal_lpdf(alpha_energy_var | beta,sqrt(sigma_squared));
  target += normal_lpdf(alpha_fin_var | beta,sqrt(sigma_squared));
  target += multi_normal_lupdf(mu_var | mu_mean,Sigma_var);
  target += multi_normal_lupdf(data_total | mu_var,Sigma_var);
}"

stanmodel <- stan_model(model_code = stancode,model_name="stanmodel")

(data_total 是数据矩阵,添加“_var”后缀只是为了与其余代码保持一致)

最后一行给了我一个错误:PARSER EXPECTED: "(",关于模型代码的倒数第二行。我在 Stack 上看到这种错误发生时也让更多的专业开发人员感到困惑。

>

谁能帮帮我?我真的不明白出了什么问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。