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. 47-Ubuntu-系统信息-2-df和du查看磁盘和目录空间占用

    序号 命令 作用 01 df -h disk free 显示磁盘剩余空间;-h以人性化的方式显示文件大小 02 du -h [目录名] disk usage 显示目录下的文件大小 注:显示磁盘信息的时 ...

  2. webstorm/vs取消eslint

    vs ——preference ——setting,添加"eslint.enable": false webstorm ——setting ——language ——javascr ...

  3. tomcat启动内存修改

    #   USE_NOHUP       (Optional) If set to the string true the start command will #                   ...

  4. python_django_在views模块中操作状态保持(session)

    什么叫状态保持? 就比如说我们登陆一个网站,登陆之后的当前页面显示的是登陆状态,但是我们要再跳转同一网站的其他页面,则显示的未登录状态,状态保持就是:我们在当前页面登陆后,再访问其他页面时也显示为登陆 ...

  5. ZMQ面面观

    ZMQ是什么? 这是个类似于Socket的一系列接口,他跟Socket的区别是:普通的socket是端到端的(1:1的关系),而ZMQ却是可以N:M 的关系,人们对BSD套接字的了解较多的是点对点的连 ...

  6. Linux系统升级

    查看centos版本的命令:uname -r 升级版本:yum -y upgrade 重启:reboot

  7. d3操作svg路径动画,及dom移动

    图片跟随路径循环运动,dom也跟着路径运动(利用实时获取坐标位置的方法,改变transform) 1,准备路径 a,自己脑补路径 b,在ps上画好,然后在保存成png-24图片,背景透明,在网站htt ...

  8. 过滤掉map集合中key或value为空的值

    package cn.com.utils; import org.apache.commons.lang3.StringUtils; import java.util.Collection; impo ...

  9. Q:elementUI中tree组件动态展开

    1,在组件中设置展开收缩开关  default-expand-all="isExpand" 2,展开收起触发按钮 <div class="tree-foot cle ...

  10. 移动端图片轮播效果:depth模式总结

    最近公司app改版首页增加了一处轮播图效果,但是跟普通的轮播效果不同,是类似于下图的样式,找了一些兼容移动端的插件以及jQuery源码,总结一下使用心得: 1:jquery源码:缺点是在手机端的滑动很 ...