005_平均(相加平均)、中央値、最頻値の算出方法の違いを説明できる

解説

相加平均とは、すべての標本の合計値を標本数で割った数を指します。
普段、テストの平均点などを出すときに使われる「平均」と同じ意味です。

中央値とは、全標本のうちちょうど真ん中の順位[ref]標本数が偶数の場合は、真ん中に最も近い2つの標本の数値を足して、2で割った数値を中央値として採用します[/ref]にある標本の数値を指します。中央値のことを、メディアン、メジアンとも呼びます。

最頻値とは、データ群や確率分布で最も頻繁に出現する値を指します。
最頻値のことを、モードとも呼びます。

ステップアップ

平均値は、測定ミスなどによって発生する外れ値(他の値より異常に大きい・小さい値)に影響されるため、大きな誤差を生み出したり、統計的に無意味な値になることがあります。そのため、刈り込み平均[ref]極端な数値の影響を少なくするために、値を大きさの順に並べ、両側から同数ずつ削除してから平均を求めること[/ref]を取るなどの対策が必要になることが知られています。

一方で、中央値は外れ値にほとんど影響されないため、そのような対策は不要である利点があります。

キーワード

  • 相加平均
  • 中央値
  • 最頻値
  • *外れ値
  • *刈り込み平均

ソースコード

mean.py:相加平均を求めるプログラム

#coding:utf-8
import numpy as np

# データ
list = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

def mean():

    # 平均値の計算
    mean = np.mean(list)

    # 結果の表示
    print(u"平均値:"+str(mean))

if __name__ == '__main__':
    mean()

このプログラムを実行すると、与えられた配列の平均を算出します。

平均値:5.5

 

 median.py:中央値を求めるプログラム

#coding:utf-8
import numpy as np

# データ
list = np.array([10, 20, 50, 100, 100000])

def median():

    # 中央値の計算
    median = np.median(list)

    # 結果の表示
    print(u"中央値:"+str(median))

if __name__ == '__main__':
    median()

このプログラムを実行すると、与えられた配列の中央値を算出します。

中央値:50.0

 

mode.py:最頻値を求めるプログラム

#coding:utf-8
import scipy.stats as spstat
import numpy as np

# データ
list = np.array([10, 20, 20, 20, 20,20,100,1000,4000])

def mode():

    # 中央値の計算
    mode = spstat.mode(list)

    # 結果の表示
    print(u"最頻値:"+str(mode))

if __name__ == '__main__':
    mode()

このプログラムを実行すると、与えられた配列の最頻値を算出します。(最頻値の個数も表示される)

最頻値:(array([ 20.]), array([ 5.]))

データセット