我有一个带有多个驼峰的分布。我想尝试为每个驼峰、高斯、指数、weibuill 等拟合几种不同类型的分布。但是,就目前而言,我似乎必须为每个组合手动定义一个随机类。我想做的是
@stochastic(model_a, model_b, observed=True)
def mixture(value=observed_time_series, model_a_parameters, model_b_parameters, p):
def logp(value, model_a_parameters, model_b_parameters):
return p*model_a.logp(value, *model_a_parameters) + (1-p)*model_b.logp(value, *model_b_parameters)
def random(model_a_parameters, model_b_paramters, ratio):
if(random() < ratio):
return model_a.random()
return model_b.random()
这样的委托可以吗?有没有标准的方法来做到这一点?阻止上述情况的主要事情是我想不出任何方法将变量集组合在一起。