統計学入門 記述統計の基礎に関して学ぼう

統計学とは(おさらい)

前回の記事では統計学は、ある1つのデータ群に対し、データの性質を調べたり、未来のデータを推測するための学問だと解説しました。また統計学には大きく3種類に分類できると解説しました。

 1.記述統計学

2.推測統計学

3.ベイズ統計学 

この記事では、統計学における「平均」「分散」「標準偏差」に関しての最低限の知識を学びます。またPythonのnumpyライブラリを使用します。

平均値

まずは、平均値について学んでいきましょう。平均値を求めるには、複数の数値(N)に対して、1つ1つ全て足しあわせた後、全体の数値の個数で割ることで求められます。文字式で表す時、平均はμ(ミュー)と表したりします。平均値の長所は計算が簡単だったり、意味がわかりやすいなどが挙げられます。一方で平均値の短所は外れ値に影響を受ける点です。外れ値は、他の値から大きく外れた値のことです。つまり極端に大きな数値や小さな数値が含まれていると、平均値がその値へ引っ張られてしまう点です。下記はPythonを使って平均を求めるプログラムです。scoresというリストは、ある5名のテストの得点だと考えてください。

scores = [90,80,40,60,90]
s = sum(scores)
N = len(scores)
mean = s // N
print("平均:", mean)

出力結果

平均: 72

偏差

偏差とは、個々の数値と平均値との差のことです。個々のデータが平均値から偏っている程度を表しています。偏差は、個々の数値 – データの平均値で求められます。

scores = [90,80,40,60,90]

def mean(scores):
    s = sum(scores)
    N = len(scores)
    mean = s // N
    return mean

# 1. 平均値を求める
mean = mean(scores)

# 2. 偏差を求める
diff = []
for n in scores:
  # 一人一人のスコアから平均値を引いたものをdiffリストの末尾に追加。
  diff.append(n - mean)

print("偏差", diff)

出力結果

偏差 [18, 8, -32, -12, 18]

分散(variance)

分散とは数値データのばらつき具合を表すための指標です。分散は、偏差(それぞれの数値と平均値の差)を二乗し、平均を取ることで求められます。

numpyのvar()を利用することで分散を表現できます。

import numpy as np

# 分散(variance)
v = np.var(scores)
print("分散", v) # 分散 376.0

scores = [90,80,40,60,90]
s = sum(scores)
N = len(scores)
mean = s // N

V1 = 0
for i in scores:
	V1 = V1 + (1/len(scores)) * (i - mean)**2

print(V1) # 376.0

標準偏差とは

標準偏差とは、分散の平方根をとることによって計算される値で、データの散らばりの度合いを示します。

データの散らばりが大きいと標準偏差も大きくなります。また、散らばりが小さいと標準偏差は 0 に近づきます。文字式では、分散の文字式から2乗を取って、「s」や「σ」などと表されます。

標準偏差を求める

標準偏差sを求めるには4つのステップを順に踏みます。

1. 平均値を求める

2. 偏差(数値 - 平均値)を求める

3. 分散(偏差の二乗平均)を求める

4. 分散の正の平方根を求める

標準偏差を求めるプログラムは次のようになります。

scores = [90,80,40,60,90]

def mean(scores):
    s = sum(scores)
    N = len(scores)
    mean = s // N
    return mean

# 1. 平均値を求める
mean = mean(scores)

# 2. 偏差を求める
diff = []
for n in scores:
  # 一人一人のスコアから平均値を引いたものをdiffリストの末尾に追加。
  diff.append(n-mean)

print("偏差", diff)

# 3. 分散を求める
import numpy as np

# 分散(variance)
v = np.var(scores)
print("分散", v)

# 4. 分散の正の平方根を求める
std = np.std(scores)
print("標準偏差", std)

出力結果

偏差 [18, 8, -32, -12, 18]
分散 376.0
標準偏差 19.390719429665317

おわりに

本記事ではこちらのAI Academyのテキストから一部を抜粋し、数式を省いた形で投稿致しました。

数式と一緒に学びたい方や、偏差の計算方法、演習問題などと合わせて勉強したい方は下記のテキストをご参考ください。

統計学入門(平均、分散、標準偏差)

統計学や機械学習を効率的に学ぶには

統計学や機械学習を独学で学ぶのは大変です。そのため、まずはオンラインプログラムを利用するのが良いです。

AI Academy Bootcampでは6ヶ月データサイエンティストや機械学習エンジニアに質問し放題かつ、体系的に学べる動画コンテンツや440種類以上のテキストコンテンツで学べて35,000(税込)で受講出来ます。

是非サービスを活用し、効率よく、統計学や機械学習を身につけてみてください。