統計についての勉強~平均、分散、標準偏差についての説明~

2021/08/22

その他 統計

 最近統計の基礎を勉強したので復習と久しぶりのプログラミングを兼ねて記事を書きます。

この記事では平均、分散、標準偏差についてまとめ、次回の記事でPythonを使って実際に確認していきます。

もし内容に間違いがある場合は指摘していただけると幸いです。

次回の記事はこちらです。統計についての勉強~プログラミングで確認~


母集団とサンプル(標本)

まず最初に母集団とサンプル(標本)という言葉について説明します。
母集団とは調査対象とする集団全体のことで、サンプルとは母集団から一部抜き出した集団のことです。(ちなみに母集団から抜き出すことを抽出もしくはサンプリングなどといいます。)

本当であれば調査対象すべてを観測できればいいのですが、すべてを調査するのはコスト的、時間的に難しい場合があります。そのような場合にサンプルの結果を元に母集団の性質を推定していきます。



母集団とサンプルの関係(図の青丸はデータ)



サンプルは母集団から抽出したものという事もあり、抽出の仕方によって平均値や分散の値といった特性値にバラつきが出てしまいます。なので母集団とサンプルの特性値は分けて表現する必要があり、今回は参考文献[1]を元に下記のように表記します。

表1:本記事で使う記号
母集団サンプル(標本)
サイズ標本サイズn
母平均µ標本平均$\bar{x}$
母分散σ^2標本分散V
母標準偏差σ標本標準偏差s

(補足)サンプルサイズとサンプル数

統計の用語にサンプルサイズとサンプル数というものがあるのですが、別の意味を持っており、誤用する人が多いみたいなので二つの違いについて簡単に補足します。

サンプルサイズはサンプルの中に何個のデータが入っているかという事です。
一方でサンプル数はサンプルの数が何個あるか(=何回抽出を行ったか)という事です。

例えばデータの個数が100個ある場合はサンプルサイズは100となります。
抽出を二回行いサンプル1,2がある場合はサンプルサイズ2となります。

サンプル数とサンプルサイズの関係

平均、分散、標準偏差について

平均について

一言に平均といっても相乗平均、調和平均など色々があるのですが、ここで取り扱う平均は皆さんになじみ深い相加平均というものです。

言葉だけで説明すると下記のようになります。[2]
平均値とは複数の数値に対して、個々を全て足し合わせた後、数値の個数で割った値のことを指します。
数式であらわすと下記のとおりです。


\begin{equation}\bar{x} = \frac{(x_1 + x_2 + x_3 + … +x_n)}{n} = \frac{\sum_{i=1}^{n} x_i}{n} \end{equation}


平均値のイメージ図

平均値で評価する欠点として、すべてのデータを足し合わせる都合上、変な値(外れ値)の影響を受けてしまうことです。(下記図に外れ値の影響を受けた場合のイメージ図を示します。)


外れ値の影響を受けた場合の平均値のイメージ
イメージ図を受けてしまいますが、本来求めたい平均値はもう少し低いはずなのに、測定ミスなどで変な値が入ってしまうと本来求めたい平均値からかけ離れたものが求められてしまいます。(この外れ値の影響はサンプルサイズが小さいほど影響を受けやすくなります。)

分散について

分散とは一言でいうとデータがどのくらいばらけているかを示す値です。
データのバラつきを評価するためにまずは各データから平均値を引いた偏差という値を求めます。
編差のイメージ図

イメージ図を見て頂けると分かりますが、データが平均値付近にいる=偏差が小さく、バラつきが少ないという事になります。

編差を数式であらわすと下記のようになります。
\begin{equation}(x_i - \bar{x})\end{equation}
上記式は一つのデータについて偏差を求めたものとなりますので、サンプル全体の偏差を求めるとなると次のように0となってしまいます。(直感的に0になることはわかりますが(1)式を代入しても偏差の和が0になることが確認できると思います。)
\begin{equation}\sum(x_i - \bar{x}) = 0\end{equation} 

編差が0になってしまうのは正負の符号が混ざっていたからなので、偏差の符号を消すために偏差を二乗にした平方和(偏差平方和)というもの求めます。この記事では平方和はS(ラージエス)と表します。式で表すと下記のようになります。
\begin{equation} \begin{split}S &= \sum(x_i - \bar{x})^2 \\ &=\sum x_i^2 -\frac{(\sum x_i)^2}{n} \end{split} \end{equation}

