分位數回歸原理 分位數回歸及 Python 實現

2021-10-16 08:49:25 字數 1136 閱讀 6448

一般的回歸方法是最小二乘法,即最小化誤差的平方和:

其中, 是真實值,而 是**值。而分位數的目標是最小化加權的誤差絕對值和:

其中, 是給定的分位數。決策變數是 ,可以證明,使上面表示式最小化的 就是給定分位數 對應的分位點(將上面式子轉化為連續密度函式的積分,然後求一階導數即可證明)。

上式也可以簡寫成:

為了求出分位數的回歸方程,假設 ,那麼求解的目標函式轉化為:

決策變數為 k維回歸方程的引數向量 。在實際的求解中,將上式轉化為乙個線性規劃問題,引入兩個虛擬變數 ,,建立線性規劃模型:

然後用單純形法或內點法求解,就能得出分位數回歸方程(python 與 r 軟體求出的分位數回歸方程可能略微不同,因為求解方法不一樣, python 使用了迭代的加權最小二乘法求解)。

分位數回歸要用到 statsmodels,下面的**得到分位數為 0.6 的回歸方程,並畫圖:

import statsmodels.formula.api as smf

import pandas as pd

import numpy as np

import statsmodels.api as sm

import matplotlib.pyplot as plt

data = sm.datasets.engel.load_pandas().data

mod = smf.quantreg('foodexp ~ income', data)

res = mod.fit(q=0.6)

print(res.summary())

plt.scatter(data['income'], data['foodexp'])

xx = np.arange(min(data['income']), max(data['income']))

yy = [i*res.params['income'] + res.params['intercept'] for i in xx]

plt.plot(xx, yy, color='red')

plt.show()

輸出結果:

分位數回歸

分位數 quantile 亦稱分位點,是指將乙個隨機變數的概率分布範圍分為幾個等份的數值點,常用的有中位數 即二分位數 四分位數 百分位數等。任意乙個累計分布函式 f x f x f x 滿足 f x 0,1 f hat sigma,sigma in 0,1 f x 0,1 的 x hat x 稱為...

分位數回歸 Quantile regression

三 模型檢驗 四 求解方法 分位數回歸是估計一組回歸變數x與被解釋變數y的分位數之間線性關係的建模方法。以往的回歸模型實際上是研究被解釋變數的條件期望。而人們也關心解釋變數與被解釋變數分布的中位數,分位數呈何種關係。它最早由koenker和bassett 1978 提出。ols回歸估計量的計算是基於...

四分位數及matlab實現

四分位數 quantile 解釋及呼叫形式如下。quantile x,y,z 的三個引數的說明如下 x表示要求的矩陣或者向量 y的取值為表示要求的分位數,如四分之一中位數0.25,四分之三中位數0.75等 z的取值為1或者2,若值為1則表示按列求四分位數,若為2表示按行求四分位數。例子如下 f 1 ...