からっぽのしょこ

読んだら書く!書いたら読む!同じ事は二度調べ(たく)ない

3.3:標準化の性質【『スタンフォード線形代数入門』のノート】

はじめに

 『スタンフォード ベクトル・行列からはじめる最適化数学』の学習ノートです。
 「数式の行間埋め」や「Pythonを使っての再現」によって理解を目指します。本と一緒に読んでください。

 この記事は3.3節「標準偏差」の内容です。
 標準化の定義を確認して、性質を導出します。

【前の内容】

www.anarchive-beta.com

【他の内容】

www.anarchive-beta.com

【今回の内容】

標準化の定義

 まずは、ベクトルの各要素を標準化したベクトルの定義を数式で確認します。
 平均については「1.4:内積の性質と計算例【『スタンフォード線形代数入門』のノート】 - からっぽのしょこ」、標準偏差については「3.3:標準偏差の計算式【『スタンフォード線形代数入門』のノート】 - からっぽのしょこ」、ノルムについては「3.1-2:ユークリッドノルム・ユークリッド距離の性質と計算例【『スタンフォード線形代数入門』のノート】 - からっぽのしょこ」を参照してください。

 ベクトル \mathbf{x}の各要素から平均 \mathrm{avg}(\mathbf{x})を引いたベクトルを、平均除去ベクトルと呼ぶことにしました(3.3節)。

 \displaystyle
\tilde{\mathbf{x}}
    = \begin{bmatrix}
          \tilde{x}_1 \\ \tilde{x}_2 \\ \vdots \\ \tilde{x}_n
      \end{bmatrix}
    = \begin{bmatrix}
          x_1 - \mathrm{avg}(\mathbf{x}) \\ 
          x_2 - \mathrm{avg}(\mathbf{x}) \\ 
          \vdots \\ 
          x_n - \mathrm{avg}(\mathbf{x})
      \end{bmatrix}
    = \begin{bmatrix}
          x_1 \\ x_2 \\ \vdots \\ x_n
      \end{bmatrix}
      - \mathrm{avg}(\mathbf{x})
        \begin{bmatrix}
          1 \\ 1 \\ \vdots \\ 1
        \end{bmatrix}
    = \mathbf{x}
      - \mathrm{avg}(\mathbf{x}) \mathbf{1}

 さらに、標準偏差 \mathrm{std}(\mathbf{x})で割ったベクトルを、標準化ベクトルと呼ぶことにします。

 \displaystyle
\mathbf{z}
    = \begin{bmatrix}
          z_1 \\ z_2 \\ \vdots \\ z_n
      \end{bmatrix}
    = \begin{bmatrix}
          \frac{x_1 - \mathrm{avg}(\mathbf{x})}{\mathrm{std}(\mathbf{x})} \\ 
          \frac{x_2 - \mathrm{avg}(\mathbf{x})}{\mathrm{std}(\mathbf{x})} \\ 
          \vdots \\ 
          \frac{x_n - \mathrm{avg}(\mathbf{x})}{\mathrm{std}(\mathbf{x})}
      \end{bmatrix}
    = \frac{1}{\mathrm{std}(\mathbf{x})} \left(
          \begin{bmatrix}
              x_1 \\ x_2 \\ \vdots \\ x_n
          \end{bmatrix}
          - \mathrm{avg}(\mathbf{x})
            \begin{bmatrix}
              1 \\ 1 \\ \vdots \\ 1
            \end{bmatrix}
      \right)
    = \frac{
          \mathbf{x} - \mathrm{avg}(\mathbf{x}) \mathbf{1}
      }{
          \mathrm{std}(\mathbf{x})
      }
\tag{1}

 平均除去ベクトル \tilde{\mathbf{x}}を用いると、標準化ベクトル \mathbf{z}は、次のように表せます。

 \displaystyle
\mathbf{z}
    = \begin{bmatrix}
          z_1 \\ z_2 \\ \vdots \\ z_n
      \end{bmatrix}
    = \begin{bmatrix}
          \frac{\tilde{x}_1}{\mathrm{std}(\mathbf{x})} \\ 
          \frac{\tilde{x}_2}{\mathrm{std}(\mathbf{x})} \\ 
          \vdots \\ 
          \frac{\tilde{x}_n}{\mathrm{std}(\mathbf{x})}
      \end{bmatrix}
    = \frac{1}{\mathrm{std}(\mathbf{x})}
      \begin{bmatrix}
          \tilde{x}_1 \\ \tilde{x}_2 \\ \vdots \\ \tilde{x}_n
      \end{bmatrix}
    = \frac{
          \tilde{\mathbf{x}}
      }{
          \mathrm{std}(\mathbf{x})
      }
\tag{2}


 標準化したベクトルの散布図による可視化例は「【Python】3.4:相関係数の可視化【『スタンフォード線形代数入門』のノート】 - からっぽのしょこ」で扱います。

標準化の性質

 次は、ベクトルの各要素を標準化したベクトルの性質を導出します。

ノルム

 各要素を標準化したベクトルのユークリッドノルムを考えます。

 \displaystyle
\|\mathbf{z}\|
    = \sqrt{
          \mathbf{z}^{\top} \mathbf{z}
      }
    = \sqrt{
          \sum_{i=1}^n
              z_i^2
      }

 平均除去ベクトルによる式(2)を代入して、式を整理します。

 \displaystyle
