ベクトルで理解するデータの分析 〜平均値から相関係数までの求め方〜

数学小話

高校数学、数学Iの分野に「データの分析」と呼ばれるものがあります。

平均を計算したり、偏差値を求めたり、データを分析する手法やその理論について学ぶ分野です。

高校1年生で扱われることが多いので、多くの方が学んだ経験はあると思いますが、他の分野に比べてこのような印象をもちませんでしたか?

「公式が長ったらしい」

実際、私はそう感じました。

平均の
$$
\overline{x}=\frac{1}{n}(x_1+x_2+\cdots+x_n)
$$くらいは良いとして、分散、標準偏差、共分散、相関係数の
\begin{align*}
s^2&=\frac{1}{n}\left\{(x_1-\overline{x})^2+\cdots+(x_n-\overline{x})^2\right\}\\
s&=\sqrt{\frac{1}{n}\left\{(x_1-\overline{x})^2+\cdots+(x_n-\overline{x})^2\right\}}\\
s_{xy}&=\frac{1}{n}\left\{(x_1-\overline{x})(y_1-\overline{y})+\cdots+(x_n-\overline{x})(y_n-\overline{y})\right\}\\
r&=\frac{(x_1-\overline{x})(y_1-\overline{y})+\cdots+(x_n-\overline{x})(y_n-\overline{y})}{\sqrt{(x_1-\overline{x})^2+\cdots+(x_n-\overline{x})^2}\sqrt{(y_1-\overline{y})^2+\cdots+(y_n-\overline{y})^2}}
\end{align*}なんて…。

私が公式丸暗記タイプなら、絶望、発狂しますね。

 

本記事の目標は「高次元のベクトル」という強力な武器を手に入れ、上記の諸公式を徹底的に書き換え、改めて理解し直すことです。

公式を別の角度から見ることで理解が深まり、ご自身の中で各公式のイメージが再構築できれば良いなと考えています。

 

 

この投稿をInstagramで見る

 

AkiyaMath(@akiyamath.mathlover)がシェアした投稿

 

この投稿をInstagramで見る

 

AkiyaMath(@akiyamath.mathlover)がシェアした投稿

 

では早速、ベクトルに関する知識の整理から始めましょう。

線型代数学におけるベクトルの性質

ベクトルとは

高校数学で学ぶベクトルを「幾何学的ベクトル」と呼ぶことにしましょう。

幾何学的ベクトルはまさに幾何学的な(図形的な)定義が与えられた概念で、矢印のようなものでした。

幾何学的に定義されたので、大きさや角度も自然に(直感的に)定義されていましたね。

 

ここで、大学数学の基礎となる分野である線型代数学で扱われる新しいベクトルを定義します。

それは、幾何学的ベクトルの持つ構造を抽象化して、さらに扱いやすく(計算しやすく)したものです。

我々はそれを幾何学的ベクトルとは区別して「数ベクトル」と呼ぶことにしましょう。

 

数ベクトルは順序づけられた数の組として定義されます。

その数の個数は何個でも良く、縦に数を並べて括弧で括ることで
\begin{align*}
\left[\begin{array}{c}1\\0\end{array}\right],\quad
\left[\begin{array}{c}-2\\3\\1\end{array}\right],\quad
\left[\begin{array}{c}x_1\\x_2\\\vdots\\x_n\end{array}\right]
\end{align*}などと書かれます。

この縦に並ぶ数の個数を数ベクトルの次元といいます。

上の例では左から順に \(2\) 次元、\(3\) 次元、\(n\) 次元ですね。

内積とノルムを定義する

数ベクトルは、\(2\) 次元や \(3\) 次元なら幾何学的ベクトルの成分表示のようにして大きさやなす角が定義できますが、\(4\) 次元や \(5\) 次元、一般の \(n\) 次元の場合には目に見えないので直感的には定義できません。

そこで、幾何学的ベクトルの場合とは異なる順序で定義を行う必要があります。

 

ふたつの \(n\) 次元の数ベクトル
\begin{align*}
x&=\left[\begin{array}{c}x_1\\x_2\\\vdots\\x_n\end{array}\right],&
y&=\left[\begin{array}{c}y_1\\y_2\\\vdots\\y_n\end{array}\right]
\end{align*}に対して、内積 \((x,y)\) を
\begin{align}
(x,y)=x_1y_1+x_2y_2+\cdots+x_ny_n\tag{1.1}
\end{align}と定義します。

幾何学的ベクトルの成分表示による内積の計算と同じで、対応する成分をかけ合わせて、それらの和をとっています。

大きさも幾何学的ベクトルと同様に
\begin{align}
|x|=\sqrt{(x,x)}\tag{1.2}
\end{align}として定義しますが、数ベクトルに対しては大きさをノルムと呼ぶことにします。

 