上記(4)式の最終項の$\frac{(\sum x_i)^2}{n}$のことを修正項といいます。
(4)式の式変形については補足で書きます。

平方和が求められたことで、いよいよ分散の話題に移ります。
平方和だけだとデータの数の影響を受けてしまうので、データの個数nで割ってあげたものを分散といいます。(分散の記号については表1を参照して下さい)

分散を式で表すと以下のようになります。
\begin{equation}V = \frac{平方和}{データ数} = \frac{S}{n} \end{equation}

少ないデータで分散を求める場合はデータ数で割るのではなく、(データ数-1)で割って以下のようにする場合もあります。(こちらを不偏分散といったります。)
\begin{equation} V = \frac{平方和}{データ数 - 1} = \frac{S}{n-1} \end{equation}

不偏分散を求める際にn-1で割る理由も後ほど補足します。

(4)式の式変形

社会人になってから久しぶりに数学を扱うので復習も兼ねて(4)式の式変形をしていきます(シグマの性質を忘れてしまったので、こちらのサイトを参考にしてます[3])

(4)式を展開すると次のようになります。

\begin{equation} \begin{split}S &= \sum(x_i - \bar{x})^2 \\ &=\sum x_i^2 - 2\bar{x}\sum x_i + \bar{x}^2\sum 1 \nonumber \end{split} \end{equation}
※$\bar{x}$は定数なので注意してください。
(1)式より$\sum x_i = n\bar{x}$なので上記式に代入すると
\begin{equation} \begin{split}S &= \sum x_i^2 -2n\bar{x}^2 + n\bar{x}^2 \\ &= \sum x_i^2 -n\bar{x}^2 \\ &=\sum x_i^2 -n \cdot (\frac{\sum x_i}{n})^2  \\ &=\sum x_i^2 - \frac{(\sum x_i)^2}{n} \end{split} \end{equation}

となります。(途中の式変形で(1)式を再度代入してます。)

不偏分散を求める際に(n-1)で割る理由

今回の目的は最初の方にも書きましたが、サンプルから母集団の特性を推定することです。
分散を求める際に平均値を使っていますが、抽出したサンプルによって平均値にもバラつきが出てきてしまいます。(母集団の平均値は一定となりますが、サンプルの平均値は一定ではありません。)

この平均のバラつきを考慮したもので中心極限定理というものがあります。中心極限定理は下記のようなものです。[4]
    X が平均 μ,標準偏差 σ の正規分布に従うならば,大きさ n の無作為標本に基づく標本平均  は,平均μ,標準偏差  の正規分布に従う。
この$\frac{\sigma}{\sqrt{n}}$は標準誤差(SE)とも呼ばれるみたいです。[5]
この標準誤差の項を考慮し、式変形を実施するとn-1の項が出てきます。
(導出についてはこちらのサイトが参考になります。[6])

標準偏差

分散の説明が長かったですが、標準偏差の説明は短いです。分散は求める際に偏差を2乗してしまっているため、元のデータの単位と異なる単位となってしまいます。そこで元のデータの単位を使えるようにするために平方根をとったものを標準偏差といいます。
\begin{equation} s = \sqrt{分散} = \sqrt{V}\end{equation}

まとめ

今回は平均、分散、標準偏差について勉強しました。
次回はpythonを使ってシミュレーションしながら確認していきます。

参考文献

自己紹介

はじめまして 社会人になってからバイクやプログラミングなどを始めました。 プログラミングや整備の記事を書いていますが、独学なので間違った情報が多いかもしれません。 間違っている情報や改善点がありましたらコメントしていただけると幸いです。

X(旧Twitter)

フォローお願いします!

ラベル

整備 (55) プログラミング (53) python (33) (33) 雑記 (32) バイク (29) VTR (25) ラズパイ (17) 設定 (17) GK5 (15) 環境構築 (14) FIT3 (13) GE8 (13) FIT2 (12) Blogger (11) Android (10) 修理 (9) キーボード (6) 競技プログラミング (6) 組み込み (6) MPU6050 (5) kotlin (5) その他 (4) セキュリティ (4) 統計 (4) Ruby (3) scikit-learn (3) AI (2) CTF (2) CustomTkinter (2) C言語 (2) ESP32 (2) Re:VIEW (2) UML (2) VBA (2) git (2) Adsense (1) DIO (1) Markdown (1) Node.js (1) PC修理 (1) TeX (1) ゲーム (1) スマートウォッチ (1) 原付 (1) 回帰分析 (1) 数学 (1) 自転車 (1)

QooQ