p分位数的原理及计算

大纲>>
1.统计上的分位数概念
 
2.分位数的计算方法及举例
  2.1首先确定p分位数的位置(依据项数分为基数、偶数情况)
  2.2 求上一步确定的p分位数位置处的具体值
 
3.python中的分位数计算
 
 
 
1.统计上的分位数概念
        统计上,分位数亦称分位点,是指将一个随机变量的概率分布范围分为几个等份的数值点,常用的有中位数(即二分位数)、四分位数、百分位数等。分位数指的就是连续分布函数中的一个点,这个点对应概率p。若概率0<p<1,随机变量X或它的概率分布的分位数Za,是指满足条件p(X≤Za)=α的实数。
 
  四分位数(Quartile)是统计学中分位数的一种,即把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值就是四分位数(或叫四分位点)
  第三四分位数与第一四分位数的差距又称四分位距
 
  1)第一四分位数(Q1),又称“较小四分位数”,等于该样本中所有数值由小到大排列后第25%的数字;
  2)第二四分位数(Q2),又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字;
  3)第三四分位数(Q3),又称“较大四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。
 
 
 
2.分位数的计算方法及举例
  为了更一般化,这里我们考虑四分位。当p=0.25 0.5 0.75 时,就是在计算四分位数。
 
  2.1首先确定p分位数的位置(依据项数分为基数、偶数情况)
    2.1.1 设n代表数据的长度,Q1、Q2、Q3代表所求的1分位数、2分位数、3分位数。
      将n个数据从小到大排列。记排序前的数据为before_data;排序后的数据为after_data,简记为a1~an
 
    2.2.2 求位置
      position(Q1)= 1*(n +1)/4
      position(Q2)= 2*(n +1)/4
      position(Q3)= 3*(n +1)/4
 
