Python & Scipy: 如何拟合von mises分布?

11

我正在尝试拟合一个来自scipy的von Mises分布 (http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.vonmises.html)

所以我试过了

from scipy.stats import vonmises
kappa = 3
r = vonmises.rvs(kappa, size=1000)
plt.hist(r, normed=True,alpha=0.2)

它返回

在此输入图片描述

然而,当我将数据适配到它上面时

vonmises.fit(r)
# returns (1.2222011312461918, 0.024913780423670054, 2.4243546157480105e-30)

vonmises.fit(r, loc=0, scale=1)
# returns (1.549290021706847, 0.0013319431181202394, 7.1653626652619939e-29)

但是返回的所有值都不是 Von Mises 参数 kappa。

返回的值是什么?我觉得第二个是 loc,或者是均值。但是我不知道第一个返回值是什么。

我应该如何拟合 Von Mises 分布?


返回的值按顺序依次为 kappalocscale - abcd
1个回答

15

返回的值为kappa、loc和scale。不幸的是,冯·米塞斯概率密度函数似乎不适合拟合。如果您固定比例,它确实可以正确拟合:

>>> vonmises.fit(r, fscale=1)
(2.994517240859579, -0.0080482378119089287, 1)

救了我的命!这应该被放进文档里! - ZK Zhao
@cqcn1991 其中一些内容在 scipy 文档 中 :) 。我也尝试过更改拟合的优化器,但似乎没有帮助。 - Tim Fuchs
无论如何,比例参数对于von Mises分布没有任何意义。该分布在圆上。它不能被缩放。 - Neil G

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接