Python による平均値、中央値、最頻値の求めかたと数式の意味

データ分析

標本を度数分布表に落とし込み、グラフにすることでその大まかな傾向が見えますが、さらに細かくデータを見てみましょう。

データを視覚的、感覚的に確認するために、一般的に用いられるのが「平均値」「中央値」「最頻値」ですね。

ということで、この三つはどんな意味があるかを説明して、さらにpythonを使って、実際に計算してみましょう。

この記事では、以下のポイントについて解説していきます。

  1. データ処理の基本:平均値、中央値、最頻値とは何か?
  2. Pythonで平均値、中央値、最頻値を求める方法
  3. “中央値と平均値の比較:どちらが適しているか?”

プログラミング、機械学習など、無料体験はこちら↓↓↓

Pythonによる統計計算: 平均値を理解する

平均値とは

平均値とは、統計学や数学で使用される重要な概念の一つです。

通常、平均といわれるものは、データセット内の数値の合計を、そのデータの個数で割ることによって計算される算術平均を指し、これにより、データセット内の値の「平均値」を求めることができます。

平均値は、データの中心傾向を理解し、要約するために広く使用されます。例えば、以下のような場面で平均値が利用されます:

  1. 成績の評価: 学生の成績を評価する際、各学生のテストスコアを合計し、学生数で割ることでクラス全体の平均スコアを計算することができます。
  2. 経済データ分析: ある期間内の月次売上データを持っている場合、その期間の平均売上を計算することで、ビジネスのパフォーマンスを把握できます。
  3. アンケート調査: 複数の人からの回答をまとめる際、質問に対する平均回答を計算することで、一般的な意見や傾向を把握できます。

平均値は、データセット内の異なる値を単一の数字で要約するため、データの理解や比較が容易になります。

しかし、データセット内の値が極端に大きい値や小さい値を持つ場合、平均値が正確な代表値を提供しないことがあることに注意する必要があります。

そのため、モード(最頻値)メディアン(中央値)なども同時に参考にする必要があるでしょう。

また、状況によっては、算術平均以外の平均値である加重平均や幾何平均などを用いるほうがより正しい平均値を得ることができます。

平均値の数式の解説

平均値の求め方は、データセット内の数値の合計を、そのデータの個数で割ることによって計算される単純なものですが、それを数式で表してみます。

数式に出てくる記号を一つ一つ説明してみましょう。

まず の意味は平均値であり、 はデータの個数、各データは  で表し、 の右下の が何番目なのかを表します。

例えば、 3, 5, 4, 1, 7 というデータがあったとしします。

普通に平均値を計算すれば、以下のように計算できます。

これを数式に当てはめてみると、データ個数  になります。

そして、, …  ですね。

なので、

と表せます。

ここではデータ個数が5個しかないので一つずつ足すことができますが、データの数が1万など膨大な数の場合、いちいち1万回足すという記述ができないので記号 を使います。

この意味はエクセルなどでもおなじみの、合計するという意味ですね。

例えば1番目の値から 番目の値を足す際には以下の式で表しす。

これを で割ると、以下の式のように平均が求められるというわけです。

 の読み方と使い方

この何かあよくわからないギリシャ文字の記号 ですが、まず読み方は「シグマ」と読みます。

(シグマ)には二つあり、こちらは総和を意味する大文字のシグマ。

小文字の (シグマ)は統計学で標準偏差という意味があります。

さて、 の使い方ですが、上下の数値を変えることで、足し算の範囲を設定できます。

 の場合、1番目から5番目の値を足す場合は、以下のように  、 として、

2番目から4番目を値を足す場合は、

3番目から最後までの値を足す場合は、

となります。

Python で平均値を求める

Pythonを使って平均値を求めてみましょう。

import numpy as np # 数値計算ライブラリ numpyをインポート
average = np.array([3,5,4,1,7]) # array にデータを格納
average 
array([3, 5, 4, 1, 7])

データの合計値を求める。

np.sum(average) # 合計値を求める関数 
20

len() 関数を使って、データの数を数える。

len(average) # データの数を数えるlen()関数 

平均値を求めるプログラムを書く。

N = len(average) # データの個数を定義
sum_average = np.sum(average) # データの合計値を求める
mean = sum_average/N # データの合計をデータの個数で割る
print("平均値:", mean)
平均値: 4.0

以上平均値が4.00と出力されましたが、np.mean()でも平均値を求めることができます。

print("平均値:", np.mean(average)) # 平均値を求めるプログラム
平均値: 4.0

以上平均値は4.00と算出されました。

Pythonによる統計計算: 中央値、最頻値を理解する。

中央値とは

中央値(median)は、統計学やデータ解析において使用される重要な概念です。

中央値は、データセット内の値を並べたときに、中央に位置する値、つまり、データを昇順または降順に並べた場合に、真ん中に位置する値です。

中央値は、データセット内の極端な値(外れ値)の影響を受けにくいため、データの中心傾向や中央位置を示す指標として有用です。

特に、データセットが正規分布に従っていない場合や、外れ値が存在する場合に、平均値(算術平均)よりも信頼性が高い代替指標として利用されます。

例えば、以下の二つのデータセットを比較します。

