2015/03/19

最小二乗法の行列表現(単回帰,多変数,多項式)


最小二乗法の行列表現:
主張1:行列 $A$ と列ベクトル $\overrightarrow{b}$ が与えられたときに
$\|A\overrightarrow{x}-\overrightarrow{b}\|$ を最小にする $\overrightarrow{x}$ を求める問題は非常に重要である。

主張2:$A^{\mathrm{T}}A$ が正則のとき上記の問題の解は唯一つである: $x=(A^{\mathrm{T}}A)^{-1}A^{\mathrm{T}}\overrightarrow{b}$

この記事では主張1(最小二乗法の行列による定式化)について解説します。主張2の証明には行列の公式がいくつか必要なのでいつか別記事で書こうと思います。→正規方程式の導出と計算例

用語,記号

  • ベクトル $\overrightarrow{v}$ に対して $\|\overrightarrow{v}\|$ はベクトルの大きさ(成分の二乗和のルート)を表します。ノルムと呼ばれます。
  • $A$ は正方行列とは限りません。応用上 $A$ が縦長行列の場合が多いです(後述の例参照)。
  • $A^{\mathrm{T}}$ は $A$ の転置行列です。→転置行列の基本的な4つの性質と証明
  • $A$ は入力(説明変数)により定まる行列,$\overrightarrow{b}$ は目的変数,$\overrightarrow{x}$ はパラメータであり,それらを $X,\overrightarrow{y},\overrightarrow{\theta}$ と書くことも多いです。
    つまり,$\|X\overrightarrow{\theta}-\overrightarrow{y}\|$ を最小化する問題と書かれることもあります。

最小二乗法の行列による定式化

いろいろな問題が「 $\|A\overrightarrow{x}-\overrightarrow{b}\|$ の最小化」という形で定式化できます!まずは一番簡単な単回帰,直線モデルの場合です。

例(最小二乗法による直線フィッティング):
データ$(x_1,y_1),\cdots ,(x_n,y_n)$ を直線モデル $y=\alpha x+\beta$ で説明したい(求めたいのは $\alpha$ と $\beta$)。最小二乗法の考え方に基づき,$\displaystyle\sum_{i=1}^n(y_i-\alpha x_i-\beta)^2$ を最小化したい。

これは,$A=\begin{pmatrix}1 & x_1\\ 1& x_2\\ \vdots & \vdots \\1 &x_n \end{pmatrix}$,$\overrightarrow{x}=\begin{pmatrix}\beta \\\alpha\end{pmatrix}$,$\overrightarrow{b}=\begin{pmatrix}y_1\\y_2\\ \vdots \\ y_n\end{pmatrix}$

とおくと $\|A\overrightarrow{x}-\overrightarrow{b}\|$ の最小化問題として書ける。

多変数の場合

説明変数の次元が増えても同様に定式化することができます。

データ$(x_1,y_1,z_1),\cdots (x_n,y_n,z_n)$ を線形モデル $z=\alpha x+\beta y+\gamma$ で説明したい。最小二乗法の考え方に基づき,$\displaystyle\sum_{i=1}^n(z_i-\alpha x_i-\beta y_i-\gamma)^2$ を最小化したい。

これは,$A=\begin{pmatrix}1 & x_1&y_1\\ 1& x_2&y_2\\ \vdots & \vdots &\vdots\\1 &x_n &y_n\end{pmatrix}$,$\overrightarrow{x}=\begin{pmatrix}\gamma\\ \alpha \\\beta\end{pmatrix}$,$\overrightarrow{b}=\begin{pmatrix}z_1\\z_2\\ \vdots \\ z_n\end{pmatrix}$

とおくと $\|A\overrightarrow{x}-\overrightarrow{b}\|$ の最小化問題として書ける。

最小二乗法による多項式近似

直線フィッティングの考え方を拡張した,最もデータを説明する $k$ 次多項式を求める問題も同じ形で定式化することができます。

例2(最小二乗法による多項式フィッティング):
データ$(x_1,y_1),\cdots ,(x_n,y_n)$ を $k$ 次多項式モデル $y=\displaystyle\sum_{t=0}^k\alpha_tx^t$ で説明したい。最小二乗法の考え方に基づき,$\displaystyle\sum_{i=1}^n(y_i-\displaystyle\sum_{t=0}^k\alpha_tx^t)^2$ を最小化したい。

これは,$A=\begin{pmatrix}1 & x_1& x_1^2 &\cdots &x_1^k \\ 1& x_2&x_2^2&\cdots &x_2^k\\ \vdots & \vdots& \vdots& & \vdots \\1 &x_n & x_n^2 &\cdots & x_n^k\end{pmatrix}$,$\overrightarrow{x}=\begin{pmatrix}\alpha_0 \\\alpha_1\\\vdots \\\alpha_k\end{pmatrix}$,$\overrightarrow{b}=\begin{pmatrix}y_1\\y_2\\ \vdots \\ y_n\end{pmatrix}$

とおくと $\|A\overrightarrow{x}-\overrightarrow{b}\|$ の最小化問題として書ける。

なお,多項式の次数 $k$ はデータの数 $n$ に比べてはるかに小さく取ることが多いです。このとき $A$ は縦長行列になります。

主張2を使うことで上記の問題は全て解けることになります!

ベクトルを太字イタリックで書きたいのですがmathjaxを使いこなせません(T_T)

Tag: 数学的モデリングまとめ(回帰分析)