p分位数的原理及计算

p分位数的原理及计算目录 1 统计上的分位数概念 2 分位数的计算方法及举例 2 1 首先确定 p 分位数的位置 依据项数分为基数 偶数情况 2 2 求上一步确定的 p 分位数位置处的具体值 3 python 中的分位数计算 1 统计上的分位数概念统计上 分位数亦称分位点 是指将一个随机变量的概率分布范围分为几个等份的数值点 常用的有中位数 即二分位数 四分位数 百分位数等 分位数指的就是连续

目录

1.统计上的分位数概念

2.分位数的计算方法及举例

2.1确定p分位数的位置

2.2 确定的p分位数位置处的具体值

2.3 举例分析

3.python、R、excel中分位数的计算及结果

3.1 python

3.2 R

3.3 excel

4.p分位数在python中的应用——等频分箱


1.统计上的分位数概念

        统计上,分位数亦称分位点,是指将一个随机变量的概率分布范围分为几个等份的数值点,常用的有中位数(即二分位数)、四分位数、百分位数等。分位数指的就是连续分布函数中的一个点,这个点对应概率p。若概率0 随机变量X或它的概率分布的分位数Za,是指满足条件p(X≤Za)=α的实数。

四分位数(Quartile)是统计学中分位数的一种,即把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值就是四分位数。

1)第一四分位数(Q1),又称“较小四分位数”,等于该样本中所有数值由小到大排列后第25%的数字;

2)第二四分位数(Q2),又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字;

3)第三四分位数(Q3),又称“较大四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。

第三四分位数与第一四分位数的差距又称四分位距。

p分位数的原理及计算

2.分位数的计算方法及举例

为了更一般化,这里考虑四分位。即当p=0.25 0.5 0.75 时,所求得的分位数值。过程分为三步:

  1. 将数据从小到大排列
  2. 确定p分位数的位置
  3. 确定p分位数具体的数值

为了更好得说明,这里我们设n表示数据的长度,Q1Q2Q3分别表示所求的第1分位数、第2分位数、第3分位数。position()表示分位数的位置,figure()表示分位数处的值。将n个数据从小到大排列,记排序前的数据为before_data;排序后的数据为data,简记为a[1]~a[n]

2.1确定p分位数的位置

p分位数的位置公式如下:

%ignore_pre_1%

由公式,第1分位数、第2分位数、第3分位数的位置分别为:

\\{\color{Red} position(Q1)} = 1 +(n-1)* 0.25\\ {\color{Red} position(Q2)} =1 +(n-1)* 0.5\\ {\color{Red} position(Q3)} =1 +(n-1)* 0.75

2.2 确定的p分位数位置处的具体值

p分位数的值的计算公式如下:

figure(Q1) data[ ⌊position(Q1)⌋ ] +(data[ ⌊position(Q1)⌋+1] – data[ ⌊position(Q1)⌋])*(position(Q1)-⌊position(Q1)⌋)

                  = a[ ⌊1 +(n-1)* 0.25⌋ ] +( a[ ⌊1 +(n-1)* 0.25⌋+1 ]-a[ ⌊1 +(n-1)* 0.25⌋ ])*(1 +(n-1)* 0.25 – ⌊1 +(n-1)* 0.25⌋)

figure(Q2) data[ ⌊position(Q2)⌋ ] +(data[ ⌊position(Q2)⌋+1] – data [ ⌊position(Q2)⌋])*(position(Q2)-⌊position(Q2)⌋)

                  = a[ ⌊1 +(n-1)* 0.5⌋ ] +( a[ ⌊1 +(n-1)* 0.5⌋+1 ]-a[ ⌊1 +(n-1)* 0.5⌋ ]) * (1 +(n-1)* 0.5 – ⌊1 +(n-1)* 0.5 ⌋)

