scipy.stats.wasserstein_distance 可以与不同不等大小的经验分布一起使用吗?

问题描述

为了评估系统,我测量了三个不同配置(设置)中的一个感兴趣的指标。因此,我有三个观察值数组,例如 observations_setting_1observations_setting_2observations_setting_3,如下所示:

# len(observations_setting_1): 90,000.
observations_setting_1 = [1.56,23.7782,10.46799,3.013,...,15.522]

# len(observations_setting_2): 90,000.
observations_setting_2 = [11.8242,3.998,3.427,13.324,8.01]

# len(observations_setting_3): 82,129.
observations_setting_3 = [4.2532,19.75,12.851,9.0032,1.296]

导致 observations_setting_1 的设置被认为是基线,而后两个设置修改了一些环境条件,以查看系统的性能如何变化。从我的示例中可以看出,对于其中一项设置,由于实验收集错误,我不得不删除一些观察值(此时我无法重复实验)。

我现在想量化从设置 2 和 3 获得的感兴趣指标的经验分布有多少偏离基线。第 1 次 Wasserstein 距离(也称为 Earth Mover 距离)似乎非常适合于此。 SciPy 提供了一个计算距离的函数:scipy.stats.wasserstein_distance

我的问题:鉴于设置 1 和设置 2 与设置 3 之间的观察数量存在差异,我是否仍然可以使用 scipy.stats.wasserstein_distance 计算的值来说明设置 3 与设置 1 的差异程度?

>

换句话说,给定:

2_diverges_from_1 = scipy.stats.wasserstein_distance(observations_setting_1,observations_setting_2)
3_diverges_from_1 = scipy.stats.wasserstein_distance(observations_setting_1,observations_setting_3)

尽管输入数组的长度不同,但我能否就设置 3 与基线设置 1 的偏离程度与设置 2 与基线设置 1 的偏离程度进行陈述?如果我以这种方式使用 SciPy 的 1st Wasserstein 距离,我会犯统计错误吗?如果是这样的话,我有什么办法可以解决这个问题吗?

如果相等大小是一个约束,我会期望 SciPy 拒绝我的输入数组,但是没有返回错误。

感谢您对此的任何帮助,谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...