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