分位数回归(quantile regression)
这一讲,我们谈谈分位数回归的知识,我想大家传统回归都经常见到。分位数回归可能大家见的少一些,其实这个方法也很早了,大概78年代就有了,但是那个时候这个理论还不完善。到2005年的时候,分位数回归的创立者Koenker R写了一本分位数回归的专著,剑桥大学出版社出版的。今年本来老爷子要出一本《handbook of quantile regression》,还没有正式出来呢,目前来看,分位数回归应用的范围非常广。在金融领域尤为重要。下面先给大家简单介绍一下,分位数回归的基本原理,完后拿R做一个完整的案例。为什么拿R软件,因为分位数回归的发明者最早拿R写了一个包,叫quantreag,是当时唯一一个分位数回归的包,现在的话,看到python,julia也有相关的包了。但是感觉这个R的还是最好的。
那么什么是分位数回归呢,这个就要从传统的回归说起,传统回归呢,一般叫最小二乘回归,也叫均值回归。这个均值是指条件均值。比较抽象,在前面有一篇博文中,我比较详细地解释过。那么分位数回归就是均值回归的拓展,也就是它可以拟合均值以外的其它分位点,形成多条回归线,这里首先需要强调的是分位数回归的分位点是指因变量y的分位点,不是x的。这样我们如果设定多个分位点就得到了多条回归直线。当然分位数回归现在也发展出来非线性分位数回归,就是可以拟合出多条曲线,或者和广义线性回归模型一样可以适用二值变量。要说分位数回归具体的原理,后面有空再细谈。下面我们拿R语言做一个案例,大家就可以逐渐感受到分位数回归具体的含义了。案例所用的数据呢,大家应该都比较熟悉,就是收入和食品消费支出的数据,下面看代码。
#导入分位数回归的包
library(quantreg)
# 引入数据
data(engel)
#查看数据格式
mode(engel)
[1] "list"
#查看变量名
names(engel)
[1] "income" "foodexp"
#查看格式
class(engel)
[1] "data.frame"
#查看数据的前五行
head(engel)
income foodexp
1 420.1577 255.8394
2 541.4117 310.9587
3 901.1575 485.6