2017-11-15 2 views

Antwort

0

Es fehlte plt.show(). Ich habe den vollständigen Code unten eingefügt.

import pystan 
import matplotlib.pyplot as plt 

schools_code = """ 
data { 
    int<lower=0> J; // number of schools 
    real y[J]; // estimated treatment effects 
    real<lower=0> sigma[J]; // s.e. of effect estimates 
} 
parameters { 
    real mu; 
    real<lower=0> tau; 
    real eta[J]; 
} 
transformed parameters { 
    real theta[J]; 
    for (j in 1:J) 
    theta[j] = mu + tau * eta[j]; 
} 
model { 
    eta ~ normal(0, 1); 
    y ~ normal(theta, sigma); 
} 
""" 

schools_dat = {'J': 8, 
       'y': [28, 8, -3, 7, -1, 1, 18, 12], 
       'sigma': [15, 10, 16, 11, 9, 11, 10, 18]} 

sm = pystan.StanModel(model_code=schools_code) 
fit = sm.sampling(data=schools_dat, iter=1000, chains=4) 
print(fit) 
fit.plot() 

plt.show()