平均・合計・中央値を手計算|表・単位・割合・グラフ
このページはプロモーション(広告)を含みます。
表・単位・割合・グラフ(初級・読む22分+演習28分)
この授業のゴール
- データの合計・平均・中央値を、電卓だけで手計算できる
- 偶数個と奇数個のデータで、中央値の求め方を使い分けられる
- 外れ値があるとき、平均と中央値のどちらが典型的な値に近いかを判断できる
- グループごとの平均から全体の平均を、件数で重み付けして求められる
仕事でどう使うか
「平均はいくらですか」は、最も頻繁にされる質問の1つです。しかし、平均だけでは実態を表さないことがよくあります。1件だけ極端に大きい注文があるだけで、平均は大きく動きます。
| 路線 | この授業の使いどころ |
|---|---|
| DS(データサイエンティスト) | 注文額や滞在時間のように偏った分布では、平均と中央値を併記して報告する。グループ別の平均を、件数で重み付けして全体に戻す |
| ML(機械学習エンジニア) | 欠損の補完に平均か中央値を使い分ける。外れ値の多い特徴量では、中央値の方が安定する |
| DX(DX推進・AI企画) | 業務の処理時間を、平均だけでなく中央値や最大でも見て、現場の「典型」と「最悪」を捉える。人員計画の根拠にする |
| RS(研究者) | 測定値の代表値として平均か中央値を選び、理由を書く。外れ値の扱いを事前に決めておく |
この授業は、電卓で計算できる小さなデータで、代表値の意味を確かめる練習です。
前提
この授業は、足し算・割り算と、データの並べ替えができれば足ります。
- 1行の単位と、行数・件数の数え方 → 行と列と1行の単位
- 欠損と0の区別(欠損は件数に入れない) → 数値・カテゴリ・日時・欠損
- 割合と、分母の大きさで重みを付ける考え方 → 比率・割合・パーセントポイント
統計の詳しい代表値の話は 代表値と散らばり で扱います。この授業ではその入口として、手計算の手順を確実にします。
身近な状況:平均注文額が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つの値を、たとえ話で考えます。
- 合計:全部を足した量。「全部でいくら」。
- 平均:全部を足して、件数で公平に分け直した値。5人が持つ合計11,000円を、全員に等しく分けると1人2,200円になる。
- 中央値:小さい順に並べたときの、ちょうど真ん中の値。5人を所持金の順に並べたときの、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)は、次の手順で求めます。
- 値を小さい順に並べ替える。
- $n$ が奇数なら、真ん中の1個、つまり $(n+1)/2$ 番目の値。
- $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です。
観察してください。
- 外れ値が1100から100000に変わっても、中央値は900のまま。平均は900から20,680まで動く。
- 加重平均は、件数の多い200円の商品に近づく。
次を試してください。qty を [40, 10] に変えると、加重平均はいくつになるか。計算は $(100\times40+200\times10)/50 = 6000/50 = 120$ 円です。どちらの商品がたくさん売れたかで、1個あたりの平均が変わります。
発展:トリム平均・最頻値・分布の形
代表値には、平均と中央値のほかに、次のようなものがあります。
- 最頻値(モード):最も多く現れる値。カテゴリの代表値として使えます。
- トリム平均:両端の小さい値と大きい値を一定の割合だけ除いて平均したもの。外れ値の影響を減らしながら、平均の性質を保ちます。
- 四分位数:小さい順に並べて4等分した境目の値。中央値は2番目の四分位数にあたります。
分布の形によって、平均と中央値の関係が変わります。所得や注文額のように右に長い裾を持つ分布では、平均が中央値より大きくなります。左右対称に近い分布では、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は件数に入れる。
まとめ
- 合計は総量、平均は公平に分けた値、中央値は並べた真ん中の値。目的で使い分ける。
- 中央値は必ず小さい順に並べてから求める。偶数個は真ん中の2個の平均。
- 外れ値があると平均は大きく動くが、中央値はほとんど動かない。両方を併記すると安全。
- グループ別の平均を合わせるときは、件数で重み付けする。本物の0は平均に含める。
用語
- 平均(算術平均)(mean)
値の合計を件数で割った値。極端な値の影響を受けやすい。
- 中央値(median)
小さい順に並べたときの真ん中の値。偶数個なら真ん中2個の平均。外れ値に強い。
- 外れ値(outlier)
他の値から大きく離れた値。入力ミスの場合も、本物の大口の場合もある。
- 加重平均(weighted mean)
各値に件数などの重みを掛けて求める平均。グループの平均を合わせるときに使う。
よくある質問
平均と中央値は、どちらを報告すればよいですか。
迷ったら両方を書きます。2つが近ければ、分布がほぼ対称で外れ値が少ないと推測できます。平均が中央値よりずっと大きければ、少数の大きな値が平均を押し上げていると伝えられます。
外れ値は取り除いてよいのですか。
理由なく除いてはいけません。入力ミスや測定エラーが確認できる場合は除くか修正します。本物の大口注文なら、除かずに残し、別枠で報告します。除いたときは、件数と基準を書きます。
平均がわかっていれば、合計は復元できますか。
件数がわかれば、合計は 平均 × 件数 で復元できます。中央値からは復元できません。そのため、総額を扱うときは合計や平均を、典型を知りたいときは中央値を、と使い分けます。
グループ別の中央値から、全体の中央値は出せますか。
出せません。中央値は平均と違い、グループの値だけから全体の値を再構成できません。全体の中央値が必要なら、元のデータを並べ直します。
偶数個のとき、真ん中の2個の平均が実在しない値になるのは問題ですか。
問題ありません。中央値は「大きい方と小さい方が同数になる境目」を表す定義です。データに存在する値である必要はありません。
実務で、手計算の練習は必要ですか。
必要です。ソフトの出力が正しいかを大まかに検算するのに、手計算の感覚が役立ちます。たとえば「平均が最大値より大きい」といった、ありえない結果にすぐ気づけます。
確認問題
問1 注文額が 700, 800, 900, 1000, 7600 円のとき、中央値はいくらか。
- ① 7,600円
- ② 1,000円
- ③ 2,200円
- ④ 900円
解答と解説
正解:④
小さい順に並べた3番目が中央値で、900円です。2,200円は平均です。
問2 値が 3, 5, 7, 8 の4個のとき、中央値はいくらか。
- ① 5.5
- ② 6
- ③ 5
- ④ 7
解答と解説
正解:②
偶数個なので、真ん中の2個(5と7)の平均、(5+7)÷2=6です。
問3 午前の注文2件(平均1,000円)と午後の注文8件(平均500円)を合わせた全体の平均はいくらか。
- ① 600円
- ② 500円
- ③ 1,500円
- ④ 750円
解答と解説
正解:①
合計は 2×1000+8×500=6,000円で、件数10で割った600円です。
問4 年収のデータで、1人だけ非常に高い人が加わった。平均と中央値の変化の説明として最も適切なのはどれか。
- ① 両方とも変わらない
- ② 平均はほとんど変わらず、中央値が大きく上がる
- ③ 平均は大きく上がるが、中央値はほとんど変わらない
- ④ 両方が同じだけ上がる
解答と解説
正解:③
平均は全員の値の合計に依存するので、極端な値に引っ張られます。中央値は順位だけで決まるので、ほとんど変わりません。
問5 5日分の問い合わせ件数が 12, 0, 15, 9, 0 件のとき、1日あたり平均件数の正しい計算はどれか。
- ① 0の日も含めて 36÷5 = 7.2件
- ② 最大の15件を使う
- ③ 中央値の9件に5を掛ける
- ④ 0の日を除いて 36÷3 = 12件
解答と解説
正解:①
0件の日は本物の観測値なので、件数に含めて平均します。除くと平均が実態より大きくなります。
問6 「今月の売上合計」を求めるのに、最も適した指標はどれか(件数がわかっているとする)。
- ① 注文額の中央値 × 件数
- ② 注文額の最頻値 × 件数
- ③ 注文額の合計(または平均 × 件数)
- ④ 最大の注文額
解答と解説
正解:③
総量を知りたいときは合計を使います。平均 × 件数は合計と一致しますが、中央値 × 件数は一致しません。
次に学ぶこと
次は 軸とグラフを読む で、軸とグラフの読み方を学びます。平均と中央値の違いは、グラフのどこに現れるかも含めて確認します。散らばりや外れ値の詳しい扱いは 代表値と散らばり、外れ値と頑健性 に進みます。
この授業の確認問題だけで習得とはしません。ON04 の総合テストと自力課題で判定します。
キャリア学習:データサイエンティスト・機械学習エンジニア・DX推進・研究者を目指す人の学習アプリ。164モジュール・984授業を、ブラウザで動くSQLとPythonの演習で。基礎と各分野の最初のモジュールは無料。全部は2,980円の買い切り。
アプリを無料で開く有料版と無料版の違い