線形囘歸
linear regression
線形回帰 - Wikipedia
線形モデル - 機械学習の「朱鷺の杜Wiki」
目的變數$ y:=\begin{pmatrix}y_1 \\ \vdots \\ y_n\end{pmatrix}を說明變數$ X:=\begin{pmatrix}{x_1}^\top \\ \vdots \\ {x_n}^\top\end{pmatrix}=\begin{pmatrix}1 & x_{11} & \dots & x_{1p} \\ \vdots & \vdots & & \vdots \\ 1 & x_{n1} & \dots & x_{np} \end{pmatrix}と係數$ \beta:=\begin{pmatrix}\beta_0 \\ \vdots \\ \beta_p\end{pmatrix}と擾亂項$ \varepsilon:=\begin{pmatrix}\varepsilon_1 \\ \vdots \\ \varepsilon_n\end{pmatrix}とによって$ y=X\beta+\varepsilon=\begin{pmatrix}\beta_0 \\ \vdots \\ \beta_0\end{pmatrix}+\sum_{i=0}^p {x_i}^\top\begin{pmatrix}\beta_i \\ \vdots \\ \beta_i\end{pmatrix}+\varepsilonと表す事を線形囘歸と呼ぶ
$ y=\beta_0+\sum_{i=1}^p\beta_ix_i+\varepsilon
線形單囘歸 (simple linear regression)
$ p=1の時$ y=\beta_0+\beta_1 x+\varepsilonを言ふ
Simple linear regression - Wikipedia
$ yと$ Xは既知である
係數の推定値は$ \hat\betaと書く
$ \varepsilonは何らかの確率分布に從ふ
$ \varepsilonに假定を置き、$ yと$ Xから$ \betaを推定する
最小二乘法
線形回帰モデルとは
https://github.com/graphite-project/graphite-web/blob/f7634f3e145f8cd720d2e92fdd2576ed82f36c3b/webapp/graphite/render/functions.py#L2567-L2608
假定
擾亂項$ \varepsilon_i は$ E[\varepsilon_i]=0 ,$ V[\varepsilon_i]=\sigma^2 であり、正規分布$ N(0,\sigma^2)に從ふ
擾亂項は相關しない。$ i\ne j ならば$ {\rm Cov}[\varepsilon_i,\varepsilon_j]=0
損失函數は$ L(\varepsilon)=\varepsilon^2
損失関数 - Wikipedia#二次損失関数
$ \hat\beta=\argmin_\beta\sum_{i=1}^n L\left(\frac{y_i-{x_i}\beta}\sigma\right)
解析的に解ける。線形單囘歸$ y=\beta_0+\beta_1 x+\varepsilonであれば
切片$ \hat{\beta_0}=E[y]-\frac{{\rm Cov}[x,y]}{V[x]}E[x]
係數$ \hat{\beta_1}=\frac{{\rm Cov}[x,y]}{V[x]}
連番で入った data を囘歸する場合
code:clj
(defn quadratic-linear-regression
"最小二乘方法による線形囘歸
引數 y は數値の vector
返り値は {:slop 傾き :intercept 切片}
(= (quadratic-linear-regression 1 2 3 4 5 6 7 8 9 10) {:slop 1.0, :intercept 1.0})"
y
(if (= (count y) 0)
{:slope ##NaN :intercept ##NaN}
(let [n (count y)
sum-x (/ (* (dec n) n) 2)
sum-xx (/ (* (dec n) n (dec (* 2 n))) 6)
expected-x (/ (float sum-x) n)
expected-xx (/ (float sum-xx) n)
variance-x (- expected-xx (* expected-x expected-x))
sum-y (reduce + y)
expected-y (/ (float sum-y) n)
sum-xy (reduce + (map * (range n) y))
expected-xy (/ (float sum-xy) n)
covariance-x-y (- expected-xy (* expected-x expected-y))
slope (/ covariance-x-y variance-x)
intercept (- expected-y (* slope expected-x))]
{:slope slope :intercept intercept})))
反復再重み附け最小二乘法 (IRLS)。iteratively re-weighted least squares)
Iteratively reweighted least squares - Wikipedia
IRLS法 - 機械学習の「朱鷺の杜Wiki」
和田かず美「多変量外れ値の検出~繰返し加重最小二乗(IRLS)法による欠測値の補定方法~」2012/3
線形囘歸$ y=X\beta+\varepsilon に對して、損失函數を$ L として$ \hat\beta=\argmin_\beta\sum_{i=1}^n L\left(\frac{\varepsilon_i}{\sigma[\varepsilon]}\right) を求める
$ \varepsilon_i=y_i-x_i\betaである
$ \hat\varepsilon_i:=y_i-x_i\hat\betaとする
$ \hat\beta は、$ L':=\frac{dL(z)}{dz} として$ \sum_{i=1}^n x_{ij}L'\left(\frac{\hat\varepsilon_i}{\sigma[\hat\varepsilon]}\right)=0 が全ての$ 1\le j\le pに對して成り立つ値となる
$ L'を影響函數 (influence function)と呼ぶ
重み$ W^{(t)}を$ W^{(t)}:=\begin{pmatrix}{w_1}^{(t)} & \dots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \dots & {w_n}^{(t)}\end{pmatrix}とする
$ {w_i}^{(t)}:=\frac{L'(\frac{{\hat\varepsilon_i}^{(t)}}{\sigma[{\hat\varepsilon_i}^{(t)}]})}{\frac{{\hat\varepsilon_i}^{(t)}}{\sigma[{\hat\varepsilon_i}^{(t)}]}}
漸化式$ \hat\beta^{(t+1)}:=\hat\beta^{(t)}+(X^\top WX)^{-1}X^\top W(y-X\hat\beta^{(t)})
$ \hat\beta^{(t+1)}:=\argmin_\beta\sum_{i=1}^n{w_i}^{(t)}|y_i-X_i\beta|^2=(X^\top W^{(t)}X)^{-1}X^\top W^{(t)}y?
線形囘歸$ y=X\beta+\varepsilonに對して、$ L^p規準 (norm)の形をした損失函數$ \|y-X\beta\|_p=\sum_{i=1}^n|y_i-x_i\beta|^pを最小にする$ \argmin_\beta\|y-X\beta\|_p場合を考へる
重み$ W^{(t)}=\begin{pmatrix}{w_1}^{(t)} & \dots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \dots & {w_n}^{(t)}\end{pmatrix}
漸化式
$ {w_i}^{(0)}:=1
$ \hat\beta^{(t+1)}:=\argmin_\beta\sum_{i=1}^n{w_i}^{(t)}|y_i-X_i\beta|^2=(X^\top W^{(t)}X)^{-1}X^\top W^{(t)}y
$ {w_i}^{(t)}:=|y_i-X_i\hat\beta^{(t)}|^{p-2}
robust 線形囘歸
ロバスト回帰を使用した外れ値の影響の低減 - MATLAB & Simulink - MathWorks 日本
外れ値とロバスト推定(2) #機械学習 - Qiita
Huber の方法
HuberRegressor — scikit-learn 1.6.1 documentation
Huber Regression: A Smarter Approach to Handle Outliers in Machine Learning | by AlgoStalk | Medium
損失函數$ Lは$ L_\delta(\varepsilon_i)=\begin{cases}\frac{{\varepsilon_i}^2}2 & |\varepsilon_i|\le\delta \\ \delta\cdot(|\varepsilon_i|-\frac\delta 2) & |\varepsilon_i|>\delta\end{cases}
Huber損失 - Wikipedia
Huber loss - Wikipedia
Huber関数 - 機械学習の「朱鷺の杜Wiki」
影響函數$ L'は$ L'_\delta(\varepsilon_i)=\begin{cases}-\delta & \varepsilon<-\delta \\ \varepsilon_i & |\varepsilon_i|\le\delta \\ k & \varepsilon>\delta\end{cases}
重み$ wは$ w_\delta(\varepsilon_i)=\begin{cases}1 & |\varepsilon_i|\le\delta \\ \frac\delta{|\varepsilon_i|} & |\varepsilon_i|>\delta\end{cases}
反復再重み附け最小二乘法 (IRLS) で損失函數を最小にする$ \hat\beta=\argmin_\beta L_\delta(\varepsilon_i)
$ \hat\beta^{(0)}:=0
$ \varepsilon^{(0)}=y
$ w^{(t)}:=L_\delta(|\varepsilon^{(t)}|)
.
$ \frac{dL}{d\beta}=\sum_{i=1}^n w_i(y_i-{x_i}^\top\beta)x_i=0,$ w_i=\begin{cases}1 & \frac{|y_i-{x_i}^\top\beta|}\sigma<K \\ \frac{\sigma K}{|y_i-{x_i}^\top\beta|} & \frac{|y_i-{x_i}^\top\beta|}\sigma\ge K \end{cases}
$ \beta^{(s+1)}(w_1,\dots,w_n)=\left(\sum_{i=1}^n w_i x_i{x_i}^\top\right)^{-1}\sum_{i=1}^n w_i x_i y_i
適當な$ \beta^{(0)}を決め、$ \beta^{(s)}から重み$ w^{(s)}を計算し、$ w^{(s)}から$ \beta^{(s+1)}を計算し、收束させる
Tukey の方法
損失函數$ Lは$ L_C(z)=\begin{cases}\frac{C^2}6\left(1-\left(1-\left(\frac z C\right)^2\right)^3\right) & |z|\le C \\ \frac{C^2}6 & |z|>C\end{cases}
外れ値とロバスト推定(3) #機械学習 - Qiita
一般化線形モデル - Wikipedia
一般化線形モデル - 機械学習の「朱鷺の杜Wiki」
logistique 囘歸
計画行列 - Wikipedia
線型回帰数列 - Wikipedia
一般化線形混合モデル - Wikipedia
一般線形モデル - Wikipedia
混合モデル - Wikipedia
線形豫測
線形予測法 - Wikipedia
線形予測符号 - Wikipedia
時系列 model
線形合同法 (LCG)
線形饋還 shift register (LFSR)
力學系
線形力学系 - Wikipedia