Próbuję bardzo prostego modelu: dopasowanie Normalnego, w którym zakładam, że znam precyzję i chcę tylko znaleźć środek. Poniższy kod wydaje się poprawnie pasować do Normalnego. Ale po dopasowaniu chcę próbkować z modelu, tj. Generować nowe dane, które są podobne do mojej data
zmiennej. Wiem, że mogę użyć trace("mean")
do pobrania próbek dla zmiennej średniej. Ale jak mogę uzyskać nowe próbki z samego modelu?
Przeglądałem dokumenty np . Http://pymc-devs.github.io/pymc/database.html#accessing-sampled-data . Spojrzałem również na kilka przykładów, np. Katastrofy wydobywcze i kilka z notatników Probabilistic Programming, i żaden z nich o tym nie wspomina. Ja (mniej więcej początkujący MCMC) spodziewałem się, że próbowanie z dopasowanego modelu było najważniejsze! czego mi brakuje?
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")?