平均・合計・中央値を手計算|表・単位・割合・グラフ

このページはプロモーション(広告)を含みます。

表・単位・割合・グラフ(初級・読む22分+演習28分)

この授業のゴール

仕事でどう使うか

「平均はいくらですか」は、最も頻繁にされる質問の1つです。しかし、平均だけでは実態を表さないことがよくあります。1件だけ極端に大きい注文があるだけで、平均は大きく動きます。

路線 この授業の使いどころ
DS(データサイエンティスト) 注文額や滞在時間のように偏った分布では、平均と中央値を併記して報告する。グループ別の平均を、件数で重み付けして全体に戻す
ML(機械学習エンジニア) 欠損の補完に平均か中央値を使い分ける。外れ値の多い特徴量では、中央値の方が安定する
DX(DX推進・AI企画) 業務の処理時間を、平均だけでなく中央値や最大でも見て、現場の「典型」と「最悪」を捉える。人員計画の根拠にする
RS(研究者) 測定値の代表値として平均か中央値を選び、理由を書く。外れ値の扱いを事前に決めておく

この授業は、電卓で計算できる小さなデータで、代表値の意味を確かめる練習です。

前提

この授業は、足し算・割り算と、データの並べ替えができれば足ります。

統計の詳しい代表値の話は 代表値と散らばり で扱います。この授業ではその入口として、手計算の手順を確実にします。

身近な状況:平均注文額が2,200円なのに、誰も2,200円を払っていない

ネットショップの、ある日の注文5件の金額です。

注文 金額(円)
1 700
2 800
3 900
4 1,000
5 7,600

担当者が「平均注文額は 2,200円」と報告すると、上司は「2,200円くらいの注文が普通なのか」と受け取ります。しかし実際は、5件のうち4件が1,000円以下で、2,200円を払った人は1人もいません。

5件目の7,600円という大きな注文が、平均を引き上げています。もし「典型的な注文額」を知りたいなら、並べたときの真ん中の値、つまり中央値の900円の方が実態に近いのです。

一方で、「今日の売上合計は?」と聞かれたら、答えは 11,000円で、平均ではなく合計を使います。目的によって、合計・平均・中央値を使い分けます。

直感的な説明:公平に分けた値と、真ん中の値

3つの値を、たとえ話で考えます。

平均は、極端な値に引っ張られます。シーソーのたとえが使えます。支点(平均)は、全員の位置のつり合う場所です。遠くに重い人(7,600円)が1人いると、支点も遠くへ動きます。

中央値は、並べた順位だけで決まります。7,600円が100,000円になっても、順位は変わらないので中央値は900円のままです。この性質を「外れ値に強い(頑健)」と言います。

ただし、中央値にも弱点があります。合計を知りたいときに、中央値に件数を掛けても、正しい合計にはなりません。目的に合わせて選びます。

正確な定義:合計・平均・中央値・加重平均

$n$ 個の値 $x_1, x_2, \ldots, x_n$ があるとします。

合計は、すべての値を足したものです。

$$S = \sum_{i=1}^{n} x_i$$

平均(算術平均)は、合計を件数で割ったものです。

$$\bar{x} = \frac{S}{n} = \frac{1}{n}\sum_{i=1}^{n} x_i$$

ここで $x_i$ は $i$ 番目の値(円)、$n$ は欠損でない値の個数、$\bar{x}$ は平均(円)です。冒頭の例では $S = 700+800+900+1000+7600 = 11000$、$n=5$ なので $\bar{x} = 11000/5 = 2200$ 円です。

中央値(median)は、次の手順で求めます。

  1. 値を小さい順に並べ替える。
  2. $n$ が奇数なら、真ん中の1個、つまり $(n+1)/2$ 番目の値。
  3. $n$ が偶数なら、真ん中の2個、つまり $n/2$ 番目と $n/2+1$ 番目の値の平均。

冒頭の例は $n=5$(奇数)で、小さい順に 700, 800, 900, 1000, 7600。$(5+1)/2 = 3$ 番目の 900円が中央値です。

$n=4$ の 700, 800, 900, 1000 なら、2番目の800と3番目の900の平均で $(800+900)/2 = 850$ 円です。

加重平均は、値に重み(件数など)を掛けて平均します。

$$\bar{x}_w = \frac{\sum_i w_i x_i}{\sum_i w_i}$$

$w_i$ は $i$ 番目の重み(件数など)、$x_i$ は $i$ 番目の値です。たとえば、単価100円の商品を10個、単価200円の商品を40個売ったとき、1個あたりの平均単価は $(100\times10 + 200\times40)/(10+40) = 9000/50 = 180$ 円です。単純平均 $(100+200)/2=150$ 円とは異なります。グループごとの平均を合わせるときは、件数で重み付けするのが原則です。

段階付き例題:5件の注文を手計算して、報告文を書く

問題:注文額 900, 700, 7600, 800, 1000 円(順不同)について、合計・平均・中央値を求め、報告に何を書くか決める。

ステップ1:件数を数える。$n=5$。

ステップ2:合計を出す。900 + 700 + 7600 + 800 + 1000 = 11,000円。

