我试图将一些有测量误差的观测值与其他没有测量误差的数据进行拟合。如何考虑pyMC3中的测量误差?我有以下方法,这似乎给了我合理的结果,但这是正确的方法吗?在
n_samples = 20000
with pymc3.Model() as predictive_model:
intercept = pymc3.Normal('Intercept',mu=1.0,sd=0.2)
exponent = pymc3.Normal('A',mu=4.2,sd=0.15)
likelihood = pymc3.Normal('Observed',
mu=intercept*x_values**exponent,
observed=observed_values,
sd=observed_errors)
start = pymc3.find_MAP()
step = pymc3.NUTS(scaling=start)
trace_predictive = pymc3.sample(n_samples, step, start=start,njobs=4)
其中x_values
、observed_values
和{
看起来你有一个模型
C x^A
,但你相信你收集的数据看起来像C x^A + eps
。你似乎也知道测量误差是多少(这让我很惊讶!)在如果你的目标是推断截距},我会这样写模型:
C
,指数A
,和测量噪声{(请注意,现在有比
MAP
更好的初始化方法,它们会被自动选择!)在相关问题 更多 >
编程相关推荐