由于我是一名试图了解更多统计数据的软件工程师,所以在我开始之前你必须原谅我,这是一个严肃的新手领域......
我一直在学习PyMC并研究了一些非常(非常)简单的例子。我无法开始工作(也找不到任何相关示例)的一个问题是将模型拟合到从两个正态分布生成的数据。
假设我有 1000 个值;500 从 a 生成Normal(mean=100, stddev=20)
,另外 500 从 a 生成Normal(mean=200, stddev=20)
。
如果我想为它们拟合模型,即使用 PyMC 确定两个均值和单个标准差。我知道这有点像......
mean1 = Uniform('mean1', lower=0.0, upper=200.0)
mean2 = Uniform('mean2', lower=0.0, upper=200.0)
precision = Gamma('precision', alpha=0.1, beta=0.1)
data = read_data_from_file_or_whatever()
@deterministic(plot=False)
def mean(m1=mean1, m2=mean2):
# but what goes here?
process = Normal('process', mu=mean, tau=precision, value=data, observed=True)
即,生成过程是正常的,但 mu 是两个值之一。我只是不知道如何表示一个值是否来自m1
or之间的“决定” m2
。
也许我只是完全采取了错误的方法来建模这个?谁能给我举个例子?我可以阅读 BUGS 和 JAGS,所以一切都很好。