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. springcloud中config启动时候报错Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'config.info' in value "${config.info}"

    -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dcom.sun.management.jm ...

  2. Thread相关API

    参考书籍:<java多线程核心编程技术> Thread相关API,这些API可以改变线程对象的状态 新建一个线程对象,调用start方法后,系统会为该线程分配CPU资源,此时该线程处于可运 ...

  3. Samza系统架构

  4. centos6.5下,使用虚拟ftp用户

    因为业务的问题,有位客户的账户总是出现各种问题,本人对于acl的使用又不是很会,所以和同事一起研究了一下这个虚拟ftp用户. Centos6.5 1 需求 为了保证系统的安全性,现对系统中vsftpd ...

  5. 笔记38 Spring Web Flow——订单流程(定义基本流程)

    做一个在线的披萨订购应用 实际上,订购披萨的过程可以很好地定义在一个流程中.我们首先从 构建一个高层次的流程开始,它定义了订购披萨的整体过程.接下 来,我们会将这个流程拆分成子流程,这些子流程在较低的 ...

  6. 引用opencv异常

    1.异常AttributeError: module 'cv2.cv2' has no attribute 'xfeatures2d' 原因:**3.X以后OpenCv只包含部分内容,需要神经网络或者 ...

  7. thinkphp url重写

    可以通过URL重写隐藏应用的入口文件index.php,下面是相关服务器的配置参考:大理石平台精度等级 [ Apache ] httpd.conf配置文件中加载了mod_rewrite.so模块 Al ...

  8. NX二次开发-UFUN获取相邻面UF_MODL_ask_adjac_faces

    NX9+VS2012 #include <uf.h> #include <uf_obj.h> #include <uf_modl.h> UF_initialize( ...

  9. 简单理解vue的slot插槽

    slot的意思是插槽,想想你的电脑主板上的各种插槽,有插CPU的,有插显卡的,有插内存的,有插硬盘的,所以假设有个组件是computer,其模板是 <template> <div&g ...

  10. (转)虚拟IP原理

    转:http://blog.csdn.net/whycold/article/details/11898249 高可用性HA(High Availability)指的是通过尽量缩短因日常维护操作(计划 ...