由于我是一名试图学习更多统计信息的软件工程师,因此我什至在开始之前就必须原谅我,所以这是一个严重的问题。
我一直在学习PyMC,并通过一些(非常)简单的示例进行研究。我无法使用(并且无法找到任何相关示例)的一个问题是将模型拟合到由两个正态分布生成的数据。
假设我有1000个值;从a生成Normal(mean=100, stddev=20)
500个,从a生成另一个500个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
还是之间的“决定” m2
。
也许我只是完全采用了错误的方法来对此建模?谁能给我指出一个例子?我可以读BUGS和JAGS,所以真的没事。