贝叶斯多元线性模型的Rstan代码,反伽玛为sigma的先验

时间:2020-04-10 15:46:01

标签: r rstan

stan文件(sp2.stan)中的代码

 data {
   //Data objects declared
   int<lower=0> N; //Sample size for MCMC simulations
   vector[N] y; 
   matrix[8,N] x;
 }

 parameters {
   //Model parameter objects declared
   vector[9] beta;
   real<lower=0> sigma; 
 }

 model {
   //Prior distributions 
    beta ~ normal(0,10);
   //sigma ~ gamma(5,5);use it to convert inverse gamma
     sigma ~ invgamma(5,5);
   //Likelihood 
   y ~ normal(beta[1] + beta[2:9] * x, sigma);
 }

下面是激活Rstan的R代码

dim(sp500)
[1] 455   9

xs<-as.matrix(sp500[,1:8])

# Declare data for Stan
y <- sp500$spr
x <- xs
N <- nrow(sp500)
datax <- list(N=N, x=x, y=y)
# Run Stan
mod <- stan(file ="sp2.stan", data=datax, chains=1, iter=500)

错误1:x表达式格式错误

y〜normal(beta [1] + beta [2:9] * x ,sigma);

错误2:(stan的sigma采样没有invgamma吗?)

概率函数必须以_lpdf或_lpmf结尾。找到的分配族= invgamma,无 相应的概率函数invgamma_lpdf,invgamma_lpmf或invgamma_log

0 个答案:

没有答案