分位数(quantile)

本文介绍了统计学中四分位数的概念及其计算方法,并通过两个实例详细展示了如何确定第一、第二和第三四分位数的位置及计算过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

clip_image001

clip_image002

------------------------------------------------------------------------------------------------------

四分位数(Quartile),即统计学中,把所有数值由小到大排列并分成四等份,处于三个分割点位置的得分就是四分位数。

第一四分位数 (Q1),又称“较小四分位数”,等于该样本中所有数值由小到大排列后第25%的数字

第二四分位数 (Q2),又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字。

第三四分位数 (Q3),又称“较大四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。

第三四分位数与第一四分位数的差距又称四分位距(InterQuartile Range,IQR)。

首先确定四分位数的位置:

Q1的位置= (n+1) × 0.25

Q2的位置= (n+1) × 0.5

Q3的位置= (n+1) × 0.75

n表示项数

对于四分位数的确定,有不同的方法,另外一种方法基于N-1 基础。即

Q1的位置=(n-1)x 0.25

Q2的位置=(n-1)x 0.5

Q3的位置=(n-1)x 0.75

Excel 中有两个四分位数的函数。QUARTILE.EXC 和QUARTILE.INC

QUATILE.EXC 基于 N+1 的方法,QUARTILE.INC基于N-1的方法。

clip_image003

实例1

数据总量: 6, 47, 49, 15, 42, 41, 7, 39, 43, 40, 36

由小到大排列的结果: 6, 7, 15, 36, 39, 40, 41, 42, 43, 47, 49

一共11项

Q1 的位置=(11+1) × 0.25=3, Q2 的位置=(11+1)× 0.5=6, Q3的位置=(11+1) × 0.75=9

Q1 = 15,

Q2 = 40,

Q3 = 43

实例2

数据总量: 7, 15, 36, 39, 40, 41

一共6项

Q1 的位置=(6+1)× 0.25=1.75, Q2 的位置=(6+1) × 0.5=3.5, Q3的位置=(6+1) × 0.75=5.25

Q1 = 7+(15-7)×(1.75-1)= 13,

Q2 = 36+(39-36)×(3.5-3)= 37.5,

Q3 = 40+(41-40)×(5.25-5)= 40.25

1、将数据从小到大排序,计为数组a(1 to n),n代表数据的长度

2、确定四分位数的位置:b= 1+(n-1) × 0.25= 2.25,b的整数部分计为c b的小数部分计为d

计算Q1:Q1=a(c)+[a(c+1)-a(c)]*d=a(1)+[a(2)-a(1)] *0.25 =15+(36-15)×(2.25-2)=20.25

3、计算如上 Q2与Q3的求法类似,四分位差=Q3-Q1

 

R语言举例

> x=c(6, 7, 15, 36, 39, 40, 41, 42, 43, 47, 49)
> quantile(x,.25)
### 分位数变换及其在数据处理和机器学习中的实现 #### 1. 分位数变换的概念 分位数变换是一种常见的数据预处理技术,其核心思想是通过调整原始数据的分布特性来满足特定需求。具体来说,它会将输入的数据映射到一个新的空间,在这个新空间中,数据服从均匀分布或其他指定的目标分布[^1]。 对于给定的一组样本 \(X\),可以通过以下方式完成分位数变换: - 计算样本的经验累积分布函数 (Empirical Cumulative Distribution Function, ECDF),记作 \(F_X(x)\)。 - 将每个样本值 \(x_i\) 映射为其对应的累计概率 \(p_i = F_X(x_i)\)。 - 如果目标分布已知,则进一步将这些累计概率转换为目标分布下的量化值。 这种变换通常用于标准化不同特征之间的尺度差异或者减少异常值的影响。 #### 2. 使用Python实现分位数变换 Scikit-Learn 提供了一个名为 `QuantileTransformer` 的工具类,可以方便地执行分位数变换操作: ```python from sklearn.preprocessing import QuantileTransformer import numpy as np # 创建示例数据集 data = np.array([[1], [2], [3], [4], [5]]) # 初始化并拟合模型 qt = QuantileTransformer(output_distribution='normal', n_quantiles=5) transformed_data = qt.fit_transform(data) print("Original Data:\n", data.flatten()) print("Transformed Data:\n", transformed_data.flatten()) ``` 在此代码片段中,参数 `output_distribution='normal'` 表明我们希望最终的结果近似于正态分布;而 `n_quantiles` 则定义了离散化过程中使用的分位数数量[^1]。 #### 3. 应用场景分析 ##### (1)数据清洗与特征工程 当面对具有显著偏斜度(skewness) 或者存在极端值(outliers) 的连续型变量时,采用分位数变换能够有效缓解这些问题带来的负面影响。例如,在构建线性回归模型之前对某些预测因子实施该种转化可能会提升整体性能表现[^2]。 ##### (2)图像增强领域 除了结构化表格形式的数据外,分位数变换同样适用于非传统类型的资料比如图片像素强度矩阵。通过对每张照片单独施行全局对比拉伸(global contrast normalization),可以使后续分类任务更加容易区分边界模糊的对象类别。 ##### (3)时间序列建模准备阶段 针对金融交易记录这类高频采样得到的时间序列信号而言,利用历史窗口内的条件分位估计(conditioning on past observations) 来动态更新当前时刻的状态表示也是一种非常实用的技术手段之一[^2]。 #### 4. 结论总结 综上所述,无论是为了改善算法收敛速度还是提高泛化能力考虑,合理运用分位数变换都是一项值得推荐的选择策略。然而需要注意的是,任何一种方法都有其局限性和适用前提条件,因此实际项目开发当中还需要结合具体情况灵活判断取舍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值