\begin{aligned}
\|\mathbf{z}\|
   &= \sqrt{
          \left(
              \frac{\tilde{\mathbf{x}}}{\mathrm{std}(\mathbf{x})}
          \right)^{\top}
          \frac{\tilde{\mathbf{x}}}{\mathrm{std}(\mathbf{x})}
      }
\\
   &= \sqrt{
          \frac{
              \tilde{\mathbf{x}}^{\top} \tilde{\mathbf{x}}
          }{
              \mathrm{std}(\mathbf{x})^2
          }
      }
\end{aligned}

 平均除去ベクトルによる標準偏差の式(3.3節) \mathrm{std}(\mathbf{x}) = \sqrt{\frac{\tilde{\mathbf{x}}^{\top} \tilde{\mathbf{x}}}{n}}(の逆数)を代入して、式を整理します。

 \displaystyle
\begin{aligned}
\|\mathbf{z}\|
   &= \sqrt{
          \left(
              \sqrt{
                  \frac{
                      n
                  }{
                      \tilde{\mathbf{x}}^{\top} \tilde{\mathbf{x}}
                  }
              }
          \right)^2
          \tilde{\mathbf{x}}^{\top} \tilde{\mathbf{x}}
      }
\\
   &= \sqrt{
          \frac{
              n
          }{
              \tilde{\mathbf{x}}^{\top} \tilde{\mathbf{x}}
          }
          \tilde{\mathbf{x}}^{\top} \tilde{\mathbf{x}}
      }
\\
   &= \sqrt{n}
\end{aligned}

 標準化ベクトルのノルムは次元数の平方根になります。

平均

 各要素を標準化したベクトルの平均を考えます。

 \displaystyle
\mathrm{avg}(\mathbf{z})
    = \frac{\mathbf{1}^{\top} \mathbf{z}}{n}
    = \frac{1}{n}
      \sum_{i=1}^n
          z_i

 元のベクトルによる式(1)を代入して、式を整理します。

 \displaystyle
\begin{aligned}
\mathrm{avg}(\mathbf{z})
   &= \frac{1}{n}
      \mathbf{1}^{\top}
      \frac{
          \mathbf{x} - \mathrm{avg}(\mathbf{x}) \mathbf{1}
      }{
          \mathrm{std}(\mathbf{x})
      }
\\
   &= \frac{
          \mathbf{1}^{\top} \mathbf{x}
      }{
          n \mathrm{std}(\mathbf{x})
      }
      - \frac{
          \mathrm{avg}(\mathbf{x}) \mathbf{1}^{\top} \mathbf{1}
        }{
          n \mathrm{std}(\mathbf{x})
        }
\end{aligned}

 前の項は平均の式(1.4節) \mathrm{avg}(\mathbf{x}) = \frac{\mathbf{1}^{\top} \mathbf{x}}{n}より、後の項は内積の性質 \mathbf{1}^{\top} \mathbf{1} = nより、2つの項が打ち消されます。

 \displaystyle
\begin{aligned}
\mathrm{avg}(\mathbf{z})
   &= \frac{
          \mathrm{avg}(\mathbf{x})
      }{
          \mathrm{std}(\mathbf{x})
      }
      - \frac{
          \mathrm{avg}(\mathbf{x})
        }{
          \mathrm{std}(\mathbf{x})
        }
\\
   &= 0
\end{aligned}

 標準化ベクトルの平均は0になります。

標準偏差

 各要素を標準化したベクトルの標準偏差を考えます。

 \displaystyle
\mathrm{std}(\mathbf{z})
    = \frac{
          \|
              \mathbf{z}
              - \mathrm{avg}(\mathbf{z}) \mathbf{1}
          \|
      }{
          \sqrt{n}
      }

 標準化ベクトルの平均は0で、ノルムは次元数の平方根なので、分母分子が打ち消されます。

 \displaystyle
\begin{aligned}
\mathrm{std}(\mathbf{z})
   &= \frac{
          \|\mathbf{z} - 0 \mathbf{1}\|
      }{
          \sqrt{n}
      }
\\
   &= \frac{
          \sqrt{n}
      }{
          \sqrt{n}
      }
\\
   &= 1
\end{aligned}

 標準化ベクトルの標準偏差は1になります。

 この記事では、標準化の定義や性質を確認しました。次の記事では、なす角の定義を確認します。

参考書籍

  • Stephen Boyd・Lieven Vandenberghe(著),玉木 徹(訳)『スタンフォード ベクトル・行列からはじめる最適化数学』講談社サイエンティク,2021年.

おわりに

 標準化ベクトルという呼び方は本ではたぶん登場しません。勝手に名付けました。

 標準偏差に関しては、平均などと同様に飛ばすつもりだったので、執筆順的にはこの記事が3章の最後でした。読み進めると思いの外、ベクトル計算(内積やノルム)での標準偏差が出てきたので、構成の都合上や式変形に慣れるために書いておくかとなりました。後の節で登場する内容やらも書き足していたら充実したので標準化については別記事になりました。
 早く行列編を読みたい。

【次の内容】

www.anarchive-beta.com