2.2 求上一步确定的p分位数位置处的具体值
  (1)当n是奇数个时,p分位数的值就是after_data中处于的第position(Qi)(i=1,2,3)位置的值。
    figure(Q1)=after_data [position(Q1 ] = a[  (n+1)/4 ]
    figure(Q2)=after_data[position(Q2)]= a[  2*(n+1)/4 ]
    figure(Q3)=after_data[position(Q3)]= a[ 3 *(n+1)/4 ]
 
    即:当项数为基数项时,第i分位数的值就是排序后数据中的第(i分位数)数的值
 
实例1:
 
给出一组数据before_data:6, 47, 49, 15, 42, 41, 7, 39, 43, 40, 36,一共11项
从小到大排序后结果after_data:6, 7, 15, 36, 39, 40, 41, 42, 43, 47, 49
 
position(Q1)=(11+1)/4=3,
position(Q2)=2(11+1)/4=6,
position(Q3)=3(11+1)/4=9
 
figure(Q1)=after_data[3]=15,
figure(Q2)=after_data[6]=40,
figure(Q3)=after_data[9]=43
 
  (2)当n是偶数时,p分位数的值的计算公式如下:
    figure(Q1)=after_data[ |position(Q1)| ] +(after_data[ |position(Q1)|+1] -after_data[ |position(Q1)|])*(position(Q1)-|position(Q1)|)
                     = a[ | (n+1)/4| ] +( a[ | (n+1)/4|+1 ]-a[ | (n+1)/4| ])*((n+1)/4 - | (n+1)/4 |)
 
    figure(Q2)=after_data[ |position(Q2)| ] +(after_data[ |position(Q2)|+1]-after_data [ |position(Q2)|])*(position(Q2)-|position(Q2)|)
                     = a[ |2 (n+1)/4| ] +( a[ | 2(n+1)/4|+1 ]-a[ | 2(n+1)/4| ])*(2(n+1)/4 - |2 (n+1)/4 |)
 
    figure(Q3)=after_data[ |position(Q3)| ]+(after_data[ [|position(Q3)|+1]-after_data[ [|position(Q3)])*(position(Q3)-|position(Q3)|)
                     = a[ |3 (n+1)/4| ] +( a[ | 3(n+1)/4|+1 ]-a[ | 3(n+1)/4| ])*(3(n+1)/4 - |3 (n+1)/4 |)
 
    即:当项数为偶数项时,第i分位数的值由排序后数据的第(i分位数)数-1和第(i分位数)数决定。
 
 
实例2:当当n是偶数个时,计算出的位置不是整数时
 
给出一组数据before_data:7, 15, 36, 39, 40, 41,20,18,一共8项
从小到大排序后结果after_data:7,15,18,20,36,39,40,41
 
position(Q1)=(8+1)/4=2.25
position(Q2)=2(8+1)/4=4.5
position(Q3)=3(8+1)/4=6.75
 
figure(Q1)=after_data[2] + (after_data[3] - after_data[2])*(position(Q1)-|position(Q1)|)
                 = a[ | (n+1)/4| ] +( a[ | (n+1)/4|+1 ]-a[ | (n+1)/4| ])*((n+1)/4 - | (n+1)/4 |)
                 = 15 + (18-15)*(2.25-2) = 15.75;
 
figure(Q2)=after_data[4] + (after_data[5] - after_data[4])*(position(Q2)-|position(Q2)|)
                 = a[ |2 (n+1)/4| ] +( a[ | 2(n+1)/4|+1 ]-a[ | 2(n+1)/4| ])*(2(n+1)/4 - |2 (n+1)/4 |)
                 = 20 + (36-20)*(4.5-4) = 28;
 
figure(Q3)=after_data[6] + (after_data[7] - after_data[6])*(position(Q3)-|position(Q3)|)
                 = a[ |3 (n+1)/4| ] +( a[ | 3(n+1)/4|+1 ]-a[ | 3(n+1)/4| ])*(3(n+1)/4 - |3 (n+1)/4 |)
                 = 39 + (40-39)*(6.75-6) = 39.75.
 
 
 
 
3.python中的分位数计算
 
 
参考:
【1】https://www.cnblogs.com/gispathfinder/p/5770091.html
【2】https://blog.csdn.net/u011327333/article/details/71263081?locationNum=14&fps=1
 
 
 


p分位数的原理及计算的更多相关文章

  1. CPU使用率原理及计算方式

    本文转载自CPU使用率原理及计算方式 CPU:超线程和多核 超线程(Hyper-Threading ) 超线程是Intel最早提出一项技术,最早出现在2002年的Pentium4上.单个采用超线程的C ...

  2. 【笔记】主成分分析法PCA的原理及计算

    主成分分析法PCA的原理及计算 主成分分析法 主成分分析法(Principal Component Analysis),简称PCA,其是一种统计方法,是数据降维,简化数据集的一种常用的方法 它本身是一 ...

  3. memcached分布式实现原理

    摘要 在高并发环境下,大量的读.写请求涌向数据库,此时磁盘IO将成为瓶颈,从而导致过高的响应延迟,因此缓存应运而生.无论是单机缓存还是分布式缓存都有其适应场景和优缺点,当今存在的缓存产品也是数不胜数, ...

  4. 大整数算法[09] Comba乘法(原理)

    ★ 引子          原本打算一篇文章讲完,后来发现篇幅会很大,所以拆成两部分,先讲原理,再讲实现.实现的话相对复杂,要用到内联汇编,要考虑不同平台等等. 在大整数计算中,乘法是非常重要的,因为 ...

  5. 树状数组lowbit()函数原理的解释 x&(x^(x-1)) x&-x

    树状数组lowbit()函数所求的就是最低位1的位置所以可以通过位运算来计算 树状数组通过 x&(x^(x-1)) 能够成功求出lowbit的原因: 首先设x=6,即110(2) 于是我们使 ...

  6. 机器学习--k-means聚类原理

    “物以类聚,人以群分”, 所谓聚类就是将相似的元素分到一"类"(有时也被称为"簇"或"集合"), 簇内元素相似程度高, 簇间元素相似程度低. ...

  7. 自己定义View Layout过程 - 最易懂的自己定义View原理系列(3)

    前言 自己定义View是Android开发人员必须了解的基础 网上有大量关于自己定义View原理的文章.但存在一些问题:内容不全.思路不清晰.无源代码分析.简单问题复杂化等等 今天,我将全面总结自己定 ...

  8. 时域反射计(TDR)原理与应用

    [施工编辑中...] 1. 什么是TDR? TDR = Time Domain Reflectometry 时域反射计TDR用来测量信号在通过某类传输环境传导时引起的反射,如电路板轨迹.电缆.连接器等 ...

  9. poj2965 The Pilots Brothers&#39; refrigerator(直接计算或枚举Enum+dfs)

    转载请注明出处:http://blog.csdn.net/u012860063? viewmode=contents 题目链接:http://poj.org/problem? id=2965 ---- ...

随机推荐

  1. LNMP部署

    部署企业LNMP架构 源码包:nginx-* ; mysql-* ; php-* ; boost-* ; zend-loader-php5.6-linux-* ;yum软件: pcre-devel z ...

  2. Zabbix-1.8.14 安装

    CentOS 6.9Apache 2.2PHP 5.3.3MySQL 5.1.73 1.下载安装zabbix软件源 在http://repo.zabbix.com/zabbix/1.8/rhel/6/ ...

  3. Java微服务(Spring-boot+MyBatis+Maven)入门教程

    1,项目创建    新建maven项目,如下图: 选择路径,下一步 输入1和2的内容,点完成 项目创建完毕,结构如下图所示: 填写pom.xml里内容,为了用于打包,3必须选择jar,4和5按图上填写 ...

  4. quartz的使用(一)

    1.quartz是什么? Quartz 是一个完全由 Java 编写的开源作业调度框架,支持各种灵活的应用方式,并同时支持分布式和集群能力.2.quartz的基本要素 2.quartz的基本要素 Sc ...

  5. FFT最新卡常研究

    指针优化并没有什么卵用,反而增大了代码的不可读性. 除了本来的循环顺序优化寻址,在预处理单位复数根时,可以连续存储,以增快寻址速度,细节见代码. 代码给出的是FFT,NTT是一样的. #include ...

  6. 求最长的任意两元素差不超过M的子段——双指针+单调队列hdu4123

    换根dp的部分比较容易,难点在于求求最长的任意两元素差不超过M的子段 首先会想到双指针维护(尺取法),如果p1,p2间的max-min>M,那么p1向右移动,直到p1,p2间的max-min&g ...

  7. delphi实现圆角窗体[转]

    procedure TForm1.FormCreate(Sender: TObject); var hr :thandle; begin hr:=createroundrectrgn(1,1,widt ...

  8. 去除springboot内置tomcat

    /** * @author zx * @title: ServletInitializer * @projectName activiti * @description: 解决内置tomcat * @ ...

  9. 机械手相机9点坐标标定-基于C#+EmguCV

    很多初学者,都对标定概念模糊不清,分不清坐标系之间的关系,搞不清相机标定和机械手相机标定有什么关系,想当初自己也是一个人摸索了很久,本文将尽量给大家解释. 我们通常所说的相机标定分为两种,一种是相机参 ...

  10. Python-爬虫-requests库用语post登录

    requests库很强大,支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的URL和POST数据自动编码. 可以发送无参数的get请求, ...