统计学中基础概念说明(二)

简介: 统计学中基础概念说明(二)

5、集中趋势:分位数

1)分位数的概念

分位数:将数据从小到大排列,通过n-1个分位数将数据分为n个区间,使得每个区间的数值的个数相等(近似相等)。

以四分位数为例,通过3个分位数,将数据划分为4个区间。(十分位数含义相同)

第一个分位数成为1/4分位数(下四分位数),数据中有1/4的数据小于该分位数。

第二个分位数成为2/4分位数(中四分位数,也叫中位数),数据中有2/4的数据小于该分位数。

第三个分位数成为3/4分位数(下四分位数),数据中有3/4的数据小于该分位数。

image.png

2)怎么求分位数

 给定一组数据(存放在数组中),我们要如何计算其四分位值呢?首先要明确一点,四分位值未必一定等同于数组中的某个元素。

 在Python中,四分位值的计算方式如下:

 ① 首先计算四分位的位置。

 q1_index=1+(n-1)*0.25

 q2_index=1+(n-1)*0.5

 q3_index=1+(n-l)*0.75

 其中,位置index从1开始,n为数组中元素的个数。

 ② 根据位置计算四分位值。

 如果index为整数(小数点后为0),四分位的值就是数组中索引为index的元素(注意位置索引从1开始)。

 如果index不是整数,则四分位位置介于ceil(index)与floor(index)之间,根据这两个位置的元素确定四分位值。


3)分位数是数组中的元素的情况

x = np.arange(10,19)
n = len(x)
# 计算每个分位数的位置,这个位置是从1开始的。但是数组元素索引从0开始的
q1_index=1+(n-1)*0.25
q2_index=1+(n-1)*0.5
q3_index=1+(n-1)*0.75
# 这里计算出来的数字是浮点类型,需要转化为小数,才能当作索引
q1_index,q2_index,q3_index
# 计算分位数
index = np.array([q1_index,q2_index,q3_index]).astype(np.int32)
index -= 1
q = x[index]


结果如下:

image.png

绘制图形:


plt.figure(figsize=(15,4))
plt.xticks(x)
plt.plot(x,np.zeros(len(x)),ls="",marker="D",ms=15,label="元素值")
plt.plot(x[index],np.zeros(len(index)),ls="",marker="X",ms=15,label="四分位值")
plt.legend()


结果如下:

image.png


4)分位数不是数组中的元素的情况

x = np.arange(10,20)
n = len(x)
# 计算每个分位数的位置,这个位置是从1开始的。但是数组元素索引从0开始的
q1_index=1+(n-1)*0.25
q2_index=1+(n-1)*0.5
q3_index=1+(n-1)*0.75
q1_index,q2_index,q3_index
# 计算分位数
index = np.array([q1_index,q2_index,q3_index])
index
left = np.floor(index).astype(np.int32)
left
right = np.ceil(index).astype(np.int32)
right
weight = np.modf(index)[0]
weight
q = x[left] + (x[right] - x[left]) *weight
q


结果如下:

image.png

绘制图形:


plt.figure(figsize=(15,4))
plt.xticks(x)
plt.plot(x,np.zeros(len(x)),ls="",marker="D",ms=15,label="元素值")
plt.plot(q,np.zeros(len(q)),ls="",marker="X",ms=15,label="四分位值")
plt.legend()
for v in q:
    plt.text(v,0.01,v,fontsize=15)
plt.legend()


结果如下:

image.png


5)numpy中计算分位数的函数:quantile()

x = np.arange(10,19)
np.quantile(x,[0.25,0.5,0.75])
x = np.arange(10,20)
np.quantile(x,[0.25,0.5,0.75])


结果如下:

image.png

从结果中可以看到:上述我们自己计算的分位数结果,和使用该函数计算的分位数的结果,是一样的。


6)pandas中计算分位数的函数:describe()

x = pd.Series(np.arange(10,19))
x.describe()
x = pd.Series(np.arange(10,20))
x.describe()


结果如下:

image.png

相关文章
|
7月前
|
机器学习/深度学习 算法 数据可视化
数据挖掘(1)--基础知识学习
数据挖掘(Data Mining,DM)是知识发现(KDD)最核心的部分。 数据挖掘数学理论基础的发展,与统计学的发展密不可分。
57 0
|
25天前
|
机器学习/深度学习 自然语言处理 算法
探索机器学习的奥秘:从基础概念到算法解析
探索机器学习的奥秘:从基础概念到算法解析
39 0
|
8月前
|
机器学习/深度学习 人工智能
概率论的基础知识
概率论的基础知识
83 2
|
5月前
|
数据采集 数据可视化 数据挖掘
统计学基础:Python数据分析中的重要概念
统计学基础:Python数据分析中的重要概念
30 2
统计学基础:Python数据分析中的重要概念
|
9月前
|
决策智能
博弈论(一)基本概念
博弈论(一)基本概念
|
机器学习/深度学习 人工智能 自然语言处理
机器学习入门:概念原理及常用算法
机器学习入门:概念原理及常用算法
152 0
机器学习入门:概念原理及常用算法
|
机器学习/深度学习 数据采集 算法
机器学习知识点全面总结
机器学习知识点全面总结
474 0
机器学习知识点全面总结
|
机器学习/深度学习 人工智能 自然语言处理
机器学习基础概念|学习笔记
快速学习机器学习基础概念。
139 0
机器学习基础概念|学习笔记
统计学中基础概念说明(一)
统计学中基础概念说明(一)
统计学中基础概念说明(一)