什么是分位数回归(Quantile Regression)

发布时间:2026/9/12 23:58:02

什么是分位数回归(Quantile Regression) 在传统回归分析中我们最熟悉的是最小二乘回归OLS它刻画的是自变量变化对因变量条件均值的影响。但现实世界中很多问题并不只关心“平均水平”而是更关心高风险人群是否受到更大影响弱势群体是否对某些因素更敏感自变量对分布尾部如高血压人群、极端收入者、重症患者的影响是否不同这正是分位数回归Quantile Regression, QR的用武之地。一、什么是分位数回归分位数回归是一种用于建模条件分布不同分位点的方法。与普通回归建模条件均值不同分位数回归直接建模QY(τ∣Xx) Q_Y(\tau \mid X x)QY​(τ∣Xx)即在给定自变量XxX xXx时因变量YYY的第τ\tauτ分位数如中位数、90%分位数等。例如(τ\tauτ 0.5 )中位数回归(τ\tauτ 0.9 )高分位上尾回归(τ\tauτ 0.1 )低分位下尾回归。二、分位数回归的数学定义给定样本{(xi,yi)}i1n\{(x_i, y_i)\}_{i1}^n{(xi​,yi​)}i1n​分位数回归通过最小化以下目标函数来估计参数β^(τ)arg⁡min⁡β∑i1nρτ(yi−xi⊤β), \hat{\beta}(\tau) \arg\min_{\beta} \sum_{i1}^n \rho_\tau\big(y_i - x_i^\top \beta\big),β^​(τ)argβmin​i1∑n​ρτ​(yi​−xi⊤​β),其中损失函数ρτ(u)\rho_\tau(u)ρτ​(u)被称为不对称绝对损失函数check lossρτ(u){τu,u≥0,(τ−1)u,u0. \rho_\tau(u) \begin{cases} \tau u, u \ge 0, \\ (\tau - 1)u, u 0. \end{cases}ρτ​(u){τu,(τ−1)u,​u≥0,u0.​当 (τ\tauτ 0.5 ) 时该模型退化为中位数回归L1L1L1回归。可以看出为了让损失函数ρτ(u)\rho_\tau(u)ρτ​(u)最小(τ−1)u(\tau - 1)u(τ−1)u越小越好也就是对yi−xi⊤βy_i - x_i^\top \betayi​−xi⊤​β残差施加τ−1\tau - 1τ−1权重后越小越好残差符合正态分布也就是把残差往τ−1\tau - 1τ−1分位逼进。三、这里的“分位”到底是什么意思非常重要这是很多人对分位数回归最容易产生误解的地方。❌ 错误理解“把人群按YYY排序后取前 10%、中间 50%、后 10% 的人分别做回归。”✅ 正确理解分位数回归建模的是在控制其他自变量处于同一水平的条件下因变量YYY的条件分位数。也就是说QY(τ∣Xx) Q_Y(\tau \mid X x)QY​(τ∣Xx)不是总体分位而是在给定协变量XxX xXx的条件下YYY的第τ\tauτ分位点。你不是在对“人群分组”而是在对“如果所有人的协变量都相同结果变量在这个假想人群中的分布位置。”做建模。这一区别非常关键因为它确保分位数回归估计的是净效应而不是由混杂因素驱动的表面差异。四、分位数回归在模型层面上做了什么OLS 回归建模的是E(Y∣Xx)x⊤β E(Y \mid X x) x^\top \betaE(Y∣Xx)x⊤β而分位数回归建模的是QY(τ∣Xx)x⊤β(τ) Q_Y(\tau \mid X x) x^\top \beta(\tau)QY​(τ∣Xx)x⊤β(τ)也就是说每一个分位数τ\tauτ都对应一组不同的回归系数β\betaβ(τ\tauτ) 从而刻画自变量对因变量分布不同位置的影响差异。五、分位数回归的意义为什么要用它1. 揭示异质性效应OLS 只能告诉你“平均影响”但现实中影响往往具有异质性一个药物对轻症患者作用小对重症患者作用大教育对低收入群体影响大对高收入群体影响小。分位数回归可以显示这种效应随分位点变化的模式。2. 对异常值更稳健由于使用的是绝对损失而非平方损失分位数回归对极端值outliers不敏感尤其是中位数回归τ\tauτ 0.5。3. 可用于刻画整个条件分布通过对多个分位点如τ\tauτ 0.1, 0.25, 0.5, 0.75, 0.9建模可以近似重构FY∣X(y∣x) F_{Y \mid X}(y \mid x)FY∣X​(y∣x)从而获得比均值回归更丰富的信息。六、分位数回归斜率的意义是什么在 OLS 中斜率βj\beta_jβj​表示自变量XjX_jXj​增加一个单位因变量的条件均值增加βj\beta_jβj​。而在分位数回归中斜率βj(τ)\beta_j(\tau)βj​(τ)表示在控制其他变量不变的情况下自变量XjX_jXj​增加一个单位因变量的第τ\tauτ条件分位数增加βj(τ)\beta_j(\tau)βj​(τ)。换句话说如果βj(0.9)βj(0.5)\beta_j(0.9) \beta_j(0.5)βj​(0.9)βj​(0.5)说明该变量对高值人群的影响更大如果βj(0.1)≈0\beta_j(0.1) \approx 0βj​(0.1)≈0说明该变量对低值人群几乎没有影响。七、一个直观例子假设我们研究空气污染PM2.5对肺功能FEV₁的影响OLS 回归可能发现PM2.5 每增加 10 μg/m³FEV₁ 平均下降 30 mL。分位数回归可能发现在第 10 分位下降 10 mL在第 50 分位下降 30 mL在第 90 分位下降 60 mL。这说明空气污染对肺功能较差的人群影响更大这是均值回归无法揭示的关键信息。八、分位数回归与异方差的关系OLS 在存在异方差时效率下降而分位数回归天然允许Var(Y∣Xx) 随 x 变化 \text{Var}(Y \mid X x) \text{ 随 } x \text{ 变化}Var(Y∣Xx)随x变化通过观察不同分位数回归线的“展开”或“收缩”可以直观判断条件分布是否存在异方差或尾部结构变化。九、总结一句话OLS 回归告诉你“平均会发生什么”分位数回归告诉你“在相同条件下不同人群位置会发生什么”。如果你的研究关心弱势人群、高风险个体、极端结局、或效应异质性那么分位数回归不是可选项而是必选工具。R 实践模拟数据# 加载必要的包 rm(list ls()) library(quantreg) library(ggplot2) # 模拟数据 set.seed(42) n - 500 education - rnorm(n, mean 12, sd 2) income - 2000 300 * education rnorm(n, mean 0, sd 500) * ifelse(runif(n) 0.8, 10, 1) # 引入异常值 data - data.frame(education, income) # 绘制散点图 ggplot(data, aes(x education, y income)) geom_point(alpha 0.5) labs(title Scatter Plot of Income vs. Education, x Years of Education, y Income)传统线性回归lm_model - lm(income ~ education, data data) summary(lm_model)分位数回归qr_model - rq(income ~ education, tau 0.5, data data) summary(qr_model)多分位点回归qr_multi - rq(income ~ education, tau c(0.25, 0.5, 0.75), data data) summary(qr_multi)可视化# 加载必要包 library(ggplot2) library(quantreg) # 生成样本数据 set.seed(123) n - 300 education - rnorm(n, mean 12, sd 2) # 教育年限 income - 5000 2000 * education rnorm(n, sd 5000) # 收入 data - data.frame(education, income) # 拟合分位数回归 qr_25 - rq(income ~ education, tau 0.25, data data) # 25% 分位 qr_50 - rq(income ~ education, tau 0.5, data data) # 中位数回归 qr_75 - rq(income ~ education, tau 0.75, data data) # 75% 分位 # 提取系数 coef_25 - coef(qr_25) coef_50 - coef(qr_50) coef_75 - coef(qr_75) # 绘图 ggplot(data, aes(x education, y income)) geom_point(alpha 0.5, color grey50) # 散点图 # 添加分位数回归线 geom_abline(intercept coef_25[1], slope coef_25[2], color red, linewidth 1.2, linetype solid, show.legend TRUE) geom_abline(intercept coef_50[1], slope coef_50[2], color green, linewidth 1.2, linetype solid, show.legend TRUE) geom_abline(intercept coef_75[1], slope coef_75[2], color blue, linewidth 1.2, linetype solid, show.legend TRUE) # 添加注释 annotate(text, x 10, y max(data$income) * 0.9, label 25th Percentile, color red, size 4) annotate(text, x 10, y max(data$income) * 0.8, label 50th Percentile (Median), color green, size 4) annotate(text, x 10, y max(data$income) * 0.7, label 75th Percentile, color blue, size 4) # 主题设置 labs(title Quantile Regression Visualization, x Years of Education, y Income) theme_minimal()
延伸阅读

更多相关文章

2026/9/6 2:58:47

GriddyCode:基于Godot引擎的可视化代码编辑器深度解析

GriddyCode:基于Godot引擎的可视化代码编辑器深度解析 【免费下载链接】griddycode A code editor made with Godot. Code has never been more lit! 项目地址: https://gitcode.com/GitHub_Trending/gr/griddycode GriddyCode是一款采用Godot游戏引擎构建的…

2026/9/13 2:22:13

使用 Hugging Face Spaces 部署 marimo 交互式应用

使用 Hugging Face Spaces 部署 marimo 交互式应用 【免费下载链接】marimo A reactive notebook for Python — run reproducible experiments, query with SQL, execute as a script, deploy as an app, and version with git. Stored as pure Python. All in a modern, AI-n…

2026/9/13 2:22:12

STM32信号链上的Savitzky-Golay滤波:原理、实现与ADC实战

简介:Savitzky-Golay滤波器实现包面向STM32单片机平台,用于嵌入式系统在数据采集中对信号进行平滑除噪。该算法由Savitzky与Golay于1964年提出,核心为局域多项式最小二乘拟合,能够在抑制噪声的同时保持信号形状与宽度不变&#xf…

2026/9/13 2:17:12

番茄目标检测数据集:YOLO兼容高清标注与训练部署指南

简介:本资源是一套专为YOLO目标检测算法实践打造的番茄高清图像数据集,面向计算机、电子信息工程及数学等专业本科生开展课程设计、期末大作业与毕业设计使用,解决农业场景下目标检测模型训练缺乏高质量标注数据的痛点。压缩包共303个文件&am…

2026/9/13 0:01:16

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/13 0:01:16

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/12 6:29:36

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/12 14:32:17

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/12 6:37:43

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码