python - 对两个字典执行两个样本 Kolmogorov-Smirnov 检验

标签 python dictionary scipy distribution kolmogorov-smirnov

我有两个字典,其中包含两个离散分布:A={1: 300, 2: 400, 4: 20,...}B={2: 100, 3:200,4:75,...}。我想检查它们的相似程度,并考虑执行两个样本Kolmogorov-Smirnov 检验

我检查了scipy function但它似乎只适用于 numpy 数组,我如何在我的数据上执行它?

最佳答案

您可以轻松地将数据转换为numpy.array:

import numpy as np

my_keys = sorted(set([*A.keys(), *B.keys()]))

A_array = np.array(A.get(key,0) for key in my_keys)
B_array = np.array(B.get(key,0) for key in my_keys)

我注意到 AB 没有相同的键(例如,B 似乎不包含键“1” ) - 所以你需要注意这一点。为什么我找到了键的并集,并且如果字典中不存在键则强加值 0(我假设在这种情况下,您没有对该特定键的任何观察)。

现在这两个阵列可以兼容测试。

关于python - 对两个字典执行两个样本 Kolmogorov-Smirnov 检验,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70335353/

相关文章:

python - 排序的字典返回没有意义/python

python - 按值对字典排序并返回字典,而不是元组列表

python - import surprise 在 python3 中抛出 ContextualVersionConflict 错误

python - Cython 编译错误 : dynamic module does not define module export function

python - PyInstaller:单文件可执行文件不运行

python - 在虚拟环境中使用 Apt-Get Python 包

python - Django 过滤器不排除否定前瞻正则表达式的结果

perl - 如何为简单的 Perl 字典应用程序正确格式化纯文本数据?

python - 如何循环遍历 pandas 数据框以对每个变量运行独立的 t 检验?

python - SciPy 全局最小曲线拟合