データセット A : 0, 1, 1, 2, 4, 1, 0, 1, 1, 0, 5, 1, 3, 3, 1, 2, 2, 2, 5, 2, 3, 2, 4, 4, 2, 3, 2, 2, 0, 2, 2, 1, 4, 1, 1, 2, 2, 2, 3

import numpy as np

dataA= np.array([0, 1, 1, 2, 4, 1, 0, 1, 1, 0, 5, 1, 3, 3, 1, 2, 2, 2, 5, 2, 3, 2, 4, 4, 2, 3, 2, 2, 0, 2, 2, 1, 4, 1, 1, 2, 2, 2, 3])

average = np.mean(dataA)
median = np.median(dataA)
mode = np.argmax(np.bincount(dataA))

print("平均値:", average)
print("中央値:", median)
print("最頻値:", mode)
平均値: 2.0256410256410255
中央値: 2.0
最頻値: 2

データセット B : 0, 1, 1, 2, 4, 1, 0, 1, 1, 0, 5, 1, 3, 3, 1, 2, 2, 2, 20, 2, 3, 2, 4, 4, 2, 3, 2, 2, 0, 2, 2, 1, 4, 1, 1, 2, 2, 2, 3

import numpy as np

dataB = np.array([0, 1, 1, 2, 4, 1, 0, 1, 1, 0, 5, 1, 3, 3, 1, 2, 2, 2, 20, 2, 3, 2, 4, 4, 2, 3, 2, 2, 0, 2, 2, 1, 4, 1, 1, 2, 2, 2, 3])

average = np.mean(dataB)
median = np.median(dataB)
mode = np.argmax(np.bincount(dataB))

print("平均値:", average)
print("中央値:", median)
print("最頻値:", mode)
平均値: 2.41025641025641
中央値: 2.0
最頻値: 2

データセットBはデータセットAの19番目の数値を20に変更しています。

この場合、データセットAの平均値は2.025に対し、データセットBの平均は2.41と0.4ポイントも違いが出ているのに対し、中央値は2.0と変わりません。

つまりこのデータにおいて20という外れ値が存在する場合、平均値よりも中央値のほうが信頼できる指標といえるでしょう。

最頻値とは

最頻値(mode)は、統計学やデータ解析において使用される統計的な尺度であり、最頻値は、データセット内で最も頻繁に現れる値、つまり、データセット内で最も多くの回数出現する値です。

最頻値は、データセット内でのトレンドや特徴を把握するのに役立つ統計的な指標であり、データの中心的な位置を示す中央値や平均値と共に使用されます。

最頻値は、データの分布を理解するために使用され、特にカテゴリカルデータ(離散データ)の場合に有用です。

例として、以下のようなデータセットがあるとします:

[1, 2, 2, 3, 4, 4, 4, 5]

この場合、4がこのデータセット内で最も頻繁に現れる値であり、3回出現しているため4が最頻値となります。

データセットに複数の最頻値がある場合もあります。これは、複数の値が同じ最大の頻度で出現する場合に起こります。

以下のデータセットの場合:

[1, 2, 2, 3, 3, 4, 4]

最頻値は2と3の両方になります。

Python で中央値、最頻値を求める

Pythonを使って、以下のデータセットの中央値と最頻値を求めてみましょう。

データセット: 0, 1, 1, 2, 4, 1, 0, 1, 1, 0, 5, 1, 3, 3, 1, 2, 2, 2, 5, 2, 3, 2, 4, 4, 2, 3, 2, 2, 0, 2, 2, 1, 4, 1, 1, 2, 2, 2, 3

import numpy as np

data = np.array([0, 1, 1, 2, 4, 1, 0, 1, 1, 0, 5, 1, 3, 3, 1, 2, 2, 2, 5, 2, 3, 2, 4, 4, 2, 3, 2, 2, 0, 2, 2, 1, 4, 1, 1, 2, 2, 2, 3])

median = np.median(data)
mode = np.argmax(np.bincount(data))

print("中央値:", median)
print("最頻値:", mode)
中央値: 2.0
最頻値: 2

中央値は2.0、最頻値は2になります。

まとめ

以上が平均値、中央値、最頻値とは何かについて説明し、そしてそれらの求め方についても書いてみました。

またPython のコードを実行宇することで、簡単に三つの値を求めることもでき、さらに細かな分析につなげることも可能になります。

中央値と平均値どちらを、使うのかという課題についても触れました。

基本的に、本来あるべき値から突出している値がデータに含まれていた場合、平均値を見ただけではとび値が隠れて見えなくなってしまいます。

そのため、データを検討する場合は、平均値と中央値の両方を見比べて適切な値を見出すことが重要になります。

皆さんも、他のデータでも試すと、いろいろ面白いかもしれませんね。

プログラミング、機械学習など、無料体験はこちら↓↓↓


関連記事↓↓↓

Python による分散、標準偏差の求めかたと数式の意味
「平均値」「中央値」「最頻値」でデータを視覚的、感覚的に確認し、さらにデータがどのような性質を持っているのかを確認するために用いられるのが、分散と標準偏差です。 この記事では、分散と標準偏差とは何か、どのようなときに使われるのか、さらにpy...

コメント

タイトルとURLをコピーしました