根据数值计数计算中位数

根据数值计数计算中位数

我拥有特定 CPU 的数量及其 CPU 分数的数据。基于此,我希望动态计算中位数和四分位数统计数据。

例如,我有一张看起来像的表

姓名 计数 分数
i7-5820k 3,3 GHz 6 核 11 12,996
i7-950 3.1 GHz 4 核 4 5595
i7-3820 3,6 GHz 4 核 7 8998
i5-3570k 3.4 GHz 4 核 1 7153

我希望对数据进行的操作是,计算第一行的标记 11 次,第二行的标记 4 次,依此类推。

该功能目前已在 Google 电子表格中使用,但我猜想大多数电子表格应用程序都应该提供类似的功能。

答案1

除了数学之外,您还可以使用以下方法数组公式

=MEDIAN(IF(COLUMN(A:Z)<=B2:B5,C2:C5))

CtrlShiftEnter

笔记:

  • IF(COLUMN(A:Z)<=B2:B5,C2:C5)生成一个二维数组,4 rows, 26 columns其中每一行重复 C 列中的单元格,次数与 B 列单元格中指定的次数相同;行中其余条目为FALSE

  • MEDIAN函数忽略FALSE单元格并评估生成的二维数组中的实际条目。

答案2

Excel 有一个 QUARTILE() 函数可供使用。但您的数据集足够小,几乎可以通过检查获得答案。

首先,将包含 i7-950 CPU 的行移到列表底部。总共有 23 个 CPU,因此中位数是排名第 11.5 位的 CPU 的分数。同样,第一四分位数是排名第 5.75 位的 CPU 的分数。

就您而言,这两个答案都是 8998。这有点奇怪,但这与您的数据分布有关。第一四分位数和第二四分位数都属于同一个“箱”。想象一下,如果美国每个人的体重都是 150 磅。那么中位数体重和所有百分位数都是 150 磅。

你可以争辩说你的四分位数和中位数都下降了之间数据点,然后在数据点之间进行插值。然后,您可以计算出四分位数为 5595 和 8998 之间的 3/4。中位数为 8998 和 12,996 之间的一半。

我得到 8197.25 和 10,997。

要了解 QUARTILE() 函数的想法,请创建一个包含 11 个 12,996、7 个 8998、1 个 7153 和 4 个 5595 的列。

然后使用 QUARTILE(range,1) 和 QUARTILE(range,2) 计算第一四分位数和中位数。这里的“range”是 23 个分数的列表。

编辑:插值在这里并不完全合法,因为 CPU 分数都是精确的,而不是分数范围的平均值。我思考。我假设您查阅了每个 CPU 的基准测试分数的已发布值。

我不确定如果实际在每个 CPU 上运行基准测试会发生什么。相同类型的 CPU 是否都会产生相同的分数,还是会有一系列的分数?如果相同 CPU 的分数存在一些差异(可能是由于温度或 ??),那么我认为插值是合理的。

欢迎在此发表评论。

相关内容