機械学習や統計学を学んでいると、デザイン行列(design matrix)と呼ばれる行列が登場します。
デザイン行列は、計画行列とも呼ばれており、単回帰、重回帰分析などの一般線形モデル等でもでよく登場します。
このデザイン行列について慣れることで、これらの一般線形モデルや共分散分析など、統計学の手法を、行列形式でシンプル記述することができ、実務や勉強の際に、非常に役に立つことがお多いと思います。
今回は、デザイン行列について分かりやすくまとめていきます。
デザイン行列(計画行列)についてわかりやすく
デザイン行列は、単純に、データを並べた行列になっています。まず、最初にデザイン行列の定義を示します。
今、$d$次元のデータ$x_i$が$n$個あるとき、デザイン行列(計画行列)$\bm{X}$は、
\begin{equation} \bm{X} = \begin{pmatrix} 1 & x_{11} & x_{12} & \cdots & x_{1d} \\ 1 & x_{21} & x_{22} & \cdots & x_{2d} \\ \vdots & \vdots & \vdots & \vdots & \ddots \\ 1 & a_{n1} & x_{n2} & \cdots & x_{nd} \\ \end{pmatrix} \end{equation}
で定義される。
(1)の定義以外にも、(1)の第1列を削除した次のような行列をデザイン行列としている書籍もあります。
\begin{equation} \bm{X} = \begin{pmatrix} x_{11} & x_{12} & \cdots & x_{1d} \\ x_{21} & x_{22} & \cdots & x_{2d} \\ \vdots & \vdots & \vdots & \ddots \\ a_{n1} & x_{n2} & \cdots & x_{nd} \\ \end{pmatrix} \end{equation}
デザイン行列を用いた一般線形モデルの記述
デザイン行列がたびたび登場する1つの理由に、一般線形モデルが、デザイン行列を用いることでシンプルに記述することができるということが挙げられます。
一般線形モデルは、$d$個の説明変数の線型結合で目的変数を回帰する手法です。
目的変数を$y$、$d$個の説明変数 $x_1, x_2, \dots, x_d $の線型結合で表現する次の式を一般線形モデルと呼ぶ。
\begin{equation} y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_d x_d + \epsilon \end{equation}
ここで、$\bm{\beta} = \{ \beta_0, \beta_1, \beta_2, \cdots, \beta_d\} $は係数ベクトルである。
目的変数 $y$を説明変数 $(\bm{x})$の線型結合で表現するのが、一般線形モデルでした。
(3)式は目的変数$y$が1つの場合でしたが、これが3つくらいあると次のように表現できます。
\begin{equation} \begin{split} y_1 &= \beta_0 + \beta_1 x_{11} + \beta_2 x_{12} + \cdots + \beta_d x_{1d} + \epsilon_1 \\ y_2 &= \beta_0 + \beta_1 x_{21} + \beta_2 x_{22} + \cdots + \beta_d x_{2d} + \epsilon_2 \\ y_3 &= \beta_0 + \beta_1 x_{31} + \beta_2 x_{32} + \cdots + \beta_d x_{3d} + \epsilon_3 \\ \end{split} \end{equation}
(4)式を見ると、データの数だけ式が増えてしまうので、データ数がたくさんあるときは大変ですね。
一般的に、データが$n$個あるような場合は、計画行列を利用することで、非常にシンプルに一般線形モデルを表できます。
目的変数と説明変数のペアからなる、データ$(\bm{x}, y)$が$n$個あるような線形モデルは、デザイン行列を用いて次におように記述することができる。
\begin{equation} \begin{split} \bm{y} &= \bm{X} \bm{\beta} + \bm{\epsilon} \\ & = \begin{pmatrix} 1 & x_{11} & x_{12} & \cdots & x_{1d} \\ 1 & x_{21} & x_{22} & \cdots &x_{2d} \\ \vdots & \vdots & \vdots & \vdots & \ddots \\ 1 & a_{n1} & x_{n2} & \cdots & x_{nd} \\ \end{pmatrix} \begin{pmatrix} \beta_0 \\ \beta_1 \\ \vdots \\ \beta_d \\ \end{pmatrix} + \begin{pmatrix} \epsilon_1 \\ \epsilon_2 \\ \vdots \\ \epsilon_n \\ \end{pmatrix} \end{split} \end{equation}
(5)式を展開すると(4)式と同じになり、計画行列を用いることで、一般線形モデルを非常にシンプルに記述することができます。
この例を通して、計画行列が実用上便利そうであることがわかると思います。