Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

分位点回帰

分位点τ\tauにおける条件付分位関数を

Qτ(yi∣Xi)=Fy−1(τ∣Xi)Q_\tau(y_i | X_i) = F_y^{-1}(\tau | X_i)

と表す。ここでFy−1(τ∣Xi)F_y^{-1}(\tau | X_i)はyyにおいてXiX_iに条件づけられたyiy_iの分布関数である(Fy−1(τ∣Xi)=inf⁡{y:Fy(y∣Xi)≥τ}F_y^{-1}(\tau | X_i) = \inf \{ y: F_y(y|X_i) \geq \tau \})。

例えばτ=0.1\tau = 0.1のとき、Qτ(yi∣Xi)Q_\tau(y_i | X_i)はyiy_iの下位10分位である。

標準的な回帰モデルは二乗誤差(yi−m(Xi))2(y_i - m(X_i))^2の和や期待値を最小化するようにモデルm(Xi)m(X_i)を学習して条件付き期待値E(yi∣Xi)E(y_i|X_i)を予測する

E(yi∣Xi)=arg minm(Xi)E[(yi−m(Xi))2]\renewcommand{\argmin}{\mathop{\rm arg~min}\limits} E(y_i|X_i) = \argmin_{m(X_i)} E\big[ (y_i - m(X_i))^2 \big]

分位点回帰 (quantile regression)モデルはpinball lossρτ(yi−q(Xi))\rho_{\tau}(y_i - q(X_i))の和や期待値を最小化するようにモデルq(Xi)q(X_i)を学習させ、条件付き分位関数Qτ(yi∣Xi)=Fy−1(τ∣Xi)Q_{\tau}(y_i|X_i) = F^{-1}_y(\tau|X_i)を予測する

Qτ(yi∣Xi)=arg min⁡q(Xi)E[ρτ(yi−q(Xi))]Q_{\tau}(y_i|X_i) = \argmin_{q(X_i)} E\big[ \rho_{\tau}(y_i - q(X_i)) \big]

pinball lossは τ\tau-tiled absolute value function や 検定関数(check function)とも呼ばれる(グラフを描くとチェックマークに似てるため)

ρτ(x)=(τ−1(x≤0))x\rho_{\tau} (x) = \big(\tau - \mathbb{1}(x \leq 0) \big) x

あるいは

ρτ(x)={(τ−1)x if x≤0τx if x>0\rho_{\tau} (x) = \begin{cases} (\tau - 1) x & \text{ if } x \leq 0\\ \tau x & \text{ if } x > 0\\ \end{cases}

あるいは

ρτ(x)=τmax⁡(x,0)+(τ−1)min⁡(−x,0)\rho_{\tau} (x) = \tau \max(x, 0) + (\tau - 1) \min(-x, 0)

と書かれる

Source
<Figure size 1000x200 with 3 Axes>

なお、pinball lossはτ=0.5\tau=0.5のとき

ρ0.5(x)={−0.5x if x≤00.5x if x>0=12∣x∣\begin{align} \rho_{0.5} (x) &= \begin{cases} -0.5 x & \text{ if } x \leq 0\\ 0.5 x & \text{ if } x > 0\\ \end{cases} \\ &= \frac{1}{2} |x| \end{align}

と、絶対誤差と比例する形になる。

絶対誤差の和を目的関数にとった線形モデルは統計学においてleast absolute deviations (LAD) と呼ばれ、その解は条件付き中央値になる

median(yi∣Xi)=Q0.5(yi∣Xi)=arg min⁡q(Xi)E[ρ0.5(yi−q(Xi))]\text{median}(y_i|X_i) = Q_{0.5}(y_i|X_i) = \argmin_{q(X_i)} E\big[ \rho_{0.5}(y_i - q(X_i)) \big]
Source
<Figure size 400x300 with 1 Axes>

分位点回帰モデルの実践

LightGBMでのquantile regression

目的関数をbinball lossにすればいいだけなので他のアルゴリズムでも実行できる

Source
<Figure size 640x480 with 1 Axes>
0.48475107952573926