Excel中的四分位数

机器算法验证 擅长 分位数
2022-02-27 00:57:20

我对基本统计中通常使用的四分位数的定义很感兴趣。我有一本 Stat 101 类型的书,它只是给出了一个直观的定义。“大约四分之一的数据落在或低于第一个四分位数......”但是,它给出了一个示例,它为数据集计算 Q1、Q2 和 Q3

5, 7, 9, 10, 11, 13, 14, 15, 16, 17, 18, 18, 20, 21, 37

由于有 15 条数据,它选择 15 作为中位数,Q2。然后,它将剩余的数据分成两部分,5 到 14 和 16 到 37。每部分包含 7 条数据,它们分别找到这些数据集 10 和 18 的中值,分别作为 Q1 和 Q3。这就是我自己计算的方式。

我查看了维基百科的文章,它提供了 2 种方法。一个同意上述观点,另一个说您还可以在两组中包含中位数 15(但如果在偶数个数据点的情况下它是两个中间数字的平均值,则您不会包含中位数)。这一切对我来说都很有意义。

但是,然后我检查了 Excel 以了解 Excel 是如何计算它的。我正在使用 Excel 2010,它有 3 个不同的功能。Quartile 在 2007 年和之前的版本中可用。似乎他们希望您在 2010 年停止使用它,但它仍然可用。Quartile.Inc 是新的,但据我所知与 Quartile 完全一致。而且,还有 Quartile.Exc。我相信最后两个都是 2010 年的新产品。这一次,我只是尝试使用整数 1、2、3、...、10。我希望 Excel 给出的中位数为 5.5,Q1 为 3,Q3 为 8。统计书中的方法也是如此因为维基百科上的两种方法都会给出这些答案,因为中位数是中间两个数字的平均值。Excel给出

quartile number, Quartile.Inc, Quartile.Exc
1,               3.25,         2.75 
2,               5.5,          5.5
3,               7.75,         8.25

这些都不同意我之前所说的。

Excel 帮助文件中的描述如下:

Quartile.Inc - 返回数据集的四分位数,基于从 0..1 开始的百分位值,包括 0..1。

Quartile.Exc - 返回数据集的四分位数,基于从 0..1 开始的百分位值,不包括在内。

谁能帮我理解 Excel 使用的这个定义?

4个回答

通常,排名 (对于数据,介于之间)通过公式转换为百分比r1nnp

p=100rαn+12α

对于介于之间的某些预定的“绘图位置”,包括 0 和 1。根据求解给出α01rp

r=(n+12α)(p/100)+α.

Excel 历来使用作为其函数α=1PERCENTILEQUARTILE在线文档无用的,所以我们必须对这些函数的作用进行逆向工程。QUARTILE.INCQUARTILE.EXC

例如,对于数据,我们有表示三个四分位数。在前面的公式中使用产生的秩,再现 的结果(1,2,3,4,5,6,7,8,9,10)n=10p{25,50,75}α=19(0.25)+1=3.259(0.50)+1=5.59(0.75)+1=7.75QUARTILE.INC

相反,如果我们设置,则相应的等级为,从而再现.α=011(0.25)=2.7511(0.50)=5.511(0.75)=8.25QUARTILE.EXC

您的进一步测试(我没有最新版本的 Excel)可能会确定我的猜测的有效性,即四分位函数的这两个版本是由α的这两个(极端)值确定的。

顺便说一下,分数秩通过线性插值转换为数据值。该过程在我的百分位数和 EDF 图的课程笔记中进行了解释和说明——请查看该页面底部附近。还有一个指向 Excel 电子表格的链接,用于说明计算。

如果你想在 Excel 中实现一个通用的百分位函数,这里有一个 VBA 宏来实现它:

'
' Converts a percent, computed using plotting position constant A,
' into a percent appropriate for the Excel Percentile() and
' Quartile() functions.  (The default value of A for Excel is 1;
' most values in use are between 0 and 0.5.)
'
Public Function PercentileA(P As Double, N As Integer, A As Double) As Double
    If N < 1 Or A < 0# Or A > 1# Or P < 0# Or P > 1# Then
        Exit Function
    End If
    If N < 2 Then
        PercentileA = 0.5
    Else
        PercentileA = ((N - 2 * A + 1) * P + A - 1) / (N - 1)
    End If
End Function

它将名义百分比(例如 25/100)转换为将导致 ExcelPERCENTILE函数返回所需值的百分比。它旨在用于单元格公式,如=PERCENTILE(Data, PercentileA(0.25, Count(Data), 0.5)).

在我看来,Excelquartile.inc与原来的 一致quartile,它与 R 的默认值和其他定义一致。

在 whuber 的有用提示下,我发现 Excelquartile.exc似乎(在 1..10 案例中)与 R 的type=6分位数定义一致:

   > For types 4 through 9, Q[i](p) is a continuous function of p, with
    > gamma = g and m given below. The sample quantiles can be obtained
    > equivalently by linear interpolation between the points (p[k],x[k])
    > where x[k] is the kth order statistic. Specific expressions for p[k]
    > are given below.
    > 
    > ...
    > 
    > 
    > Type 6 m = p
    >       .p[k] = k / (n + 1). Thus p[k] = E[F(x[k])].
    >       This is used by Minitab and by SPSS.

这显然可以回答您的问题:“是的,Minitab 和 SPSS 可以。”

我认为四分位数的 exc 只是忽略了 5 和 37(原始数据中的最小值和最大值)。

在 Stata 中,默认版本和备用版本都会为您提供 quartile.exc 值以及此数据。

很多有趣的详细内容,但要回到最初的问题,我认为可能不会给出完全相同答案的两种略有不同的方式并不重要。第一个四分位数是 25% 的观测值落在或低于它的点。根据您的样本量,可能是也可能不是数据中的确切点。因此,如果一个点低于而下一个点高于,则第一个四分位数并没有很好地定义,这两者之间的任何点都可以发挥同样的作用。当样本量是偶数时,中位数也是如此。该规则选择下方和上方数据点之间的中点。但没有什么能真正说明规则给出的选择真的比任何其他点都好。