一般的回歸方法是最小二乘法,即最小化誤差的平方和:
其中, 是真實值,而 是**值。而分位數的目標是最小化加權的誤差絕對值和:
其中, 是給定的分位數。決策變數是 ,可以證明,使上面表示式最小化的 就是給定分位數 對應的分位點(將上面式子轉化為連續密度函式的積分,然後求一階導數即可證明)。
上式也可以簡寫成:
為了求出分位數的回歸方程,假設 ,那麼求解的目標函式轉化為:
決策變數為 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 ...