我是 pymc3 的新手,我读过《黑客贝叶斯方法》,并尽最大努力完成 pymc3 中现有的生存分析教程。但是,我不明白如何编写/解释“生存函数”。
对于这个问题,我从 NIST 定义的威布尔分布中生成了一些虚拟数据:
n = 1000
alpha = 1
gam = 0.5
mu = 0
noise = np.random.normal(0, 0.025, [n, 1])
x = np.random.rand(n, 1)*10
f_x = (gam/alpha)*(((gam-mu)/alpha)**(gam-1))*np.exp(-((x-mu)/alpha)**gam)
y = f_x + noise
Run Code Online (Sandbox Code Playgroud)
由于我想创建一个包含审查数据和未经审查数据的模型,例如贝叶斯参数化的 pymc3教程,因此我实现了截止并审查了这些数据点:
cens = np.array([1 if k < 7.5 else 0 for k in x])
Run Code Online (Sandbox Code Playgroud)
然后我开始根据先验建立我的模型:
with pm.Model() as survival_model:
alpha0 = pm.Normal('alpha0', mu=1, sigma = 1)
gam0 = pm.Normal('gam0', mu=0.5, sigma = 1)
mu0 = pm.Normal('mu0', mu=0.0, …Run Code Online (Sandbox Code Playgroud)