如何测量两个频率分布之间的统计“距离”?

机器算法验证 分布 距离 频率 比较
2022-02-11 17:08:17

我正在进行一个数据分析项目,其中涉及调查一年中的网站使用时间。我想做的是比较使用模式的“一致性”程度,例如,它们与每周使用一次 1 小时或一次使用 10 分钟的模式有多接近,6每周几次。我知道可以计算的几件事:

  • 香农熵:衡量结果中“确定性”的差异程度,即概率分布与均匀分布的差异有多大;
  • Kullback-Liebler 散度:衡量一种概率分布与另一种概率分布的差异程度
  • Jensen-Shannon 散度:类似于 KL 散度,但更有用,因为它返回有限值
  • Smirnov-Kolmogorov 检验:确定连续随机变量的两个累积分布函数是否来自同一样本的检验。
  • 卡方检验:一种拟合优度检验,用于确定频率分布与预期频率分布的差异程度。

我想做的是比较实际使用持续时间(蓝色)与分布中的理想使用时间(橙色)有多少不同。这些分布是离散的,下面的版本被归一化为概率分布。横轴代表用户在网站上花费的时间(以分钟为单位);这已记录在一年中的每一天;如果用户根本没有访问过网站,那么这将被视为零持续时间,但这些已从频率分布中删除。右边是累积分布函数。

网站使用数据与理想使用数据的分布

我唯一的问题是,即使我可以让 JS-divergence 返回一个有限值,但当我查看不同的用户并将他们的使用分布与理想用户进行比较时,我得到的值大多相同(因此这不是一个好它们差异多少的指标)。此外,当归一化为概率分布而不是频率分布时,会丢失相当多的信息(假设学生使用平台 50 次,那么蓝色分布应该垂直缩放,以便条形的总长度等于 50,并且橙色条的高度应为 50 而不是 1)。我们所说的“一致性”的部分含义是用户访问网站的频率是否会影响他们从中获得多少;如果他们访问网站的次数丢失了,那么比较概率分布有点可疑;即使用户持续时间的概率分布接近“理想”使用情况,该用户在一年中可能仅使用平台 1 周,这可以说不是很一致。

是否有任何成熟的技术可以比较两个频率分布并计算某种度量来表征它们有多相似(或不同)?

3个回答

您可能对地球移动器的距离感兴趣,也称为Wasserstein 度量它在 R (查看emdist包)和Python中实现。我们也有一些关于它的线程

EMD 适用于连续分布和离散分布。R的emdist包适用于离散分布。

比之类的东西的优势χ2统计数据是 EMD 产生可解释的结果。将您的分布想象成土堆,然后 EMD 会告诉您需要运输多少土才能将一个分布转变为另一个分布。

换句话说:两个分布 (1,0,0) 和 (0,1,0) 应该比 (1,0,0) 和 (0,0,1) “更相似”。EMD 将识别这一点,并为第一对分配比第二对更小的距离。χ2statistic 将为两对分配相同的距离,因为它在分布条目中没有排序的概念。

如果您从两个分布中的每一个中随机抽取一个个体,您可以计算它们之间的差异。如果您多次重复此操作(有替换),您可以生成包含您所需要的所有信息的差异分布。您可以绘制此分布并使用所需的任何汇总统计数据(均值、中位数等)对其进行表征。

度量标准之一是两个分布之间的 Hellinger 距离,其特征是均值和标准差。该应用程序可以在以下文章中找到。

https://www.sciencedirect.com/science/article/pii/S1568494615005104