ステップ3:平均を出す。11,000 ÷ 5 = 2,200円。

ステップ4:小さい順に並べ替える。700, 800, 900, 1000, 7600。並べ替えを忘れない。

ステップ5:中央値を出す。$n=5$ は奇数なので、3番目の 900円。

ステップ6:外れ値を除いた平均も見る。7,600円を除くと、合計3,400円、件数4、平均850円。

画面で確かめます。statistics.mean と statistics.median は、リストを渡すと平均・中央値を返す標準ライブラリの関数です。sum は合計、len は要素の個数を返します。

import statistics
orders = [900, 700, 7600, 800, 1000]
print('件数', len(orders))
print('合計', sum(orders))
print('平均', statistics.mean(orders))
print('中央値', statistics.median(orders))
print('7600を除いた平均', statistics.mean([x for x in orders if x != 7600]))
print('--- 偶数個 ---')
print('中央値(700, 800, 900, 1000)', statistics.median([700, 800, 900, 1000]))

出力は、件数5、合計11000、平均2200、中央値900、7600を除いた平均850、偶数個の中央値850.0です。

ステップ7:報告文を書く。「注文5件、合計11,000円。平均2,200円、中央値900円。7,600円の大口が1件あり、平均を押し上げている。」平均と中央値の両方を書き、差の理由を添えます。

操作して理解する:外れ値と重みを動かす

次のコードで、外れ値の大きさを変えたときの、平均と中央値の動きを確かめます。for big in [1100, 7600, 100000]: は、リストの値を1つずつ big に入れて繰り返す文です。

import statistics
base = [700, 800, 900, 1000]
for big in [1100, 7600, 100000]:
    data = base + [big]
    print('最大の値', big, '平均', statistics.mean(data), '中央値', statistics.median(data))
print('--- 加重平均 ---')
prices = [100, 200]
qty = [10, 40]
print('単純平均', sum(prices) / len(prices))
print('加重平均', sum(p * q for p, q in zip(prices, qty)) / sum(qty))

出力は、最大1100で平均900・中央値900、最大7600で平均2200・中央値900、最大100000で平均20680・中央値900です。単純平均は150.0、加重平均は180.0です。

観察してください。

次を試してください。qty を [40, 10] に変えると、加重平均はいくつになるか。計算は $(100\times40+200\times10)/50 = 6000/50 = 120$ 円です。どちらの商品がたくさん売れたかで、1個あたりの平均が変わります。

発展:トリム平均・最頻値・分布の形

代表値には、平均と中央値のほかに、次のようなものがあります。

分布の形によって、平均と中央値の関係が変わります。所得や注文額のように右に長い裾を持つ分布では、平均が中央値より大きくなります。左右対称に近い分布では、2つはほぼ一致します。報告書では、「平均が中央値より大きい」ことそのものが、右に偏った分布のサインです。

使い分けの目安:

目的 適した指標
売上の総額、在庫の総量 合計
総量を件数で割る計画(1人あたりコスト) 平均
典型的な1件の値、外れ値の多いデータ 中央値
最悪・最大のケースの把握 最大値、上位の四分位数

詳しい散らばりの指標(標準偏差など)は 代表値と散らばり と 外れ値と頑健性 で学びます。

よくある失敗

失敗1:並べ替えずに真ん中の位置を取る

誤った例:注文額 900, 700, 7600, 800, 1000 のリストの、3番目の値を中央値とする。

orders = [900, 700, 7600, 800, 1000]
print('誤:並べ替えずに3番目', orders[2])
print('正:並べ替えて3番目', sorted(orders)[2])

誤った値は7,600円、正しい値は900円です。リストの位置(インデックス)は0から数えるので orders[2] は3番目ですが、並べ替える前の3番目は「大きさの真ん中」ではありません。直し方:必ず小さい順に並べ替えてから、真ん中を取る。

失敗2:グループ別の平均を、件数を無視して平均する

誤った例:午前の注文2件の平均が1,000円、午後の注文8件の平均が500円のとき、「1日の平均は (1000+500)÷2 = 750円」とする。

am_n, am_mean = 2, 1000
pm_n, pm_mean = 8, 500
print('誤:平均の単純平均', (am_mean + pm_mean) / 2)
print('正:加重平均', (am_n * am_mean + pm_n * pm_mean) / (am_n + pm_n))

誤った値は750円、正しい値は600円です。午後は件数が4倍あるのに、同じ重みで扱ったのが誤りです。直し方:グループの合計(平均×件数)を足し、全体の件数で割る。

失敗3:本物の0を除いて平均する

誤った例:問い合わせ件数が 12, 0, 15, 9, 0 の5日分で、0の日は「データなし」だと考えて除いて平均する。

calls = [12, 0, 15, 9, 0]
nonzero = [x for x in calls if x != 0]
print('誤:0を除いた平均', sum(nonzero) / len(nonzero))
print('正:0も含めた平均', sum(calls) / len(calls))

誤った値は12件、正しい値は7.2件です。この0は「問い合わせが0件だった」という観測値であり、欠損ではありません。直し方:0と欠損を区別する(数値・カテゴリ・日時・欠損)。欠損は件数に入れず、0は件数に入れる。

