估计 von Mises 分布的 kappa

机器算法验证 分布 估计 循环统计 冯米塞斯分布
2022-04-14 05:04:09

有没有办法计算参数的估计值κ来自 von Mises 分布的数据?

在 R 中似乎很容易做到,http: //rgm2.lab.nig.ac.jp/RGM2/func.php?rd_id=CircStats:A1inv,但是 python 没有 A1inv 函数来计算第一类和零阶贝塞尔函数。

3个回答

根据 Banerjee等人的说法。,使用 von Mises-Fisher Distributions (J. Mach. Learning Res. 6 (2005)) 在 Unit Hypersphere 上聚类,您可以估计 von Mises-Fisher 参数μκ以最大的可能性。

xi成为n维度上的点d从您的样品中。

r=ixi.

r¯=||r||2n(从重心到原点的欧几里得距离)。然后

μ^=r||r||2

(重心方向的单位向量)和

κ^r¯dr¯31r¯2

近似于最大似然估计,要准确找到的估计是(数字上)作为解

Id/2(κ)/Id/21(κ)=r¯.

Im第一类阶的修正贝塞尔函数m. 该近似值可以用作 Newton-Raphson 迭代的起点——但作者指出,与仅计算近似值的成本相比,对于“高维”数据,这可能“相当慢”。

查看R 的CircStats 包est.kappa()中的函数

在给定一组角度测量值的情况下,计算 kappa 的最大似然估计值,即 von Mises 分布的浓度参数。

是的,Von-Mises 分布族是指数族,因此您可以像对任何指数族一样找到其参数的最大似然估计:将期望参数设置为充分统计量的平均值T(x)=x我们将调用它的大小r¯. 您必须将这些参数转换为您的参数化后才能获得κ. 请参阅@mic 的等式答案。

以防万一您想知道如何在 Python 中实现 @mic 的解决方案:我会使用scipy.optimize 来查找函数的根:Bessel 函数的比率减去r¯.