幾何学的ベクトルの内積と同様に
\begin{align*}
(2x+3y,z)&=2(x,z)+3(y,z),\\
(x,y-5z)&=(x,y)-5(x,z)
\end{align*}などが成り立ちます。

このように、左の数ベクトルについても右の数ベクトルについても定数が外に出て、加法(と減法)について分配ができる性質を「双線型性」といいます。

コーシー=シュワルツの不等式とは

さて、内積とノルムが定義できたら「コーシー=シュワルツの不等式」と呼ばれるこの不等式を証明しましょう。


\begin{align}
|(x,y)|\leq|x||y|\tag{1.3}
\end{align}

 

– – – – – 証明 – – – – –

\(x=0\) ならば、式 (1.3) は等号が成り立つので、\(x\neq0\) の場合を示せば良い。

任意の実数 \(t\) に対して
\begin{align*}
0
&\leq|tx+y|^2\\
&=(tx+y,tx+y)\\
&=t^2(x,x)+t(x,y)+t(y,x)+(y,y)\\
&=|x|^2t^2+2(x,y)t+|y|^2\\
\end{align*}が成り立つ。

\(x\neq0\) より、これは任意の実数が解となる二次不等式である。

よって、\(|x|^2>0\) より判別式は \(0\) 以下であるので
\begin{align*}
(x,y)^2-|x|^2|y|^2&\leq0\\
(x,y)^2&\leq|x|^2|y|^2\\
|(x,y)|&\leq|x||y|
\end{align*}すなわち、式 (1.3) を得る。

– – – – – 証明終 – – – – –

なす角を定義する

コーシー=シュワルツの不等式が示されると、数ベクトルになす角が定義できます。

幾何学的ベクトルでは、内積の定義より \(\displaystyle \cos\theta=\frac{\vec{a}\cdot\vec{b}}{|\vec{a}||\vec{b}|}\) が成り立っていました。

そこで、数ベクトルに対して右辺の値を調べて見ましょう。

 

式 (1.3) より、\(x\neq0\), \(y\neq0\) に対して
\begin{align*}
|(x,y)|&\leq|x||y|\\
-|x||y|\leq(x,y)&\leq|x||y|\\
-1\leq\frac{(x,y)}{|x||y|}&\leq1
\end{align*}が成り立ちます。

ここで、\(-1\) から \(1\) までの値 \(r\) に対して \(\cos\theta=r\) となる \(0^\circ\leq\theta\leq180^\circ\) が唯一つ存在します。

よって、
\begin{align}
\cos\theta&=\frac{(x,y)}{|x||y|},&
&0^\circ\leq\theta\leq180^\circ\tag{1.4}
\end{align}なる \(\theta\) を数ベクトル \(x\) と \(y\) のなす角と定義するのです。

 

準備は以上になります。

それでは、本題に移りましょう。

 

データの分析の書き換え(その1)

大きさ \(n\) のデータ
$$
x_1, x_2, \cdots, x_n
$$を考え、それらを縦に並べた \(n\) 次元の数ベクトルを
$$
x=\left[\begin{array}{c}x_1\\x_2\\\vdots\\x_n\end{array}\right]
$$と書くことにします。

 

さあ、データの分析の要点を見てゆきましょう。

平均値 \(\overline{x}\)

ふたつの準備があります。

 

ひとつめは、特別な \(n\) 次元の数ベクトル \(\mathbf{1}\) の定義です。

これは簡単で、記号の通り、全ての成分が \(1\) であるものとします。
$$
\mathbf{1}=\left[\begin{array}{c}1\\1\\\vdots\\1\end{array}\right]
$$

ふたつめは、新しい内積の定義です。

線型代数学について説明したときに、内積 \((x,y)\) を定義しました。

これを用いて、新しい内積 \(\langle x,y \rangle\) を定義します。

具体的には、次元 \(n\) を用いて
$$
\langle x,y \rangle=\frac{1}{n}(x,y)
$$と定義します。

これもまた、内積になるのです。

この内積によるノルムを \(\|x\|\) と書くことにします。

 

さて、ここまで準備ができれば平均値 \(\overline{x}\) の計算は簡単です。

通常の定義から、数ベクトルの言葉に翻訳してみましょう。


\begin{align}
\overline{x}
&=\frac{1}{n}(x_1+x_2+\cdots+x_n)\\
&=\frac{1}{n}(x_1\times1+x_2\times1+\cdots+x_n\times1)\\
&=\frac{1}{n}(x,\bf{1})\\
&=\langle x,\bf{1} \rangle\tag{2.1}
\end{align}

 

見事、\(\bf{1}\) との内積の値として書くことができました。

