多元线性模型的分位数回归

  • 一、为什么要使用分位数回归?
  • 二、分位数回归基本模型
  • 三、分位数回归估计--线性规划
    • 3.1损失函数
    • 3.2目标函数
    • 3.3线性规划
    • 3.4回归算法
  • 四、实际案例分析与python编程计算
    • 4.1引入数据集
    • 4.2计算β^\widehat{\beta}β​
  • 五、参考文献

一、为什么要使用分位数回归?

众所周知,对于线性模型Y=Xβ+εY=X\beta+\varepsilonY=Xβ+ε,人们往往习惯于使用均值回归。但是均值回归往往更关注的只是均值,对于数据的“其他部位”往往照顾不够。有时不能较为客观地反映一组数据的各个层次的实际情况。比如我是一名还在读大三的本科生,我和当前的世界首富埃隆▪马斯克人均财富千亿美元级别,显然这个均值对于反映我的财富水平来说是毫无意义的,甚至是有信息误导的作用。但是如果试想使用分位数回归,那我就可以避免被马斯克平均了。
       我们知道在均值回归的普通最小二乘法中,我们是通过求残差的平方和最小来估计参数的。而在分位数回归中我们通常求残差的绝对值的加权求和最小来估计参数。就我目前了解,这样做的目的之一是减小离群点的大误差对整体回归估计的影响。例如,通常离群点处的残差是远远大于1的,在这种情况下残差的绝对值就要远小于残差的平方值,所以使用残差的绝对值可以减少离群点处的误差对整体回归的影响,而这也算是我们进行分位数回归的初衷之一。
       分位数回归通常是采用最小一乘法,而最小一乘法对误差项ε\varepsilonε并没有要求其服从正态分布,所以相比于均值回归通常采用的最小二乘法对误差ε\varepsilonε要求服从正态分布来说,最小一乘法的误差ε\varepsilonε更具有普遍性。
       总的来说相比于均值回归,(1)分位数回归对数据分布的情况掌握的更全面客观。(2)使用分位数回归,离群点对于数据整体的影响要比较使用均值回归小的多。所以我们也可以说分位数回归更加稳健。(3)分位数回归对于误差项更具有普适性。

二、分位数回归基本模型

Y(θ)=Xβ(θ)+ε(θ)(1)Y^{(\theta)}=X\beta^{(\theta)}+\varepsilon^{(\theta)} \tag{1}Y(θ)=Xβ(θ)+ε(θ)(1)
       其中θ\thetaθ为分位数,对于实随机变量YYY,其右连续分布函数为F(y)=P(Y≤y)F(y)=P(Y\leq y)F(y)=P(Y≤y),YYY的θ\thetaθ分位数函数为F−1(θ)=inf(y:F(y)≥θ)F^{-1}(\theta)=inf(y:F(y)\ge \theta)F−1(θ)=inf(y:F(y)≥θ),也即第100θ%100\theta\%100θ%的yyy。
       其中,Y(θ)=[y1y2⋮yn],X=[1x11⋯x1p1x21⋯x2p⋮⋮⋱⋮1xn1⋯xnp]β(θ)=[β0β1⋮βp],ε(θ)=[ε1ε2⋮εn]Y^{(\theta)}=\left[ \begin{matrix} y_{1} \\ y_{2} \\ \vdots \\ y_{n} \end{matrix} \right] ,X=\left[ \begin{matrix} 1&x_{11}&\cdots&x_{1p} \\ 1&x_{21}&\cdots&x_{2p} \\ \vdots&\vdots&\ddots&\vdots \\ 1 &x_{n1}&\cdots&x_{np} \end{matrix} \right]\\ \beta^{(\theta)}=\left[ \begin{matrix} \beta_{0} \\ \beta_{1} \\ \vdots \\ \beta_{p} \end{matrix} \right],\varepsilon^{(\theta)}=\left[ \begin{matrix} \varepsilon_{1} \\ \varepsilon_{2} \\ \vdots \\ \varepsilon_{n} \end{matrix} \right] Y(θ)=⎣⎢⎢⎢⎡​y1​y2​⋮yn​​⎦⎥⎥⎥⎤​,X=⎣⎢⎢⎢⎡​11⋮1​x11​x21​⋮xn1​​⋯⋯⋱⋯​x1p​x2p​⋮xnp​​⎦⎥⎥⎥⎤​β(θ)=⎣⎢⎢⎢⎡​β0​β1​⋮βp​​⎦⎥⎥⎥⎤​,ε(θ)=⎣⎢⎢⎢⎡​ε1​ε2​⋮εn​​⎦⎥⎥⎥⎤​

