python模型检验_PyMC-Bernoulli模型检验
我目前正在嘗試與PyMC進(jìn)行模型檢查,我的模型是一個(gè)Bernoulli模型,我有一個(gè)Beta版本。我想做一個(gè)(I)gof圖和(ii)計(jì)算后驗(yàn)預(yù)測(cè)p值。在
我已經(jīng)用一個(gè)二項(xiàng)式模型運(yùn)行我的代碼,但是我很難找到使伯努利模型工作的正確方法。不幸的是,在任何地方都沒有我可以學(xué)習(xí)的例子。我的代碼如下所示:import pymc as mc
import numpy as np
alpha = 2
beta = 2
n = 13
yes = np.array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,0,0])
p = mc.Beta('p',alpha,beta)
surv = mc.Bernoulli('surv',p=p,observed=True,value=yes)
surv_sim = mc.Bernoulli('surv_sim',p=p)
mc_est = mc.MCMC({'p':p,'surv':surv,'surv_sim':surv_sim})
mc_est.sample(10000,5000,2)
import matplotlib.pylab as plt
plt.hist(mc_est.surv_sim.trace(),bins=range(0,3),normed=True)
plt.figure()
plt.hist(mc_est.p.trace(),bins=100,normed=True)
mc.Matplot.gof_plot(mc_est.surv_sim.trace(), 10/13., name='surv')
#here I have issues
D = mc.discrepancy(yes, surv_sim, p.trace())
mc.Matplot.discrepancy_plot(D)
我遇到的主要問(wèn)題是確定discrepancy函數(shù)的期望值。僅僅使用p.trace()在這里不起作用,因?yàn)檫@些是概率。不知何故,我需要在這里加入樣本量,但我正努力以一種類似于二項(xiàng)式模型的方式來(lái)實(shí)現(xiàn)這一點(diǎn)。我也不太確定,我是否正確地做了gof_plot。在
希望有人能幫我!謝謝!在
總結(jié)
以上是生活随笔為你收集整理的python模型检验_PyMC-Bernoulli模型检验的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: iOS图片转成视频方法
- 下一篇: 外贸公司邮箱怎么申请?往国外邮箱发邮件哪