Saya mencoba model yang sangat sederhana: pas Normal di mana saya menganggap saya tahu presisi, dan saya hanya ingin menemukan mean. Kode di bawah ini tampaknya sesuai dengan Normal dengan benar. Tetapi setelah pas, saya ingin sampel dari model, yaitu menghasilkan data baru yang mirip dengan data
variabel saya . Saya tahu saya bisa menggunakan trace("mean")
untuk mendapatkan sampel untuk variabel rata-rata. Tetapi bagaimana saya bisa mendapatkan sampel baru dari model itu sendiri?
Saya telah melihat dokumen misalnya http://pymc-devs.github.io/pymc/database.html#accessing-sampled-data . Saya juga telah melihat beberapa contoh, misalnya bencana pertambangan, dan beberapa dari notebook Programming Probabilistic, dan tidak ada yang menyebutkan ini. Saya (kurang lebih seorang pemula MCMC) berharap bahwa pengambilan sampel dari model yang sesuai adalah intinya! Apa yang saya lewatkan?
from pymc import *
data = np.array([-1, 0, 4, 0, 2, -2, 1, 0, 0, 2, 1, -3, -1, 0, 0, 1, 0, 1])
mean = Uniform("mean", -4, 4)
precision = 2.0**-2
obs = Normal("obs", mean, precision, value=data, observed=True)
model = Model( {"mean": mean, "obs": obs})
mcmc = MCMC(model)
mcmc.sample(10000, 1000, 1)
# I can get samples for the "mean" variable
mean_samples = mcmc.trace("mean")[:]
hist(mean_samples)
# but how can I do the equivalent of mcmc.trace("obs")?