7
これはおそらく愚かな質問です。カスタムPyMCディストリビューションを定義する
私はPyMCでMCMC評価を使って非常に奇妙なPDFにデータを収めようとしています。この例では、通常のPDFを手動で入力する正規分布にどのようにフィットするかを知りたいだけです。私のコードは次のとおりです。
data = [];
for count in range(1000): data.append(random.gauss(-200,15));
mean = mc.Uniform('mean', lower=min(data), upper=max(data))
std_dev = mc.Uniform('std_dev', lower=0, upper=50)
# @mc.potential
# def density(x = data, mu = mean, sigma = std_dev):
# return (1./(sigma*np.sqrt(2*np.pi))*np.exp(-((x-mu)**2/(2*sigma**2))))
mc.Normal('process', mu=mean, tau=1./std_dev**2, value=data, observed=True)
model = mc.MCMC([mean,std_dev])
model.sample(iter=5000)
print "!"
print(model.stats()['mean']['mean'])
print(model.stats()['std_dev']['mean'])
私はすべてがmc.Normal、またはmc.Poissonやその他もろもろのようなものを使用しますが、私はコメントアウト密度関数に収まるようにしたい見つけた例。
ご協力いただければ幸いです。
すごく嬉しかったです。ありがとうございました。 – stellographer
@jcrudy。私はあなた自身の単純な事前を定義しようとするときあなたの答えにぶつかる。この質問の汚染を避けるために、私は自分の[ここ](http://stackoverflow.com/questions/23198247/custom-priors-in-pymc)を始めました。私はあなたがその中に光を当てることができるかどうか疑問に思っていました。ありがとう。 –