Hello Thank you. I am trying to run it but it is coming up with an error. Here is the full code:
model_code ="""
data {
int<lower=1> T; // Number of timesteps
vector[T] y; // observed value
int<lower=0> P;
matrix[T,P] X; // covariate
}
parameters {
real<lower=0> sigma_mu;
real<lower=0> sigma_mu_1;
real<lower=0> sigma_delta;
real<lower=0> sigma_delta_1;
real<lower=0> sigma_y;
vector[P] beta;
real<lower=0> nu;
vector[T] mu;
vector[T] delta;
}
transformed parameters {
}
model {
sigma_mu_1 ~ cauchy(0,5);
sigma_mu ~ cauchy(0,5);
sigma_delta_1 ~ cauchy(0,5);
sigma_delta ~ cauchy(0,5);
sigma_y ~ cauchy(0,5);
beta ~ normal(0,5);
mu[1] ~ normal(0, sigma_mu_1);
delta[1] ~ normal(0, sigma_delta_1);
for(t in 2:T){
mu[t] ~ normal(mu[t-1] + delta[t-1],sigma_mu);
delta[t] ~ normal(delta[t-1],sigma_delta);
}
nu ~ cauchy(0,5);
for(t in 1:T){
y[t] ~ student_t(nu,mu +X[t]*beta , sigma_y);
}
}
generated quantities {
vector[T] y_predict;
vector[T] log_lik;
for (t in 1:T) {
y_predict[t] = student_t_rng(nu, mu[t]+X[t]*beta , sigma_y);
log_lik[t] = student_t_lpdf(y[t] |nu,mu[t]+X[t]*beta , sigma_y);
}
}
ââ"
unmet_model = pystan.StanModel(model_code=model_code)
X = unmet_data[[âChildren_in_1000_levelâ,âUnemploy_per_100_levelâ]]
data = dict(T=len(unmet_data), y=unmet_data.Unmet_need_level_per_100, X = X, P =(len(X.columns)))
fit_unmet_model = unmet_model.sampling(data=data,iter=1000, chains=4, control=dict(max_treedepth=12))
import arviz as az
idata = az.from_pystan(posterior=fit_unmet_model, posterior_predictive=[ây_predictâ])
ax = az.plot_ppc(idata, data_pairs={âyâ: ây_predictâ})
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
** 81 import arviz as az**
** 82 idata = az.from_pystan(posterior=fit_unmet_model, posterior_predictive=[ây_predictâ])**
â> 83 ax = az.plot_ppc(idata, data_pairs={âyâ: ây_predictâ})
~\Anaconda3\lib\site-packages\arviz\plots\ppcplot.py in plot_ppc(data, kind, alpha, mean, observed, color, grid, figsize, textsize, data_pairs, var_names, filter_vars, coords, flatten, flatten_pp, num_pp_samples, random_seed, jitter, animated, animation_kwargs, legend, ax, backend, backend_kwargs, group, show)
** 196 for groups in ("{}_predictive".format(group), âobserved_dataâ):**
** 197 if not hasattr(data, groups):**
â 198 raise TypeError(
** 199 âdata
argument must have the group â{group}â for ppcplotâ.format(group=groups)**
** 200 )**
TypeError: data
argument must have the group âobserved_dataâ for ppcplot