figure(Q3) data[ ⌊position(Q3)⌋ ]+(data[ ⌊position(Q3)⌋+1] – data[ ⌊position(Q3)⌋])*(position(Q3)-⌊position(Q3)⌋)

                  = a[ ⌊1 +(n-1)* 0.75⌋ ] +( a[ ⌊ 1 +(n-1)* 0.75⌋+1 ]-a[ ⌊1 +(n-1)* 0.75⌋ ])*(1 +(n-1)* 0.75 – ⌊1 +(n-1)* 0.75⌋)

也就是说,将数据从小到大排列,p分位数位置的值 = 位于p分位数取整后位置的值 + (位于p分位数取整下一位位置的值 位于p分位数取整后位置的值)*(p分位数位置 – p分位数位置取整)

:其中 Q 表示对 Q 值向下取整

2.3 举例分析

实例1:

给出一组数据before_data:6, 47, 49, 15, 42, 41, 7, 39, 43, 40, 36,一共11项

从小到大排序后结果data:6, 7, 15, 36, 39, 40, 41, 42, 43, 47, 49

\\{\color{Red} position(Q1)} = 1+(11-1)*0.25 = 3.5\\ {\color{Red} position(Q2)} = 1+(11-1)*0.5 = 6\\ {\color{Red} position(Q3)} = 1+(11-1)*0.75 = 8.5

figure(Q1) data[ ⌊position(Q1)⌋ ] +(data[ ⌊position(Q1)⌋+1] –data[ ⌊position(Q1)⌋])*(position(Q1) – ⌊position(Q1)⌋)

                 = a[ ⌊ 3.5⌋ ] +( a[ ⌊ 3.5⌋+1 ]-a[ ⌊ 3.5⌋ ])*(3.5 – ⌊ 3.5 ⌋)

                 = a[3] + (a[4] – a[3]) * (3.5-3)

                 = 15+(36-15)*(3.5-3)

                 = 25.5

figure(Q2) data[6] = 40 

figure(Q3) data[ ⌊position(Q3)⌋ ]+(data[ ⌊position(Q3)⌋+1] – data[ ⌊position(Q3)⌋])*(position(Q3) – ⌊position(Q3)⌋)

                 = a[ ⌊8.5⌋ ] +( a[ ⌊ 8.5⌋+1 ]-a[ ⌊ 8.5⌋ ])*(8.5 – ⌊8.5⌋)

                 = a[8] + (a[9] – a[8]) * (8.5-8)

                 = 42+(43-42)*(8.5-8)

                 = 42.5

实例2:

给出一组数据before_data:7, 15, 36, 39, 40, 41,20,18,一共8项

从小到大排序后结果data:7,15,18,20,36,39,40,41

\\{\color{Red} position(Q1)}=1+(8-1)* 0.25=2.75\\ {\color{Red} position(Q2)}=1+(8-1)* 0.5=4.5\\ {\color{Red} position(Q3)}=1+(8-1)* 0.75=6.25

figure(Q1) data[ ⌊position(Q1)⌋] + (data[ ⌊position(Q1)⌋+1] – data[ ⌊position(Q1)⌋]) * (position(Q1) – ⌊position(Q1)⌋)

                  = a[2] + (a[3] – a[2] ) * (2.75-2)

                  = 15 + (18-15)*(2.75-2)

                  = 17.25

figure(Q2) data[ ⌊position(Q2)⌋] + (data[ ⌊position(Q2)⌋+1] – data[⌊position(Q2)⌋]) * (position(Q2) – ⌊position(Q2)⌋)     

                  = 20 + (36-20)*(4.5-4)

                  = 28

figure(Q3) data[ ⌊position(Q3)⌋] + (data[ ⌊position(Q3)⌋+1] – data[ ⌊position(Q3)⌋]) * (position(Q3) – ⌊position(Q3)⌋)

                 = 39 + (40-39)*(6.25-6)

                 = 39.25

备注:p分位数位置的计算还有很多形式,因为我并没有遇到,所以这里不多做介绍。感兴趣的可参阅

  • https://en.wikipedia.org/wiki/Quantile  或 https://en.wanweibaike.com/wiki-quantile
  • https://www-users.york.ac.uk/~mb55/intro/quantile.htm
  • 分位数
  • Excel四分位数函数:QUARTILE.EXC与QUARTILE.INC的区别
