Python
機械学習
DeepLearning
数学
統計学

【プログラマーのための統計学】分散と標準偏差と変動係数

目次

プログラマーのための統計学 - 目次

分散とは

以下のような、AとBのデータがあります。
どちらも、データの合計は15、平均は3となりますが、AとBのデータのばらつき具合は似ているとは言えません。

A B
1 3
2 3
3 3
4 3
5 3
  • 合計15
  • 平均3

このようなデータのばらつきを調べるためには、分散というものを使います。

分散を理解するためには、偏差、平均偏差も理解しておく必要があります。
なので、分散の前に、その2つの説明をします。

偏差

偏差とは、平均値と各データの差を全て足したものの平均のことです。
前述の例の場合は、以下のようになります。

A 平均との差 B 平均との差
1 2 3 0
2 1 3 0
3 0 3 0
4 -1 3 0
5 -2 3 0
合計 0 - 0
平均 0 - 0

偏差の合計は必ず0となります。
よって、平均も0になってしまうので、偏差でデータのばらつきを調べることはできません。

平均偏差

平均偏差とは、平均値と各データの差の絶対値の合計の平均のことです。
前述の例の場合は、以下のようになります。

A 平均との差 B 平均との差
1 2 3 0
2 1 3 0
3 0 3 0
4 1 3 0
5 2 3 0
合計 6 - 0
平均 1.2 - 0

各データの差の絶対値の合計の平均なので、平均値は0以上になり、データのばらつき具合がわかります。ただ、全て絶対値に置き換えてから計算をしなければならないため、データ数が多くなった場合は面倒です。

分散

分散とは、平均値と各データの差を2乗したものの合計の平均のことです。

V = 分散
n = データ個数
\bar{x} = 平均値

とすると、下記が成り立ちます。

V = \frac{1}{n}\sum_{i=1}^{n}(x_i - \bar{x})^2

実際に計算してみます。

2 = \frac{1}{5} \{(1-3)^2 + (2-3)^2 + (3-3)^2 + (4-3)^2 + (5-3)^2\}

表で表すと

A 平均との差 平均との差の2乗
1 2 4
2 1 1
3 0 0
4 -1 1
5 -2 4
合計 0 10
平均 0 分散値=2
B 平均との差 平均との差の2乗
1 0 0
2 0 0
3 0 0
4 0 0
5 0 0
合計 0 0
平均 0 分散値=0

この場合のAの分散は、2、Bは 0 となります。

V_A = 2
V_B = 0

分散値から分かること

分散の値が小さいほど、各データは平均値に近く、ばらつきが少なく、値が大きければ、ばらつきも大きいということが分かります。
今回の例の分散は、Aは2、Bが0なので、Aの方がばらつきが大きいということになります。

標準偏差

標準偏差とは、分散と同じく、データのばらつきを示す指標ですが、
こちらは分散を平方根で計算したものになります。

なぜ標準偏差が必要なのか

分散値は、各データを2乗してから算出しているため、
分散同士を比較することはできますが、分散と平均などを比較したり、計算することはできません。

例えば、単位にメートルが付いているデータの分散を出した場合、
単位も2乗されてしまうため、分散同士の比較や計算はできても、分散と平均などの比較、計算はできません。

元のデータの単位はメートルだが、

m

分散はメートルの2乗のなってしまうため、

m^2

元のデータや平均値と比較できない。

標準偏差の計算方法

そこで、分散に平方根を使うことで、2乗された単位も元に戻り、平均などと比較、計算ができるようになります。
以下の式で標準偏差を算出できます。

\sigma = \sqrt{\frac{1}{n}\sum_{i=1}^{n}(x_i - \bar{x})^2}

実際に、Aのデータの標準偏差を計算してみます。
Aのデータは 1, 2, 3, 4, 5 で、平均値は 3 なので、標準偏差は以下の式で求められます。

\sqrt{2} = \sqrt{\frac{1}{5} \{(1-3)^2 + (2-3)^2 + (3-3)^2 + (4-3)^2 + (5-3)^2\}} 

表で表すと

A 平均との差 平均との差の2乗
1 2 4
2 1 1
3 0 0
4 -1 1
5 -2 4
合計 0 10
平均 0 分散値=2
- - 標準偏差=√2

解は √2 となるので、標準偏差は、約1.4 になります。
Bは計算するまでもなく、0 となります。

つまり、

\sigma_A \simeq 1.4
\sigma_B = 0

となり、Aのほうがデータのばらつきが大きいことがわかります。

変動係数

標準偏差を平均値で割った値のことです。

例題

500mlのペットボトルの水と、車(同じ車種)をそれぞれの価格を、10店舗まわって調べ、
それぞれの価格が、店によってどのくらいのばらつきがあるのか調べてみました。
以下は、それらの平均と標準偏差をまとめた表です。

商品 平均価格(円) 標準偏差(円)
89 9
3,136,500 284,869

車の方が圧倒的に標準偏差値が大きいので、車の価格の方がばらつきが大きいということになります。
ただし、水と車では単価が違いすぎるので、車の方が標準偏差が大きくなるのは当然であり、価格のばらつきの割合の比較にはなりません。

そこで、変動係数というものを使います。

変動係数の公式

変動係数を使うと、ばらつきを絶対値ではなく、相対値で比較することができます。
変動係数は、標準偏差を平均値で割ることで求められます。

式で表すと以下になります。

CV = \frac{\sqrt{\frac{1}{n}\sum_{i=1}^{n}(x_i - \bar{x})^2}}{\bar{x}}

実際に計算してみます。

商品 平均価格(円) 標準偏差(円)
89 14
3,136,500 284,869

それぞれ、標準偏差を平均価格で割ります。
すると、

水の変動係数

0.15 = 14 \div 89

車の変動係数

0.09 = 284,869 \div 3,136,500

水の変動係数は0.15
車の変動係数は0.09

なので、水の価格の方が、相対的にはばらつきが大きいということがわかります。

以上

参考