当我们在讨论"教育让收入增长8%"时,这个"8%"对月薪3000的外卖骑手和月薪3万的程序员来说是一样的吗?
分位数回归告诉你:不一样,而且差距触目惊心。
一、为什么OLS不够用?
传统的OLS(普通最小二乘法)回归只告诉你均值的故事:
但真实世界是异质性的:
- • 同一项政策,是否在不同人群中产生截然不同的效果?
OLS的均值预测掩盖了这些关键信息。
这就是分位数回归(Quantile Regression)诞生的意义。
二、分位数回归原理
2.1 核心思想
分位数回归由 Koenker & Bassett(1978)提出,通过最小化加权绝对偏差估计条件分位数函数:
其中 是检验函数(check function)。
2.2 与OLS的对比
2.3 经济学直觉
想象一下教育对收入的影响:
OLS告诉你:每多读一年书,收入平均增长11.3%分位数回归告诉你: - τ=10%(低收入群体):增长9.6% - τ=50%(中收入群体):增长11.1% - τ=90%(高收入群体):增长12.7%
差距:3个百分点——这个数字在学术上被称为"异质性处理效应"。
三、Python实战:教育对收入的影响
3.1 数据生成
import numpy as npimport pandas as pdimport statsmodels.api as smfrom statsmodels.regression.quantile_regression import QuantReg# 模拟3000个样本n = 3000np.random.seed(42)# 教育年限(6-22年)education = np.random.randint(6, 22, n)# 收入生成机制:存在异质性# 低分位数:教育回报率低;高分位数:教育回报率高sigma = 0.3 + 0.2 * (education / 22) # 异方差epsilon = np.random.normal(0, sigma)# 收入 = 基准 + 教育效应(随分位数递增)+ 噪声log_income = 8.5 + 0.05 * education + 0.03 * education + epsilonincome = np.exp(log_income)# 控制变量experience = np.random.randint(0, 40, n)gender = np.random.binomial(1, 0.55, n)region = np.random.binomial(1, 0.4, n)df = pd.DataFrame({ 'income': income, 'log_income': log_income, 'education': education, 'experience': experience, 'gender': gender, 'region': region})
3.2 分位数回归估计
# 准备变量X = df[['education', 'experience', 'gender', 'region']]X = sm.add_constant(X)y = df['log_income']# 分位数列表quantiles = [0.1, 0.25, 0.5, 0.75, 0.9]# 估计多个分位数results = {}for q in quantiles: model = QuantReg(y, X) result = model.fit(q=q, vcov='robust') # 稳健标准误 results[q] = result print(f"τ = {q}: 教育系数 = {result.params['education']:.4f}")# OLS对比ols_model = sm.OLS(y, X).fit()print(f"OLS: 教育系数 = {ols_model.params['education']:.4f}")
3.3 回归结果
四、可视化分析
4.1 教育回报率的异质性

关键发现:教育系数从低分位到高分位呈单调递增趋势——教育对高收入群体的回报显著更高。
4.2 分位数回归线对比

可以看到,不同分位数的回归线斜率明显不同,而OLS只是穿过中间的一条直线。
4.3 完整分位数谱系

细粒度分析(τ从5%到95%)更清晰地展示了教育回报率的递增趋势。
4.4 不同方法对比

从低收入到高收入群体,教育回报率差距达3个百分点——这个数字背后是真实的阶层分化。
五、经济学含义
5.1 异质性效应
分位数回归的核心价值在于揭示异质性处理效应(Heterogeneous Treatment Effects):
同样的政策、同样的教育,在不同人群中效果截然不同。
5.2 政策启示
- 1. 教育扩张可能加剧不平等:高收入群体从教育中获得更多回报
- 2. 精准施策:需要针对不同收入群体设计差异化政策
5.3 学术应用场景
六、代码模板
import statsmodels.api as smfrom statsmodels.regression.quantile_regression import QuantReg# 基础模板X = sm.add_constant(df[['x1', 'x2', 'x3']])y = df['y']# 单一分位数model = QuantReg(y, X)result = model.fit(q=0.5, vcov='robust')# 多个分位数(批量估计)quantiles = np.arange(0.1, 0.91, 0.1)for q in quantiles: result = QuantReg(y, X).fit(q=q, vcov='robust') print(f"τ={q}: coef={result.params['x1']:.4f}")
七、参考文献
- 1. Koenker, R., & Bassett, G. (1978). Regression quantiles. Econometrica, 46(1), 33-50.
- 2. Koenker, R. (2005). Quantile Regression. Econometric Society Monographs, Cambridge University Press.
- 3. Koenker, R., & Hallock, K. F. (2001). Quantile regression. Journal of Economic Perspectives, 15(4), 143-156.
- 4. Angrist, J. D., & Pischke, J. S. (2009). Mostly Harmless Econometrics. Princeton University Press.
- 5. Hansen, B. E. (2024). Econometrics. Princeton University Press.(第24章:分位数回归)
八、结语
分位数回归不仅仅是一种计量方法,更是一种思维方式——
"均值"只是故事的开始,"分布"才是真相的全貌。
当你下次看到"平均收入增长X%"的新闻时,不妨追问一句:增长的是谁的收入?