scipy.stats.energy_distance¶
- scipy.stats.energy_distance(u_values, v_values, u_weights=None, v_weights=None)[源代码]¶
计算两个一维分布之间的能量距离。
1.0.0 新版功能.
- 参数
- u_values, v_valuesarray_like
在(经验)分布中观察到的值。
- u_weights, v_weightsARRAY_LIKE,可选
每个值的权重。如果未指定,则为每个值指定相同的权重。 u_weights (请回复。 v_weights )的长度必须与 u_values (请回复。 v_values )。如果权重和不同于1,则它必须仍然是正数和有限的,以便可以将权重规格化为和为1。
- 退货
- distance浮动
计算的分布之间的距离。
注意事项
两个分布之间的能量距离 \(u\) 和 \(v\) ,其各自的CDF为 \(U\) 和 \(V\) ,等于:
\[D(u,v)=\Left(2\mathbb E|X-Y|-\mathbb E|X-X‘|- \mathbb E|Y-Y‘|\右)^{1/2}\]哪里 \(X\) 和 \(X'\) (请回复。 \(Y\) 和 \(Y'\) )是独立的随机变量,其概率分布为 \(u\) (请回复。 \(v\) )。
如中所示 [2], 对于一维实值变量,能量距离与Cramér-von Mises距离的非分布自由版本相关联:
\[d(u,v)=\sqrt{2}l_2(u,v)=\Left(2\int_{-\infty}^{+\infty}(U-V)^2 \右)^{1/2}\]请注意,常用的Cramér-von Mises准则使用的是距离的无分布版本。看见 [2] (第2节),了解有关两个版本距离的更多详细信息。
输入分布可以是经验的,因此来自其值是函数的有效输入的样本,或者它们可以被视为广义函数,在这种情况下,它们是位于指定值的狄拉克增量函数的加权和。
参考文献
- 1
- 2(1,2)
“电子统计:统计样本的能量”。保龄球场州立大学数学与统计系,技术报告02-16(2002)。
- 3
塞凯利·里佐:“能量距离”。“威利跨学科评论:计算统计学”,第8期(1):27-38页(2015)。
- 4
Bellemare,Danihelka,Dabney,Mohamed,Lakshminarayanan,Hoyer,Munos“作为解决有偏见的瓦瑟斯坦梯度的克雷默距离”(2017年)。 arXiv:1705.10743 。
示例
>>> from scipy.stats import energy_distance >>> energy_distance([0], [2]) 2.0000000000000004 >>> energy_distance([0, 8], [0, 8], [3, 1], [2, 2]) 1.0000000000000002 >>> energy_distance([0.7, 7.4, 2.4, 6.8], [1.4, 8. ], ... [2.1, 4.2, 7.4, 8. ], [7.6, 8.8]) 0.88003340976158217