是否有不止一个“中位数”公式?

机器算法验证 中位数 定义 平均类型
2022-02-02 00:19:18

在我的工作中,当个人提到数据集的“平均值”时,他们通常指的是算术平均值(即“平均值”或“预期值”)。如果我提供了几何平均值,人们可能会认为我在开玩笑或没有帮助,因为“平均值”的定义是事先知道的。

我正在尝试确定数据集的“中位数”是否有多个定义。例如,一位同事提供的用于查找具有偶数个元素的数据集的中位数的定义之一是:

算法'A'

  • 将元素数除以二,向下取整。
  • 该值是中位数的索引。
  • 即对于以下集合,中位数将是5
  • [4, 5, 6, 7]

这似乎是有道理的,尽管四舍五入方面似乎有点武断。

算法“B”

无论如何,另一位同事提出了一个单独的算法,在他的一本统计教科书中(需要知道姓名和作者):

  • 将元素的数量除以 2,并保留上舍入和下舍入整数的副本。命名它们n_lon_hi.
  • n_lo取和处元素的算术平均值n_hi
  • 即对于以下集合,中位数将是(5+6)/2 = 5.5
  • [4, 5, 6, 7]

但这似乎是错误的,因为在这种情况下,中值5.5实际上不在原始数据集中。当我们在某些测试代码中将算法“A”替换为“B”时,它严重崩溃(正如我们所料)。

问题

这两种计算数据集中位数的方法是否有正式的“名称”?即“较小的两个中位数”与“平均中间元素和制作新数据中位数”?

3个回答

@Sycorax 说什么。

事实上,令人惊讶的是,一般分位数的定义有很多,特别是中位数也是如此。Hyndman & Fan (1996, The American Statistician )给出了一个概述,即 AFAIK,仍然是全面的。不同类型没有正式名称。您可能只需要清楚您使用的是哪种类型。(它通常不会对实际大小的数据集产生太大影响。)

请注意,通常接受将数据集中不存在的值作为中位数,例如,将 5.5 作为 (4, 5, 6, 7) 的中位数。这是 R 的默认行为:

> median(4:7)
[1] 5.5

默认情况下, Rmedian()使用 Hyndman & Fan 分类的第 7 类。

TL; DR - 我不知道样本中位数的不同估计器被赋予了具体名称。从某些数据中估计样本统计数据的方法相当繁琐,并且不同的资源给出了不同的定义。

在 Hogg、McKean 和 Craig 的数理统计导论中,作者提供了随机样本中位数的定义,但仅限于样本数为奇数的情况!作者写道

订单统计的某些功能本身就是重要的统计...如果n很奇怪,Y(n+1)/2... 称为随机样本的中位数

如果您有偶数个样本,作者没有提供关于如何做的指导。(注意Yi是个i最小的基准。)

但这似乎是不必要的限制。我希望能够为偶数或奇数定义随机样本的中位数n. 此外,我希望中位数是唯一的。鉴于这两个要求,我必须就如何最好地找到唯一样本中位数做出一些决定。算法 A 和算法 B 都满足这些要求。施加额外的要求可能会排除其中一个或两个。

算法 B 具有一半数据低于该值,一半数据低于该值的特性。根据随机变量中位数的定义,这看起来不错。


特定的估算器是否破坏单元测试是单元测试的属性——当您替换另一个估算器时,针对特定估算器编写的单元测试不一定成立。在理想情况下,选择单元测试是因为它们反映了您组织的关键需求,而不是因为对定义的教条争论。

在 R 的mad函数中,它使用术语“lo-median”来描述您的算法 A,使用“hi-median”来描述四舍五入,而仅使用“median”来描述您的算法 B(正如其他人所指出的那样,到目前为止最常见的定义)。

奇怪的是,R 的函数没有这样的选项median()(但 Rquantile()具有type良好的控制能力。)