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

最小二乗法の行列表現

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

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

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

用語,記号

  • ベクトル vundefined\overrightarrow{v} に対して vundefined\|\overrightarrow{v}\| はベクトルの大きさ(成分の二乗和のルート)を表します。ノルムと呼ばれます。

  • AA は正方行列とは限りません。応用上 AA が縦長行列の場合が多いです(後述の例参照)。

  • AA^{\top}AA の転置行列です。→転置行列の意味・重要な7つの性質と証明

  • AA は入力(説明変数)により定まる行列,bundefined\overrightarrow{b} は目的変数,xundefined\overrightarrow{x} はパラメータであり,それらを X,yundefined,θundefinedX,\overrightarrow{y},\overrightarrow{\theta} と書くことも多いです。つまり,Xθundefinedyundefined\|X\overrightarrow{\theta}-\overrightarrow{y}\| を最小化する問題と書かれることもあります。

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

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

例1. 直線フィッティング

データ (x1,y1),,(xn,yn)(x_1,y_1),\dots ,(x_n,y_n) を直線モデル y=αx+βy=\alpha x+\beta で説明したい(求めたいのは α\alphaβ\beta)。最小二乗法の考え方に基づき,i=1n(yiαxiβ)2\displaystyle\sum_{i=1}^n(y_i-\alpha x_i-\beta)^2 を最小化したい。

これは,A=(1x11x21xn)A=\begin{pmatrix}1 & x_1\\ 1& x_2\\ \vdots & \vdots \\1 &x_n \end{pmatrix}xundefined=(βα)\overrightarrow{x}=\begin{pmatrix}\beta \\\alpha\end{pmatrix}bundefined=(y1y2yn)\overrightarrow{b}=\begin{pmatrix}y_1\\y_2\\ \vdots \\ y_n\end{pmatrix}

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

→最小二乗法による直線フィッティング

多変数の場合

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

例2

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

これは,A=(1x1y11x2y21xnyn)A=\begin{pmatrix}1 & x_1&y_1\\ 1& x_2&y_2\\ \vdots & \vdots &\vdots\\1 &x_n &y_n\end{pmatrix}xundefined=(γαβ)\overrightarrow{x}=\begin{pmatrix}\gamma\\ \alpha \\\beta\end{pmatrix}bundefined=(z1z2zn)\overrightarrow{b}=\begin{pmatrix}z_1\\z_2\\ \vdots \\ z_n\end{pmatrix}

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

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

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

例3. 多項式フィッティング

データ (x1,y1),,(xn,yn)(x_1,y_1),\dots ,(x_n,y_n)kk 次多項式モデル y=t=0kαtxty=\displaystyle\sum_{t=0}^k\alpha_tx^t で説明したい。最小二乗法の考え方に基づき,i=1n(yit=0kαtxit)2\displaystyle\sum_{i=1}^n(y_i-\displaystyle\sum_{t=0}^k\alpha_tx_i^t)^2 を最小化したい。

これは,A=(1x1x12x1k1x2x22x2k1xnxn2xnk)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}xundefined=(α0α1αk)\overrightarrow{x}=\begin{pmatrix}\alpha_0 \\\alpha_1\\\vdots \\\alpha_k\end{pmatrix}bundefined=(y1y2yn)\overrightarrow{b}=\begin{pmatrix}y_1\\y_2\\ \vdots \\ y_n\end{pmatrix}

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

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

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

例3が好きです。

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