数据分析师应该知道的16种回归技术:分位数回归

2018 年 8 月 8 日 数萃大数据

分位数回归是线性回归的扩展,当数据中存在异常值或数据具有高偏性和异方差性时,可以采用分位数回归来分析数据。


线性回归是给定的自变量,预测因变量的均值。由于均值不能描述整个分布的属性,因此对均值的建模不能充分反映自变量与因变量间的相互关系。分位数会回归可以基于给定的自变量预测因变量的任意分位数或百分比。对于分位数回归,需要注意的是它只适用于具有连续型因变量的数据集。


分位数回归

对于q分位数,设回归模型:

看上去像线性回归模型,但是最小化的目标函数为:

对应一种特殊的分位数回归模型:中位数回归或绝对最小偏差回归,此时对应的最小化目标函数为:

注:不同分位数下模型参数的估计值也不同。

同线性回归相比,分位数回归具有以下优势:

  • 益于异方差数据分析

  • 对异常值稳健

  • 通过不同的分位数描述因变量的分布特征

  • 当数据有偏时,比线性回归更有用


案例

R中进行分位数回归可以使用quantreg包中的rq函数,该函数的使用方法与lm函数相同,另外这个包也提供了关于分位数回归的可视化方法,如查看某个系数在不同分位数回归下的变化情况和置信区间。

构造具有异方差的变量

  
  
    
  1. x <- seq(0,100,length.out = 100)

  2. sig <- 0.1 + 0.05*x

  3. b_0 <- 6;b_1 <- 0.1

  4. set.seed(1)

  5. e <- rnorm(100,mean = 0, sd = sig)

  6. y <- b_0 + b_1*x + e

  7. dat <- data.frame(x,y)

在不同分位数下进行分位数回归

  
  
    
  1. qs <- 1:9/10

  2. qr <- rq(y ~ x, data=dat, tau = qs)

  3. coef(qr)

线性回归

  
  
    
  1. lr <- lm(y ~ x, data=dat)

  2. coef(lr)

下面左图是y的密度图,可以看到y稍微左偏(不同教材关于左右偏的定义不同,这里认为那边胖尾朝那边偏);右图是lr和qr拟合图,可以看到qr=0.5(中位数回归)的拟合曲线几乎和lr拟合曲线一致。

  
  
    
  1. op=par(mfrow=c(1,2))

  2. cols <- rainbow(9)

  3. plot(x,y)

  4. lines(x,coef(lr)[1]+x*coef(lr)[2],lwd=2)

  5. for (i in 1:9) {

  6.  lines(x,coef(qr)[1,i]+x*coef(qr)[2,i],lty=3,

  7.        col=cols[i],lwd=3)

  8. }

  9. legend('topleft',c('lr',paste('qr',qs)),

  10.       lty=c(1,rep(3,9)),lwd = c(2,rep(3,9)),

  11.       col = c('black',cols),bty = 'n',

  12.       cex = 0.85,text.font = 2)

  13. plot(density(y))

  14. par(op)

查看不同分位数下截距和斜率的变化,图中的红色实线是线性回归下的截距和斜率,红色虚线是其对应的95%区间.由于quantreg包对基础绘图中plot的改写,一页多图能使用par中mfrow和mfcol设置,不过cowplot中的plot_grid函数可以解决这个问题,它适用于一切绘图系统的一页多图设置。

  
  
    
  1. p1=function() plot(summary(qr),'(Intercept)')

  2. p2=function() plot(summary(qr),'x')

  3. cowplot::plot_grid(p1,p2)


推荐阅读

数据分析师应该知道的16种回归技术:逻辑回归

数据分析师应该知道的16种回归技术:KNN回归

从零开始深度学习第6讲:神经网络优化算法之从SGD到Adam

从零开始深度学习:dropout与正则化

谈谈大数据的那点事(4) -----《人们在“忽悠”统计学》


长按二维码关注“数萃大数据”


登录查看更多
29

相关内容

线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y = w'x+e,e为误差服从均值为0的正态分布。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
商业数据分析,39页ppt
专知会员服务
157+阅读 · 2020年6月2日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
189+阅读 · 2020年3月12日
台湾大学林轩田机器学习书籍《从数据中学习》,216页pdf
一文读懂线性回归、岭回归和Lasso回归
CSDN
33+阅读 · 2019年10月13日
数据分析师应该知道的16种回归方法:负二项回归
数萃大数据
72+阅读 · 2018年9月16日
数据分析师应该知道的16种回归技术:弹性网络回归
数萃大数据
88+阅读 · 2018年8月16日
LASSO回归与XGBoost:融合模型预测房价
论智
30+阅读 · 2018年8月8日
机器学习者都应该知道的五种损失函数!
数盟
5+阅读 · 2018年6月21日
动手写机器学习算法:SVM支持向量机(附代码)
七月在线实验室
12+阅读 · 2017年12月5日
回归预测&时间序列预测
GBASE数据工程部数据团队
43+阅读 · 2017年5月17日
q-Space Novelty Detection with Variational Autoencoders
Feature Selection Library (MATLAB Toolbox)
Arxiv
7+阅读 · 2018年8月6日
VIP会员
相关资讯
一文读懂线性回归、岭回归和Lasso回归
CSDN
33+阅读 · 2019年10月13日
数据分析师应该知道的16种回归方法:负二项回归
数萃大数据
72+阅读 · 2018年9月16日
数据分析师应该知道的16种回归技术:弹性网络回归
数萃大数据
88+阅读 · 2018年8月16日
LASSO回归与XGBoost:融合模型预测房价
论智
30+阅读 · 2018年8月8日
机器学习者都应该知道的五种损失函数!
数盟
5+阅读 · 2018年6月21日
动手写机器学习算法:SVM支持向量机(附代码)
七月在线实验室
12+阅读 · 2017年12月5日
回归预测&时间序列预测
GBASE数据工程部数据团队
43+阅读 · 2017年5月17日
Top
微信扫码咨询专知VIP会员