狄利克雷分布混合物的归一化常数是无界的



我需要计算python中狄利克雷分布的混合PDF。但对于每个混合物组分,都有一个归一化常数,它是以超参数之和的伽玛函数为分子的反贝塔函数。因此,即使对于大小为"60"的超参数之和,它也是无界的。请建议我解决这个问题。当我忽略归一化常数时会发生什么?

首先,问题不在于NC本身的计算。对于一个狄利克雷,我没有问题。但我这里有一个狄利克雷乘积的混合物,所以每个混合物成分都是许多狄利克雷的乘积,每个狄利克雷都有自己的NCs。所以这些的乘积是无界的。关于我的目标,我有一个p(s,T,O)的联合分布,其中"s"是离散的,"T"one_answers"O"是狄利克雷变量,即一组参数向量,其和为"1"。现在,由于s是离散的和有限的,我有|s|每个s的dirichlet分量的乘积的混合集。现在我的目标是找到p(s|T,O)。所以我直接替换一个特定的(T,O),并计算每个p(的'|T,O’)的值。为此,我需要计算NC。如果只有一个混合物成分,那么我可以忽略范数常数,calc.和renormalize,但由于我有几个混合物成分,每个成分都有不同的缩放比例,所以我不能renormalise。这是我的难题。

一些想法。(1) 为了精确地计算归一化因子,也许你可以重写gamma函数,通过gamma(a\i+1)=a_i-gama(a_i)(a_i不需要是整数,让基本情况是a_i<1),然后你会在分子和分母中有sum(a\i,i,1,n)项,你可以对它们进行重新排序,这样你就可以用最大项除以最大项,并将这些单个比率相乘,而不是计算一个巨大的分子和一个巨大分母并将其除以。(2) 如果你不需要精确,也许你可以应用斯特灵近似。(3) 也许你根本不需要pdf。出于某些目的,您只需要一个与pdf成比例的函数。我相信马尔可夫链蒙特卡罗就是这样。那么,你在这里想要实现的更大目标是什么呢?

最新更新