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

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

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

相关文章
|
机器学习/深度学习 自然语言处理 分布式计算
大规模语言模型与生成模型:技术原理、架构与应用
本文深入探讨了大规模语言模型(LLMs)和生成模型的技术原理、经典架构及应用。介绍了LLMs的关键特点,如海量数据训练、深层架构和自监督学习,以及常见模型如GPT、BERT和T5。同时,文章详细解析了生成模型的工作原理,包括自回归模型、自编码器和GANs,并讨论了这些模型在自然语言生成、机器翻译、对话系统和数据增强等领域的应用。最后,文章展望了未来的发展趋势,如模型压缩、跨模态生成和多语言多任务学习。
2574 3
|
IDE Java 应用服务中间件
Java“NoSuchFieldError”解决
“NoSuchFieldError”是Java中常见的运行时错误,通常由于访问不存在的类字段引起。解决方法包括:检查字段拼写、确保类路径正确、更新依赖库版本等。
2310 5
|
人工智能 自然语言处理 算法
AISEO咋做?2025年用AI优化SEO和GEO 的步骤
AISEO是AI与SEO结合的优化技术,通过人工智能生成关键词、标题、内容等,提升网站排名。它支持多语言、自动化创作,并利用高权重平台发布内容,让AI搜索更易抓取引用,实现品牌曝光与流量增长。
2399 10
|
Java 关系型数据库 MySQL
基于springboot的网咖网吧管理系统
本文探讨了基于Java、MySQL和SpringBoot的网吧管理系统的设计与实现。随着信息化发展,传统管理方式难以满足需求,而该系统通过先进技术提升管理效率、保障数据安全、降低运营成本,具有重要意义。
|
人工智能 API 开发者
图文教程:阿里云百炼API-KEY获取方法,亲测全流程
本文详细介绍了如何获取阿里云百炼API-KEY,包含完整流程与截图指引。需先开通百炼平台及大模型服务,再通过控制台创建并复制API-KEY。目前平台提供千万tokens免费额度,适合开发者快速上手使用。
7341 5
|
JSON API UED
汇率查询API实战指南:通过Python调用获取多国汇率信息
本文介绍如何通过 Python 快速集成多币种汇率查询接口,实现实时获取全球主要货币汇率数据。适用于跨境电商价格换算、国际贸易结算等场景,帮助提升用户体验并规避汇率波动风险。
2230 0
汇率查询API实战指南:通过Python调用获取多国汇率信息
|
数据采集 存储 JavaScript
提升数据采集技能:用 Axios 实现的 Twitter 视频下载器全面解析
Twitter上的视频内容丰富多样,涵盖了新闻、娱乐、教育、体育等各个领域。这些视频内容对于数据科学家来说,是一种有价值的数据形式,可以用于进行内容分析、情感分析、话题挖掘、事件检测等多种任务。然而,Twitter标准API并没有提供直接下载视频的功能,这给数据采集带来了一定的困难。为了克服这一挑战,我们将使用Axios库,结合代理IP技术,构建一个高效的视频下载器。
860 1
提升数据采集技能:用 Axios 实现的 Twitter 视频下载器全面解析
|
Java Apache Maven
Java将word文档转换成pdf文件的方法?
【10月更文挑战第13天】Java将word文档转换成pdf文件的方法?
6094 1
|
安全 测试技术 Python
XSS 检测神器:XSSfork 保姆级教程
XSS 检测神器:XSSfork 保姆级教程
XSS 检测神器:XSSfork 保姆级教程
|
存储 Java Linux
SQLite3数据库的安装与使用教程
SQLite3数据库的安装与使用教程

热门文章

最新文章