pym中的一般混合模型

2024-10-01 00:33:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有多个驼峰分布。我想尝试将几种不同类型的分布拟合到每个驼峰、高斯分布、指数分布、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()

这样的授权有可能吗?有标准的方法吗?最重要的是,我无法想出任何方法将变量集合在一起。在


Tags: 方法类型modelreturnvaluedef情况random
1条回答
网友
1楼 · 发布于 2024-10-01 00:33:18

你在正确的轨道上。您的stochastic装饰器可以简化为:

@observed
def mixture(...):
    ...

另外,如果需要从可能性中取样,只需要定义random。在

另一种建模混合体的方法是使用潜在变量模型,其中单个观测值具有对应于它们来自哪个分布的指标。例如,可以用分类分布来模拟这些指标。这样就可以有一个Dirichlet优先级,等等

相关问题 更多 >