首页 > 解决方案 > 例外:rstan 中不存在变量:创建采样器失败

问题描述

我尝试在网站上找到与我类似的错误,但我找不到任何东西。我不确定我做错了什么,因为我不断收到以下错误消息。如果有人能解释为什么我不断收到错误,我将不胜感激。TIA

错误消息:new_CppObject_xp(fields$.module, fields$.pointer, ...) 中的错误:异常:变量不存在;处理阶段=数据初始化;变量名=j; 基本类型=int(在第 2 行的“model32487fbf6c2c_production”中)

未能创建采样器;采样未完成

Rcode

library(rstan)




 dat1 <- list(a1=0, b1= 1, a2 =0.1, b2 =0.5, j <-6, n <-c(3,7,4,8,5,9), x <-c(10,33,3,39,5,50))
 
 fit1 <- stan(file = "production.stan", data = dat1, chains = 3, iter = 1000,)
 
 print(fit1) 

标准代码

data {
  int < lower = 0 > j;
  int x[j];
  int n[j];
  real a1;
  real b1;
  real a2;
  real b2;
}

parameters {
  real < lower = 0 > lambda[j];
  real < lower = 0 > sigma;
  real mu;
}
transformed parameters {
  real lambdanew1 = lambda[1]. / n[1];
  real lambdanew2 = lambda[2]. / n[2];
  real lambdanew3 = lambda[3]. / n[3];
  real lambdanew4 = lambda[4]. / n[4];
  real lambdanew5 = lambda[5]. / n[5];
  real lambdanew6 = lambda[6]. / n[6];
}
model {
  target += poisson_lpmf(x[1] | lambda[1]);
  target += poisson_lpmf(x[2] | lambda[2]);
  target += poisson_lpmf(x[3] | lambda[3]);
  target += poisson_lpmf(x[4] | lambda[4]);
  target += poisson_lpmf(x[5] | lambda[5]);
  target += poisson_lpmf(x[6] | lambda[6]);
  target += lognormal_lpdf(lambdanew1 | mu, sigma);
  target += lognormal_lpdf(lambdanew2 | mu, sigma);
  target += lognormal_lpdf(lambdanew3 | mu, sigma);
  target += lognormal_lpdf(lambdanew4 | mu, sigma);
  target += lognormal_lpdf(lambdanew5 | mu, sigma);
  target += lognormal_lpdf(lambdanew6 | mu, sigma);
  target += uniform_lpdf(mu | a1, b1);
  target += uniform_lpdf(sigma | a2, b2);
}

标签: samplingrstan

解决方案


推荐阅读