(ここで、\(\|\mathbf{1}\|=1\) なので、平均値 \(\overline{x}\) とは、数ベクトル \(x\) の “\(\bf{1}\) 成分’’ を表していることになります。まさに射影ですね。 )

偏差 \(x-\overline{x}\)

偏差は各データの値から平均値を引いたものです。

これも数ベクトルとして扱いたいので、全ての偏差を縦に並べて数ベクトルにしてみましょう。


\begin{align}
\left[\begin{array}{c}x_1-\overline{x}\\x_2-\overline{x}\\\vdots\\x_n-\overline{x}\end{array}\right]
=\left[\begin{array}{c}x_1\\x_2\\\vdots\\x_n\end{array}\right]-\overline{x}\left[\begin{array}{c}1\\1\\\vdots\\1\end{array}\right]
=x-\overline{x}\mathbf{1}\tag{2.2}
\end{align}

 

これをこの記事だけの用語として偏差ベクトルと呼び、\(\widetilde{x}\) と書くことにしましょう。

分散 \(s^2\)

続いて、分散 \(s^2\) です。

定義を落ち着いて眺めて、今までの記号を用いて表現してみましょう。


\begin{align}
s^2
&=\frac{1}{n}\left\{(x_1-\overline{x})^2+\cdots+(x_n-\overline{x})^2\right\}\\
&=\frac{1}{n}(\widetilde{x}, \widetilde{x})\\
&=\langle\widetilde{x}, \widetilde{x}\rangle\\
&=\|\widetilde{x}\|^2\tag{2.3}
\end{align}

 

偏差ベクトルのノルムの \(2\) 乗になりました。

分散が \(s^2\) のように \(2\) 乗の形で書かれることの理由がここにあります。

 

さて、分散を求める公式として
$$
s^2=\overline{x^2}-\left(\overline{x}\right)^2
$$がありました。

ここで
$$
x^2=\left[\begin{array}{c}{x_1}^2\\{x_2}^2\\\vdots\\{x_n}^2\end{array}\right]
$$とします。

これを、数ベクトルの内積の計算によって証明すると
\begin{align*}
s^2
&=\|\widetilde{x}\|^2\\
&=\|x-\overline{x}\mathbf{1}\|^2\\
&=\|x\|^2-2\overline{x}\langle x, \mathbf{1} \rangle+\left(\overline{x}\right)^2\|\mathbf{1}\|^2\\
&=\langle x^2, \mathbf{1}\rangle -2\left(\overline{x}\right)^2+\left(\overline{x}\right)^2\\
&=\overline{x^2} -\left(\overline{x}\right)^2
\end{align*}となるのです。

和の煩わしい処理が不要で、定義と内積の双線型性を使うだけで証明することができます。

標準偏差 \(s\)

標準偏差 \(s\) は分散の正の平方根と定義されます。


\begin{align}
s=\sqrt{s^2}=\sqrt{\|\widetilde{x}\|^2}=\|\widetilde{x}\|\tag{2.4}
\end{align}

 

つまり、偏差ベクトルのノルムが標準偏差になります。

変量の変換

実際にデータの計算をするときには仮平均 \(x_0\) を用いて変量の変換をすることがあります。

それでは、新しいデータ \(u\)(もちろん数ベクトル)を作りましょう。

 

\(c\neq0\) と \(x_0\) を定数として
\begin{align*}
u
=\frac{x-x_0\mathbf{1}}{c}
=\left[\begin{array}{c}\dfrac{x_1-x_0}{c}\\\dfrac{x_2-x_0}{c}\\\vdots\\\dfrac{x_n-x_0}{c}\end{array}\right]
\end{align*}と定めます。

この \(u\) は、定数 \(c\) と \(x_0\) を上手く設定して、平均値 \(\overline{u}\) と分散 \({s_u}^2\)、標準偏差 \(s_u\) が簡単に求まるようにします。

 

そこで、\(\overline{u}\) と \(s_u\) を用いて、もとの平均値 \(\overline{x}\) と分散 \({s_x}^2\)、標準偏差 \(s_x\) を計算してみましょう。

\(u\) の定義から \(x=cu+x_0\bf{1}\) が成り立ちます。

まず、平均値について
\begin{align}
\overline{x}
&=\langle x,\mathbf{1} \rangle\\
&=\langle cu+x_0\mathbf{1},\mathbf{1} \rangle\\
&=c\langle u,\mathbf{1} \rangle+ x_0 \langle \mathbf{1},\mathbf{1} \rangle\\
&=c\overline{u}+x_0\tag{2.5}
\end{align}

