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

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

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

相关文章
|
10月前
|
机器学习/深度学习 传感器 算法
【机器学习】多元线性回归基本概念
【1月更文挑战第23天】【机器学习】多元线性回归基本概念
|
机器学习/深度学习 数据采集 人工智能
机器学习基础知识——基本原理、常用算法与评估指标
机器学习基础知识——基本原理、常用算法与评估指标
920 0
|
7月前
|
机器学习/深度学习 数据可视化 算法
深入浅出:可视化理解揭示决策树与梯度提升背后的数学原理
本文将通过视觉方式解释用于分类和回归问题的决策树的理论基础。我们将看到这个模型是如何工作的,以及为什么它可能会导致过拟合。首先将介绍梯度提升以及它是如何改善单个决策树的性能的。然后将用Python从头实现梯度提升回归器和分类器。最后详细解释梯度提升背后的数学原理。
100 3
深入浅出:可视化理解揭示决策树与梯度提升背后的数学原理
|
8月前
|
机器学习/深度学习 数据可视化 测试技术
统计学入门:时间序列分析基础知识详解
本文探讨了时间序列分析的核心概念,包括自协方差、自相关和平稳性。通过Python实现和图形化展示了这些概念,以增进理解。时间序列涉及观察随时间变化的数据,如心率或温度。自协方差和自相关衡量数据点之间的关系,滞后表示时间间隔。弱平稳性意味着均值、方差和协方差不随时间变化。文章介绍了自回归(AR)、移动平均(MA)、ARMA和ARIMA模型,用于描述不同类型的序列行为。统计检验如ADF和Durbin-Watson用于检测平稳性和残差自相关。ARIMA模型特别适用于非平稳数据,通过差分实现平稳化。文章还提供了代码示例和可视化来辅助学习。
133 4
|
机器学习/深度学习 人工智能
概率论的基础知识
概率论的基础知识
140 2
|
9月前
|
算法 数据挖掘 定位技术
算法必备数学基础:图论方法由浅入深实践与应用
算法必备数学基础:图论方法由浅入深实践与应用
|
数据采集 数据可视化 数据挖掘
统计学基础:Python数据分析中的重要概念
统计学基础:Python数据分析中的重要概念
81 2
统计学基础:Python数据分析中的重要概念
|
机器学习/深度学习 Python
【机器学习】混淆矩阵的原理(理论+图解)
【机器学习】混淆矩阵的原理(理论+图解)
393 0
【机器学习】混淆矩阵的原理(理论+图解)
|
机器学习/深度学习 人工智能 自然语言处理
机器学习入门:概念原理及常用算法
机器学习入门:概念原理及常用算法
207 0
机器学习入门:概念原理及常用算法
|
机器学习/深度学习 算法 数据可视化
机器学习原理与实战 | K近邻算法实践
机器学习原理与实战 | K近邻算法实践
241 0
机器学习原理与实战 | K近邻算法实践

热门文章

最新文章