まとめ

用語

平均(算術平均)(mean)

値の合計を件数で割った値。極端な値の影響を受けやすい。

中央値(median)

小さい順に並べたときの真ん中の値。偶数個なら真ん中2個の平均。外れ値に強い。

外れ値(outlier)

他の値から大きく離れた値。入力ミスの場合も、本物の大口の場合もある。

加重平均(weighted mean)

各値に件数などの重みを掛けて求める平均。グループの平均を合わせるときに使う。

よくある質問

平均と中央値は、どちらを報告すればよいですか。

迷ったら両方を書きます。2つが近ければ、分布がほぼ対称で外れ値が少ないと推測できます。平均が中央値よりずっと大きければ、少数の大きな値が平均を押し上げていると伝えられます。

外れ値は取り除いてよいのですか。

理由なく除いてはいけません。入力ミスや測定エラーが確認できる場合は除くか修正します。本物の大口注文なら、除かずに残し、別枠で報告します。除いたときは、件数と基準を書きます。

平均がわかっていれば、合計は復元できますか。

件数がわかれば、合計は 平均 × 件数 で復元できます。中央値からは復元できません。そのため、総額を扱うときは合計や平均を、典型を知りたいときは中央値を、と使い分けます。

グループ別の中央値から、全体の中央値は出せますか。

出せません。中央値は平均と違い、グループの値だけから全体の値を再構成できません。全体の中央値が必要なら、元のデータを並べ直します。

偶数個のとき、真ん中の2個の平均が実在しない値になるのは問題ですか。

問題ありません。中央値は「大きい方と小さい方が同数になる境目」を表す定義です。データに存在する値である必要はありません。

実務で、手計算の練習は必要ですか。

必要です。ソフトの出力が正しいかを大まかに検算するのに、手計算の感覚が役立ちます。たとえば「平均が最大値より大きい」といった、ありえない結果にすぐ気づけます。

確認問題

問1 注文額が 700, 800, 900, 1000, 7600 円のとき、中央値はいくらか。

  1. ① 7,600円
  2. ② 1,000円
  3. ③ 2,200円
  4. ④ 900円
解答と解説

正解:④

小さい順に並べた3番目が中央値で、900円です。2,200円は平均です。

問2 値が 3, 5, 7, 8 の4個のとき、中央値はいくらか。

  1. ① 5.5
  2. ② 6
  3. ③ 5
  4. ④ 7
解答と解説

正解:②

偶数個なので、真ん中の2個(5と7)の平均、(5+7)÷2=6です。

問3 午前の注文2件(平均1,000円)と午後の注文8件(平均500円)を合わせた全体の平均はいくらか。

  1. ① 600円
  2. ② 500円
  3. ③ 1,500円
  4. ④ 750円
解答と解説

正解:①

合計は 2×1000+8×500=6,000円で、件数10で割った600円です。

問4 年収のデータで、1人だけ非常に高い人が加わった。平均と中央値の変化の説明として最も適切なのはどれか。

  1. ① 両方とも変わらない
  2. ② 平均はほとんど変わらず、中央値が大きく上がる
  3. ③ 平均は大きく上がるが、中央値はほとんど変わらない
  4. ④ 両方が同じだけ上がる
解答と解説

正解:③

平均は全員の値の合計に依存するので、極端な値に引っ張られます。中央値は順位だけで決まるので、ほとんど変わりません。

問5 5日分の問い合わせ件数が 12, 0, 15, 9, 0 件のとき、1日あたり平均件数の正しい計算はどれか。

  1. ① 0の日も含めて 36÷5 = 7.2件
  2. ② 最大の15件を使う
  3. ③ 中央値の9件に5を掛ける
  4. ④ 0の日を除いて 36÷3 = 12件
解答と解説

正解:①

0件の日は本物の観測値なので、件数に含めて平均します。除くと平均が実態より大きくなります。

問6 「今月の売上合計」を求めるのに、最も適した指標はどれか(件数がわかっているとする)。

  1. ① 注文額の中央値 × 件数
  2. ② 注文額の最頻値 × 件数
  3. ③ 注文額の合計(または平均 × 件数)
  4. ④ 最大の注文額
解答と解説

正解:③

総量を知りたいときは合計を使います。平均 × 件数は合計と一致しますが、中央値 × 件数は一致しません。

次に学ぶこと

次は 軸とグラフを読む で、軸とグラフの読み方を学びます。平均と中央値の違いは、グラフのどこに現れるかも含めて確認します。散らばりや外れ値の詳しい扱いは 代表値と散らばり、外れ値と頑健性 に進みます。

この授業の確認問題だけで習得とはしません。ON04 の総合テストと自力課題で判定します。

キャリア学習:データサイエンティスト・機械学習エンジニア・DX推進・研究者を目指す人の学習アプリ。164モジュール・984授業を、ブラウザで動くSQLとPythonの演習で。基礎と各分野の最初のモジュールは無料。全部は2,980円の買い切り。

アプリを無料で開く有料版と無料版の違い