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

使用 Stan

如何解决使用 Stan

下面给出了我用 stan 编写的分层模型,

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[K,N] mu;
     vector[4] v;

     for (i in 1:K)
       v[i]=1;
     
     for (i in 1:N)
       mu[,i]=lambda_hat*X[i,]';
       

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

然后我运行了下面的代码

rt = stan(file = "mystancode.stan",data = dataList,iter=2000,warmup=1500,chains = 4,thin=25)

显示错误如下,

**链 1:拒绝初始值: 链 1:评估初始值的对数概率时出错。 链 1:例外:inv_wishart_lpdf:随机变量的 LDLT_Factor 不是正定的。最后一个条件方差是 -1.61381。 (在第 26 行的“modeld4ca7d2dbf_mystancode”中)

链 1:拒绝初始值: 链 1:评估初始值的对数概率时出错。 链 1:例外:inv_wishart_lpdf:随机变量的 LDLT_Factor 不是正定的。最后一个条件方差是 -16.0546。 (在第 26 行的“modeld4ca7d2dbf_mystancode”中)

链 1:拒绝初始值: 链 1:评估初始值的对数概率时出错。 链 1:例外:inv_wishart_lpdf:随机变量的 LDLT_Factor 不是正定的。最后一个条件方差是 11.1906。 (在第 26 行的“modeld4ca7d2dbf_mystancode”中)

链 1:拒绝初始值: 链 1:评估初始值的对数概率时出错。 链 1:例外:inv_wishart_lpdf:随机变量的 LDLT_Factor 不是正定的。最后一个条件方差是 -1.29482。 (在第 26 行的“modeld4ca7d2dbf_mystancode”中)

链 1:拒绝初始值: 链 1:评估初始值的对数概率时出错。 链 1:例外:inv_wishart_lpdf:随机变量的 LDLT_Factor 不是正定的。最后一个条件方差是 -1.612。 (在第 26 行的“modeld4ca7d2dbf_mystancode”中)

链 1:拒绝初始值: 链 1:评估初始值的对数概率时出错。 链 1:例外:inv_wishart_lpdf:随机变量的 LDLT_Factor 不是正定的。最后一个条件方差是 0.623838。 (在第 26 行的“modeld4ca7d2dbf_mystancode”中)

链 1:拒绝初始值: 链 1:评估初始值的对数概率时出错。 链 1:例外:inv_wishart_lpdf:随机变量的 LDLT_Factor 不是正定的。最后一个条件方差是 0.701463。 (在第 26 行的“modeld4ca7d2dbf_mystancode”中)

链 1:拒绝初始值: 链 1:评估初始值的对数概率时出错。 链 1:例外:inv_wishart_lpdf:随机变量的 LDLT_Factor 不是正定的。最后一个条件方差是 0.904612。 (在第 26 行的“modeld4ca7d2dbf_mystancode”中)

链 1:拒绝初始值: 链 1:评估初始值的对数概率时出错。 链 1:例外:inv_wishart_lpdf:随机变量的 LDLT_Factor 不是正定的。最后一个条件方差是 -1.10447。 (在第 26 行的“modeld4ca7d2dbf_mystancode”中)

链 1:拒绝初始值: 链 1:评估初始值的对数概率时出错。 链 1:例外:inv_wishart_lpdf:随机变量的 LDLT_Factor 不是正定的。最后一个条件方差是 0.706109。 (在第 26 行的“modeld4ca7d2dbf_mystancode”中)

链 1:拒绝初始值: 链 1:评估初始值的对数概率时出错。 链 1:例外:inv_wishart_lpdf:随机变量的 LDLT_Factor 不是正定的。最后一个条件方差是 3.27242。 (在第 26 行的“modeld4ca7d2dbf_mystancode”中)

链 1:拒绝初始值: 链 1:评估初始值的对数概率时出错。 链 1:例外:inv_wishart_lpdf:随机变量的 LDLT_Factor 不是正定的。最后一个条件方差是 40.5057。 (在第 26 行的“modeld4ca7d2dbf_mystancode”中)

链 1:拒绝初始值: 链 1:评估初始值的对数概率时出错。 链 1:例外:inv_wishart_lpdf:随机变量的 LDLT_Factor 不是正定的。最后一个条件方差是 -1.54971。 (在第 26 行的“modeld4ca7d2dbf_mystancode”中)

链 1:拒绝初始值: 链 1:评估初始值的对数概率时出错。 链 1:例外:inv_wishart_lpdf:随机变量的 LDLT_Factor 不是正定的。最后一个条件方差是 0.638855。 (在第 26 行的“modeld4ca7d2dbf_mystancode”中)

链 1: 链 1: (-2,2) 之间的初始化在 100 次尝试后失败。 链 1:尝试指定初始值、缩小约束值的范围或重新参数化模型。 **

请帮我建议代码有什么问题?是否有任何先验方差协方差矩阵可以帮助我解决上述问题?

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