- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在手动计算 Von Mises 分布的参数,并想与 Scipy Von Mises 拟合函数进行比较。
我从拟合函数中得到不一致的结果。
我的两个数据集是 d1 = [0.8pi,0.9pi] 和 d2 = [0.2pi,0.1pi]
我的 python 函数如下:
def calc(data):
'''Takes a 1-D dataset and uses the scipy von mises to learn parameters and also calculates them by hand
using the regular M.L estimation for mean and the bannerjee et al (2005) approximation for concentraion factor
params: 1-D dataset in radians
'''
res = vonmises.fit(data, fscale=1)
mu = np.arctan(sum(np.sin(data))/sum(np.cos(data)))
A = sum(np.cos(data))*(1/len(data))*np.cos(mu)+sum(np.sin(data))*np.sin(mu)*(1/len(data))
k = A*(2-A**2)/(1-A**2)
print('mu and k by hand: ', mu, k)
print('mu and k from fit function', res[1],res[0])
我的结果如下:
输出:
>d1:
mu and k by hand: 0.471238898038 41.3480495503
mu and k from fit function 0.471238858132 40.8666881759
>d2:
mu and k by hand: -0.471238898038 -41.3480495503
mu and k from fit function 2.67035368203 40.8666556123
如您所见,d2 的 mu 不同。 k 有不同的符号。然而,d1 非常相似。
我不确定为什么会出现这种差异。我想知道我的手工估计是否有问题。我正在使用 Bishop 的模式识别教科书第 109 页中的 M.L.E 估计。任何见解都值得赞赏。
最佳答案
问题出在mu
的计算上:
mu = np.arctan(sum(np.sin(data))/sum(np.cos(data)))
arctan
只会让你的角度介于 -pi/2 和 +pi/2 之间。它不知道自己在圆的哪个象限。考虑一下:arctan(1/1)
与 arctan(-1/-1)
相同。两者都会产生 45 度的角度,但后者可能应该是 135 度。
有一个不同的函数,arctan2
,它知道两个符号,因为它有两个参数。这应该会给你预期的结果:
mu = np.arctan2(sum(np.sin(data)), sum(np.cos(data)))
一般来说,当你需要做 arctan(y/x)
时,你通常需要 arctan2(y, x)
除非你事先知道角度的范围期待。
关于python - 估计 Von Mises 分布的参数 Scipy - 不一致的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47746500/
我想计算或至少估计放置在相机/kinect 前面的物体的体积。知道我应该从哪里开始吗?你推荐 OpenCV 吗?您是否推荐任何其他技术,例如声纳/激光? 最佳答案 一直在用 OpenCV 2.3 编写
我想知道 MySQL 对表中总行数的 TABLE_ROWS 估计值是否有限制或保证误差范围? 最佳答案 如果它与 SHOW TABLE STATUS 发出的数字类似,则至少会偏差 +/- 40%,有时
我们都曾 mock 过“还剩 X 分钟”的对话框,它似乎过于简单,但我们如何改进它呢? 实际上,输入是截至当前时间的一组下载速度,我们需要使用它来估计完成时间,也许带有确定性指示,例如使用一些 Y%
我们都曾 mock 过“还剩 X 分钟”的对话框,它似乎过于简单,但我们如何改进它呢? 实际上,输入是截至当前时间的一组下载速度,我们需要使用它来估计完成时间,也许带有确定性指示,例如使用一些 Y%
我的理解是 glmnet 采用矩阵,其中每一列都是一个解释变量。 我有一个包含约 10 个解释变量的数据框(其中一些是因子) 我怎样才能使用诸如 y~(x1*x2*x3)+(x4*x5)+x6 之类的
有没有办法估计运行 R 的时间?命令而不实际运行它或仅部分运行命令? 我知道 system.time()存在但需要运行整个命令然后它给出了花费的时间。 最佳答案 还有http://www.ats.uc
在尝试使用 libGD 在 PHP 中调整图像大小之前,我想检查是否有足够的内存来执行操作,因为“内存不足”会完全杀死 PHP 进程并且无法被捕获。 我的想法是,原始图像和新图像中的每个像素 (RGB
我有一些 VHDL 文件,我可以在 Debian 上用 ghdl 编译它们。一些人已将相同的文件改编为 ASIC 实现。算法有一个“大面积”实现和一个“紧凑”实现。我想编写更多实现,但要评估它们,我需
我在 Amazon EC2 上使用 RStudio 0.97.320 (R 2.15.3)。我的数据框有 20 万行和 12 列。 我正在尝试使用大约 1500 个参数来拟合逻辑回归。 R 使用 7%
我目前正在估算一个新项目。假设只有一名开发人员在处理它,我的高水平估计是 25 周。 实际上会有两个开发人员并行工作。减少估计的什么因素是合理的? (我意识到不会是0.5) 最佳答案 根据原始开发人员
我试图更好地理解创建 Postgres 索引所涉及的权衡。作为其中的一部分,我很想了解通常使用多少空间索引。我已通读 the docs ,但找不到这方面的任何信息。我一直在做自己的小实验来创建表和索引
我对 Azure 平台相当陌生,需要一些有关 Azure 搜索服务成本估算的帮助。每个月我们都会有大约 500GB 的文件被放入 Azure Blob 存储中。我们希望仅根据文件名使用 Azure 搜
我正在尝试最大化横截面面板数据中的数据点数量。我的矩阵结构如下,y 轴为年份,x 轴为国家/地区: A B C D 2000 NA 50 NA
如果我有两个时间序列,例如: t f1 #[1] 0.25 #> f2 #[1] 0.25 f phase_difference #[1] 0.5 这意味着时间序列相移 pi/2,因为它们应该根据
我对 Azure 平台相当陌生,需要一些有关 Azure 搜索服务成本估算的帮助。每个月我们都会有大约 500GB 的文件被放入 Azure Blob 存储中。我们希望仅根据文件名使用 Azure 搜
我使用了以下 R 包:mice、mitools 和 pROC。 基本设计:3 个预测变量度量,在 n~1,000 的数据缺失率在 5% 到 70% 之间。 1 个二进制目标结果变量。 分析目标:确定
如何使用 lsmeans 来估计两个成对对比的差异?例如——想象一个连续的 dv 和两个因子预测变量 library(lsmeans) library(tidyverse) dat % fac
我制作了一个使用 BigDecimal 的科学计算器。它有一个特别消耗资源的功能:阶乘。现在,输入任何数字都会启动计算。根据运行此代码的设备,答案会在不同的时间显示。输入像 50000 这样的巨大值!
我已经发出了 sympy 命令来求解某个方程或另一个方程。现在已经好几天了,我不知道什么时候能完成。 我可以使用 sympy 来记录调用 .solvers.solve 的进度吗?如果不是,我如何估计
最近我得到了一些 error C6020: Constant register limit exceeded at variable; more than 1024 registers needed
我是一名优秀的程序员,十分优秀!