三、分位数回归估计–线性规划

3.1损失函数

定义损失函数为ρθ(ε)=ε(θ−I(ε))(2)\rho_{\theta}(\varepsilon)=\varepsilon(\theta-I(\varepsilon))\tag{2}ρθ​(ε)=ε(θ−I(ε))(2)
       其中,
I(ε)={0,ε≥01,ε<0(3)I(\varepsilon)= \begin{cases} 0, \varepsilon\ge0 \\ 1, \varepsilon<0 \end{cases}\tag{3}I(ε)={0,ε≥01,ε<0​(3)

3.2目标函数

一般地,根据Koenker(1978)Koenker(1978)Koenker(1978),对于θ\thetaθ分位数回归,我们的目标函数通常采用如下函数:
min⁡β∈Rm∑i=1nρθ(yi−xi′β)(4)\min_{\beta\in R^{m}}\sum_{i=1}^{n}\rho_{\theta}(y_{i}-x_{i}'\beta)\tag{4}β∈Rmmin​i=1∑n​ρθ​(yi​−xi′​β)(4)

3.3线性规划

对于式(4)(4)(4),我们可以用另一种等价形式表达:min⁡β∈Rm∑i=1n[θui+(1−θ)vi](5)\min_{\beta\in R^{m}}\sum_{i=1}^{n}[\theta u_{i}+(1-\theta)v_{i}]\tag{5}β∈Rmmin​i=1∑n​[θui​+(1−θ)vi​](5)
       其中ui,viu_{i},v_{i}ui​,vi​分别是(yi−xi′β)(y_{i}-x_{i}'\beta)(yi​−xi′​β)的正部和负部:
ui={yi−xi′β,yi−xi′β≥00,yi−xi′β<0(6)u_{i}=\begin{cases} y_{i}-x_{i}'\beta, y_{i}-x_{i}'\beta\ge0 \\ \quad\quad\quad0, y_{i}-x_{i}'\beta<0 \end{cases}\tag{6}ui​={yi​−xi′​β,yi​−xi′​β≥00,yi​−xi′​β<0​(6)
vi={0,yi−xi′β≥0yi−xi′β,yi−xi′β<0(7)v_{i}=\begin{cases} \quad\quad\quad0, y_{i}-x_{i}'\beta\ge0 \\ y_{i}-x_{i}'\beta, y_{i}-x_{i}'\beta<0 \end{cases}\tag{7}vi​={0,yi​−xi′​β≥0yi​−xi′​β,yi​−xi′​β<0​(7)
       我们知道,一个函数等于它的正部−-−负部,一个函数的绝对值等于它的正部+++负部。所以,我们可以得到下面的线性规划:
{min⁡∑i=1n[θui+(1−θ)vi]xi′β+ui−vi=yiβ∈Rm,ui≥0,vi≥0,i=1,2,⋯,n(8)\begin{cases} \min\sum_{i=1}^{n}[\theta u_{i}+(1-\theta)v_{i}]\\ x_{i}'\beta+u_{i}-v_{i}=y_{i}\\ \beta\in R^{m},u_{i}\ge0,v_{i}\ge0,i=1,2,\cdots,n \end{cases}\tag{8}⎩⎪⎨⎪⎧​min∑i=1n​[θui​+(1−θ)vi​]xi′​β+ui​−vi​=yi​β∈Rm,ui​≥0,vi​≥0,i=1,2,⋯,n​(8)
       对于该线性规划,
{A=[XIn−In],B=YC=[01×(p+1),θ1×n,(1−θ)1×n](9)\begin{cases}A=\left[\begin{matrix} X&I_{n}&-I_{n} \end{matrix} \right],B=Y \\ C=[0_{1\times(p+1)},\theta_{1\times n},(1-\theta)_{1\times n}]\end{cases}\tag{9}{A=[X​In​​−In​​],B=YC=[01×(p+1)​,θ1×n​,(1−θ)1×n​]​(9)

3.4回归算法

step(1)step(1)step(1):输入回归数据XXX和YYY
step(2)step(2)step(2):根据(9)(9)(9)计算出线性规划的相关矩阵A,B,CA,B,CA,B,C
step(3)step(3)step(3):将A,B,CA,B,CA,B,C带入线性规划算法模块,求得最优解(β,u,v)T(\beta,u,v)^{T}(β,u,v)T

注:关于相关的线性规划算法本文不再赘述。

四、实际案例分析与python编程计算

4.1引入数据集

我们以著名的HaldHaldHald数据为例。

图4.1.1

4.2计算β^\widehat{\beta}β​

下面给出计算多元线性模型分位数回归方程完整pythonpythonpython源代码:

import pandas as pd
import numpy as np
from scipy import optimize
#----------------------多元线性模型的分位数回归---------------------------------------------------------#导入数据
dataset1=pd.read_excel('Hald.xlsx')
dataset2=pd.read_excel('Hald.xlsx')#输入分位数theta
theta=[0.1,0.25,0.5,0.75,0.9]
#计算X,Y
Y=dataset1['Y'].values
dataset2['Y']=1
X=dataset2.values#计算A,B
n=len(X)
B=Y
In=np.eye(n)
A=np.hstack((X,In,-In))
p=len(X[0])-1
l=np.ones(n,np.int)
o=np.zeros(p+1,np.int)#给出线性规划的自变量取值范围
b=[]
for i in range(p+1):b.append(((None,None)))
for i in range(2*n):b.append((0,None))#使用optimize包的linprog函数求解线性规划
for i in theta:C = np.hstack((o, i * l, (1 - i) * l))r = optimize.linprog(C,A_eq=A,b_eq=B,bounds=b)x=r.x#计算β估计beta=[]print('多元线性模型的{}分位数回归方程为:\ny='.format(i), end='')for i in range(p+1):beta.append(x[i])print(beta[0], end='')for i in range(1, p + 1):if beta[i] > 0:print('+{}x{}'.format(beta[i], i), end='')else:print('{}x{}'.format(beta[i], i), end='')print('\n',end='')

下面给出程序运行结果:

图4.2.1

五、参考文献

[1]分位数回归理论及其在金融风险测量中的应用/王新宇著.——北京:科学出版社,2010.6
[2]吕书龙. 最小一乘估计快速算法的研究[D].福州大学,2003.

多元线性模型的分位数回归相关推荐

  1. 贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据...

    原文链接:http://tecdat.cn/?p=22702 贝叶斯回归分位数在最近的文献中受到广泛关注,本文实现了贝叶斯系数估计和回归分位数(RQ)中的变量选择,带有lasso和自适应lasso惩罚 ...

  2. wald检验_笔记:分位数回归斜率相等性检验(Wald检验)

    首先我并不是统计学.数学类专业的,对很多统计模型搞不明白的,下文所写也仅是学渣的学习笔记吧,都是些基础操作,希望能帮到忙吧. 从毕业论文角度出发的分位数回归模型分享: 我是一个文科类.经济类的专业,我 ...

  3. 【R】【课程笔记】07 分位数回归与VaR(ES)计算

    本文是课程<数据科学与金融计算>第7章的学习笔记,主要介绍计算VaR/ES风险测度的各种方法和极值理论等,用于知识点总结和代码练习,Q&A为问题及解决方案. 往期回顾: 博文 内容 ...

  4. 数据分析36计(19):美国生鲜配送平台【Instacart】如何实现按时配送——使用分位数回归...

    往期系列原创文章集锦: 数据分析36计(18):Shopify如何使用准实验和反事实来优化产品 数据分析36计(17):Uber的 A/B 实验平台搭建 数据分析36计(16):和 A/B 测试同等重 ...

  5. 多元线性模型中共线性产生的原因解析

    在很多书籍中谈到了共线性问题,作为多元统计中基本假设之一,却经常被违背,影响模型稳定性和统计power.在不少的论文中谈到了,国内的很多书籍往往一笔带过.因为,属于统计计算领域内容,非专业人士,也鲜有 ...

  6. 机器学习(多元线性回归模型逻辑回归)

    多元线性回归 定义:回归分析中,含有两个或者两个以上自变量,称为多元回归,若自变量系数为1,则此回归为多元线性回归. (特殊的:自变量个数为1个,为一元线性回归)多元线性回归模型如下所示: 如上图所示 ...

  7. R语言分位数回归Quantile Regression分析租房价格

    全文链接:http://tecdat.cn/?p=18422 本文想在R软件中更好地了解分位数回归优化.在查看分位数回归之前,让我们从样本中计算中位数或分位数(点击文末"阅读原文" ...

  8. 统计语言类教程:R语言贝叶斯统计学、Copula、SEM、极值统计学、混合效应模型、R\Python\matlab机器学习、科研数据可视化、线性回归、分位数回归、GAMS、meta分析、近红外光谱等.

    查看原文>>>统计语言类教程:贝叶斯统计学.Copula.SEM.极值统计学.混合效应模型.PyTorch深度学习.科研数据可视化 以下给大家整理了一些常用的统计学内容和python ...

  9. 计量经济学之回归分析学习笔记(均值回归、分位数回归、岭回归、Lasso回归、ENet回归)——基于R(一)

    [笔记前言] 最近在进行计量经济学的课程学习,本文对部分回归方法进行了整理,恳请大家对其中出现的错误进行指正,不胜感激. 此外,由于种种原因,在均值回归时,我们将涉及到模型建立后的后续检验,而在其他回 ...

  10. 用R语言的quantreg包进行分位数回归

    什么是分位数回归 分位数回归(Quantile Regression)是计量经济学的研究前沿方向之一,它利用解释变量的多个分位数(例如四分位.十分位.百分位等)来得到被解释变量的条件分布的相应的分位数 ...

最新文章

  1. php 字典 枚举,秒爆十万字典:奇葩技巧快速枚举“一句话后门”密码
  2. CentOS7 安装 MySQL 和简单优化
  3. 网络安全分析和公有云使用的安全性
  4. 在演唱过后的飞秋代码
  5. mysql行转列sql函数_(转)行变列SQL语句(MSSQL) - jack - 博客园
  6. 【Scratch案例实操】Scratch萌宠运动会 scratch编程案例教学 scratch创意编程 少儿编程教案
  7. 《微信小程序-进阶篇》Lin-ui组件库源码分析-Icon组件
  8. JavaScript中this的使用(四种情况下this的指向)
  9. 谷歌浏览器导致电脑右下角莫名弹出广告解决办法
  10. BIOS和EFI启动过程
  11. IDEA安装及破解永久版教程————鹏鹏
  12. 计算机科学与技术专业支部,计算机科学与技术专业学生党支部成员组成
  13. Oracle SQL开发考试试题
  14. html横向滚动效果,html 中 鼠标滑轮实现横向滚动
  15. 最小二乘法和岭回归区别
  16. php开源 会员资料,会员详情/会员信息/用户信息
  17. 国产智能AI对话:技术狂潮之下,要有梦元宇宙正在改变世界
  18. 可折叠设备的桌面模式
  19. 括号配对c语言,括号匹配(c语言实现)
  20. MySQL中表的字段信息查询--information_schema.COLUMNS

热门文章

  1. 【知识点总结】电力拖动系统——交流调速系统
  2. [单片机] KeilC51单块数码管演示与原理
  3. 互联网数据分析岗实习感受
  4. 大数据系列之Java调用elasticsearch的增删查改聚合
  5. mysql视图创建以及权限
  6. mysql中orderby用法_MySQL教程:OrderBy用法_MySQL
  7. 公司电脑加域之后用不了USB但是可以用鼠标键盘得解决方法
  8. 录游戏视频的屏幕软件
  9. 同相放大、反向放大、差分放大电路的开环增益
  10. 科学研究设计五:实验设计