আমি খুব সাধারণ মডেলটি চেষ্টা করছি: এমন একটি নরমাল ফিটিং করছি যেখানে আমি অনুমান করি যে আমি নির্ভুলতা জানি, এবং আমি কেবল এটির সন্ধান করতে চাই। নীচের কোডটি স্বাভাবিকের সাথে সঠিকভাবে ফিট করে বলে মনে হচ্ছে। তবে ফিটিংয়ের পরে, আমি মডেল থেকে নমুনা নিতে চাই, অর্থাৎ নতুন ডেটা তৈরি করতে পারি যা আমার data
ভেরিয়েবলের অনুরূপ । আমি জানি আমি trace("mean")
গড় পরিবর্তনশীলের জন্য নমুনা পেতে ব্যবহার করতে পারি। তবে আমি কীভাবে মডেল থেকে নতুন নমুনা পেতে পারি?
আমি দস্তাবেজগুলি দেখেছি যেমনঃ http://pymc-devs.github.io/pymc/database.html#accessing- স্যাম্পলড- ডেটা । আমি বেশ কয়েকটি উদাহরণও দেখেছি, যেমন খনিজ বিপর্যয় এবং সম্ভাব্য প্রোগ্রামিং নোটবুকগুলি থেকে কয়েকটি, এবং এর কোনওটিই উল্লেখ করে না। আমি (কমবেশি একজন এমসিসিএম শিক্ষানবিশ) প্রত্যাশা করেছি যে লাগানো মডেল থেকে স্যাম্পলিং পুরো বিষয়টি ছিল! আমি কী মিস করছি?
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")?