統計処理の基本である「データ中央値」は、Pythonで容易に求めることができます。
本記事では、そんなPython基礎となるデータ中央値について、詳しくご説明します。
データ中央値
データ中央値(median)とは、データを昇順あるいは降順に並べたときに、中央に存在する値のことです。
平均値と同様に中間の値を示す指標ですが、年収などの外れ値が存在するデータ集合には、中央値の方が適します。
そんなデータ中央値を求める方法について、以下にご紹介します。
statistics.median()
statisticsモジュールのstatistics.median()を使用して、データ中央値を出力できます。
データ集合の例は、以下とします。
#input
import numpy as np
import matplotlib.pyplot as plt
data = [10,20,30,40,5000,60,70,80,90]
fig = plt.figure()
A = fig.add_subplot(111)
A.set_title("histogram",fontsize=18)
A.set_xlabel("data",fontsize = 14)
A.set_ylabel("frequency",fontsize = 14)
A.set_xlim(0,5000)
A.hist(data,range=(0,5000),color="lime")
plt.show()
出力されたヒストグラムから、このデータ集合には1つ外れ値が存在していることが分かります。
このデータ集合の平均値と中央値を確認してみます。
#input
import statistics as st
data = [10,20,30,40,5000,60,70,80,90]
mean = st.mean(data)
median = st.median(data)
print("データ平均値:{}".format(mean))
print("データ中央値:{}".format(median))
#output
データ平均値:600
データ中央値:60
データ平均値とデータ中央値は10倍異なることがわかります。
statistics.median_low()
statisticsモジュールのstatistics.median_low()を使用すると、データ数が偶数の場合、中央に存在するデータ2個のうち、小さい値を出力します。
以下に例をご紹介します。
#input
import statistics as st
data = [10,20,30,40,5000,60]
median = st.median_low(data)
print("データ中央値:{}".format(median))
#output
データ中央値:30
statistics.median_high()
statisticsモジュールのstatistics.median_high()を使用すると、データ数が偶数の場合、中央に存在するデータ2個のうち、大きい値を出力します。
以下に例をご紹介します。
#input
import statistics as st
data = [10,20,30,40,5000,60]
median = st.median_high(data)
print("データ中央値:{}".format(median))
#output
データ中央値:40
numpy.median()
NumPyのnumpy.median()を使用すると、配列の中央値を出力することができます。
以下に例をご紹介します。
#input
import numpy as np
data = np.array([[ 10, 2,300],
[ 40, 50, 60],
[ 70, 8, 9]])
median1 = np.median(data,axis=0)
median2 = np.median(data,axis=1)
print("データ中央値(列):{}".format(median1))
print("データ中央値(行):{}".format(median2))
#output
データ中央値(列):[40. 8. 60.]
データ中央値(行):[10. 50. 9.]
まとめ
この記事では、Python基礎となるデータ中央値について、ご説明しました。
本記事を参考に、ぜひ色々なデータで試してみて下さい。
参考
Python学習用おすすめ教材
Pythonの基本を学びたい方向け
統計学基礎を学びたい方向け
Pythonの統計解析を学びたい方向け
おすすめプログラミングスクール
Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。
私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。
現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。
無料体験ができますので、まずは試してみてください!