p分位数的原理及计算
p分位数​​​​​的估算类型——截取自 上面链接

3.python、R、excel中分位数的计算及结果

3.1 python

numpy和pandas中都有计算p分位数的方法,numpy中用 percentile,pandas中用 quantile,两种方法计算结算结果一样。

%ignore_pre_2%

python运行结果如下:

p分位数的原理及计算

3.2 R

p分位数的原理及计算

3.3 excel

p分位数的原理及计算

可见,在python、R、excel下计算结果与2中计算结果相同。

4.p分位数在python中的应用——等频分箱

%ignore_pre_3%

结果如下:

p分位数的原理及计算

可见在每个分箱内,其总数值在100左右。说明实现了等频分箱,且可知分箱的上下限。进而可以实现自定义标签的应用。

 

参考链接:

https://www.cnblogs.com/gispathfinder/p/5770091.html

https://blog.csdn.net/u011327333/article/details/71263081?locationNum=14&fps=1

利用python 计算百分位数实现数据分箱

数理统计

茆诗松《概率论与数理统计》

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/205871.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午4:59
下一篇 2026年3月19日 下午5:00


相关推荐

  • XR和XS哪个好_苹果XR用起来怎么样啊

    XR和XS哪个好_苹果XR用起来怎么样啊电容是我们日常中长使用的器件,其具体分类如下:(1)COG此类材质为I类电容器

    2022年8月22日
    11
  • Ubuntu更换国内源(apt更换源)

    Ubuntu更换国内源(apt更换源)网上的教程大部分都是文本命令行的方式更换国内源的 其实 Ubuntu18 04 也提供了图形界面的方式 这里主要讲图形界面的方式 毕竟点点鼠标就能完成的事儿谁愿意去输命令啊 而且还容易出错 当然这里也附上命令行的方式 可能很多人会问到底什么是源呢 其实吧它就像苹果和案桌的软件应用商店一样 为 Linux 用户提供软件下载及更新服务的 Linux 家族有三个软件源系统 yum 源 使用这种软件管理器的主要是 RedHat CentOSapt 源 使用这种软件管理器的主要是 UbuntuPacman 源 使用这种

    2026年3月18日
    2
  • 20道经典Redis面试题

    20道经典Redis面试题前言整理了 20 道经典 Redis 面试题 希望对大家有帮助 1 什么是 Redis 它主要用来什么的 Redis 英文全称是 RemoteDictio 远程字典服务 是一个开源的使用 ANSIC 语言编写 支持网络 可基于内存亦可持久化的日志型 Key Value 数据库 并提供多种语言的 API 与 MySQL 数据库不同的是 Redis 的数据是存在内存中的 它的读写速度非常快 每秒可以处理超过 10 万次读写操作 因此 redis 被广泛应用于缓存 另外 Redis 也经常用来做分布式锁

    2025年8月31日
    7
  • CORBA 入门

    CORBA 入门CORBA 是什么公用对象请求代理 调度 程序体系结构 CommonObject 缩写为 CORBA 是对象管理组织 ObjectManage 对应当今快速增长的软硬件的协同工作能力的要求而提出的方案 简而言之 CORBA 允许应用程序和其他的应用程序通讯 而不论他们在什么地方或者由谁来设计 CORBA1 1 由

    2026年3月26日
    2
  • JS indexOf() 函数[通俗易懂]

    JS indexOf() 函数[通俗易懂]vartest=str1.indexOf(str2);//返回-1表示在str1里没有找到指定的字符串str2的内容.如果有字符串存在就返回它的下表以0开始列子:Strings1=”ahkb”;Strings2=”k”;s1.indexOf(s2)==2;;…

    2022年7月13日
    21
  • pytest-allure_什么是思想报告

    pytest-allure_什么是思想报告前言allure是一个report框架,支持java的Junit/testng等框架,当然也可以支持python的pytest框架,也可以集成到Jenkins上展示高大上的报告界面。mac环境:

    2022年7月29日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号