次に、分散について
\begin{align}
{s_x}^2
&=\|\widetilde{x}\|^2\\
&=\|x-\overline{x}\mathbf{1}\|^2\\
&=\|(cu+x_0\mathbf{1})-(c\overline{u}+x_0)\mathbf{1}\|^2\\
&=\|cu-c\overline{u}\mathbf{1}\|^2\\
&=c^2\|u-\overline{u}\mathbf{1}\|^2\\
&=c^2\|\widetilde{u}\|^2\\
&=c^2{s_u}^2\tag{2.6}
\end{align}

最後に、標準偏差については定義より
\begin{align}
s_x=|c|s_u\tag{2.7}
\end{align}

以上のように、数ベクトルを用いると、内積の双線型性によって簡単な計算に証明することができるのです。

 

データの分析の書き換え(その2)

続いて、大きさ \(n\) のふたつのデータ \(x\), \(y\) に対して、データの分析の要点を見てゆきます。

共分散 \(s_{xy}\)

冒頭で述べた \(x\) と \(y\) の共分散 \(s_{xy}\) の定義の式を見て「式が長くて、意味もよくわからないし覚えにくい」と感じた方も多いと思います。

数ベクトルを用いることで、そんな悩みを解決しましょう。

もちろん、定義から始めます。


\begin{align}
s_{xy}
&=\frac{1}{n}\left\{(x_1-\overline{x})(y_1-\overline{y})+\cdots+(x_n-\overline{x})(y_n-\overline{y})\right\}\\
&=\frac{1}{n}(\widetilde{x}, \widetilde{y})\\
&=\langle \widetilde{x}, \widetilde{y} \rangle\tag{3.1}
\end{align}

 

なんと、\(x\) と \(y\) の共分散とは、偏差ベクトルの内積のことだったのです!

今の内積の定義さえ覚えておけば、共分散の公式を忘れても計算はできると思いませんか?

相関係数 \(r\)

最後に、\(x\) と \(y\) の相関係数 \(r\) について見てゆきます。

ここで、意味あり気な準備をしておきましょう。

\(\widetilde{x}\)と \(\widetilde{y}\) のなす角を \(\theta\) としておきます。

このとき、今までの準備と相関係数の定義より、次の書き換えができます。


\begin{align}
r
&=\frac{s_{xy}}{s_xs_y}\\
&=\frac{\langle \widetilde{x}, \widetilde{y} \rangle}{\|\widetilde{x}\|\|\widetilde{y}\|}\\
&=\frac{\dfrac{1}{n}(\widetilde{x}, \widetilde{y})}{\dfrac{1}{\sqrt{n}}|\widetilde{x}|\dfrac{1}{\sqrt{n}}|\widetilde{y}|}\\
&=\frac{(\widetilde{x}, \widetilde{y})}{|\widetilde{x}||\widetilde{y}|}\\
&=\cos\theta\tag{3.2}
\end{align}

 

…いかがでしょうか。

相関係数は偏差ベクトルのなす角の余弦なのです。

ここで、\(r=\cos\theta\) でしたので(正確にはコーシー=シュワルツの不等式から)
$$
-1\leq r \leq1
$$となることは明らかですね。

また、相関関係について

  1. 相関係数 \(r=\cos\theta\) が \(1\) に近いとき、なす角 \(\theta\) は \(0^\circ\) に近いので、偏差ベクトル \(\widetilde{x}\) と \(\widetilde{y}\) は同じ向きを向いており、正の相関関係があるイメージです。
  2. 相関係数 \(r=\cos\theta\) が \(-1\) に近いとき、なす角 \(\theta\) は \(180^\circ\) に近いので、偏差ベクトル \(\widetilde{x}\) と \(\widetilde{y}\) は逆の向きを向いており、負の相関関係があるイメージです。
  3. 相関係数 \(r=\cos\theta\) が \(0\) に近いとき、なす角 \(\theta\) は \(90^\circ\) に近いので、偏差ベクトル \(\widetilde{x}\) と \(\widetilde{y}\) は直交しており、相関関係がないイメージです。

と捉えることができます。

 

まとめ

今回は、データの分析で現れる平均値や分散などを数ベクトルの言葉で書き直し、データの分析に関する諸性質の数ベクトルによる証明も与えました。

数学Iで習ったときにはシグマ \(\sum\) も使えないため、記述が面倒で、証明も煩雑になります。

数学Bでシグマ \(\sum\) を習うと多少は楽ですが、まだごちゃごちゃしてしまいます。

そこで、高次元の数ベクトルを持ち出すことによって見通しが良くなることを感じていただけたかと思います。

このような、定義や公式に他の角度からの解釈を与えることで理解が深まる、という経験をたくさん積めると、数学ライフがより充実したものになると思います。

AkiyaMath

コメント

タイトルとURLをコピーしました