前言

空气质量污染物序列中一般会涉及第多少百分位数,如臭氧浓度的第90百分位数浓度。本文介绍百分位数的计算方法。

计算方法

污染物浓度序列第p\boldsymbol{p}p百分位数的计算步骤:

  1. 将污染物浓度序列按数值大小从小到大排序,不妨设为{X\boldsymbol\{{X}{Xi_{i}i,i=1,2, ⋅ ⋅ ⋅ n\boldsymbol{,i=1,2,~·~·~·~n}i=1,2,    n}\boldsymbol{\}}}
  2. 计算第p\boldsymbol{p}p百分位数m\boldsymbol{m}mp_{p}p的位置索引k\boldsymbol{k}k(从1开始),公式为
    k=1+(n−1)×p%\boldsymbol{k=1+(n-1)×p\%}k=1+(n1)×p%
    式中:
    k—p%位置索引\boldsymbol{k—p\%位置索引}kp%
    n—污染物浓度序列中的数值个数\boldsymbol{n—污染物浓度序列中的数值个数}n
  3. p\boldsymbol{p}p百分位数m\boldsymbol{m}mp_{p}p计算公式为
    m\boldsymbol{m}mp_{p}p=X\boldsymbol{=X}=X(s)_{(s)}(s)+(X\boldsymbol{+(X}+(X(s+1)_{(s+1)}(s+1)−X\boldsymbol{-X}X(s)_{(s)}(s))×(k−s)\boldsymbol{)×(k-s)})×(ks)
    式中:
    s—k的整数部分,当k为整数时,s与k相等。\boldsymbol{s—k的整数部分,当k为整数时,s与k相等。}skksk

计算示例

举一个计算的例子:
计算序列{3,4,8,2,5,4}的第90百分位数。\boldsymbol{计算序列\{3,4,8,2,5,4\}的第90百分位数。}{3,4,8,2,5,4}90
计算过程:

  1. 从小到大排序
    排序后的序列为{2,3,4,4,5,8}\boldsymbol{\{2,3,4,4,5,8\}}{2,3,4,4,5,8}
  2. 计算索引k\boldsymbol{k}k
    k=1+(6−1)×90%=5.5\boldsymbol{k=1+(6-1)×90\%=5.5}k=1+(61)×90%=5.5
  3. 计算m\boldsymbol{m}mp_{p}p
    m\boldsymbol{m}mp_{p}p=5+(8−5)×(5.5−5)=6.5\boldsymbol{=5+(8-5)×(5.5-5)=6.5}=5+(85)×(5.55)=6.5

即该序列的90\boldsymbol{90}90百分位数位6.5。

Python代码实现

def percent_number_cal(data_list: List[float], p: int) -> float:
    """
    计算序列指定百分位数
    :param data_list: 序列
    :param p: 需计算的百分位数
    :return: 第p百分位数
    """
    sorted_data = sorted(data_list, reverse=False)
    k = 1 + (len(sorted_data) - 1) * p / 100
    return sorted_data[int(k) - 1] + (sorted_data[int(k)] - sorted_data[int(k) - 1]) * (k - int(k))

以下是本人独自运营的微信公众号,用于分享个人学习及工作生活趣事,大家可以关注一波。

优良率
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