Код Rstan для байесовской многовариантной линейной модели с обратной гаммой, как и для сигмы - PullRequest
0 голосов
/ 10 апреля 2020

Код в стандартном файле (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);
 }

Ниже приведен код R для активации Rstan

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 ~ нормальный (бета [1] + бета [2: 9] * x , сигма);

Ошибка 2: (без ингаммы для выборка сигмы в stan?)

Функция вероятности должна заканчиваться на _lpdf или _lpmf. Найденное семейство распределений = invgamma без соответствующей функции вероятности invgamma_lpdf, invgamma_lpmf или invgamma_log

...