マガジン

平均と中央値、どちらを報告するか:架空の給与データで見る使い分け

AIを使いこなす

Claudeで執筆し、GPTで自動校閲・修正しています。

机上で、ほぼ同じ高さに並ぶカードと、離れて高く積まれた1枚のカードを鉛筆と計算用紙が囲む。
記事の内容をもとに制作したAI生成イメージです。実際の製品画面や検証結果の写真ではありません。

結論から言うと、「ふつうの人の水準」を伝えたいときは中央値、「合計を人数で割った一人当たりの値」を示したいときは平均が向いています。合計そのものを伝えるなら合計値を示し、迷ったら平均と中央値を並べて件数と外れ値の有無を添えると、誤解を避けやすくなります。 平均と中央値がずれるのは、少数の極端に大きい(または小さい)値が平均だけを引っ張るからです。この記事では、説明用に作った架空の給与10件を手計算し、ずれが生まれる様子を確認します。そのうえで、報告時の早見表と、AIに検算を頼むときの依頼文を紹介します。

この記事の目次
  1. 説明用の例:架空の給与10件
  2. 外れ値が1つ変わるとどうなるか
  3. 報告時の使い分け早見表
  4. AIと手元のツールで検算する
  5. 報告前のチェックリスト

説明用の例:架空の給与10件

次のデータは、この記事のために作った架空の年収(万円)です。実在の企業や調査の結果ではありません。

  • 年収(万円)、A:360、B:1,820、C:300、D:450、E:280、F:380、G:340、H:400、I:320、J:350

平均を手計算する

平均は「全部足して件数で割る」だけです。

  • 合計:360 + 1,820 + 300 + 450 + 280 + 380 + 340 + 400 + 320 + 350 = 5,000
  • 平均:5,000 ÷ 10 = 500万円

中央値を手計算する

中央値は、小さい順に並べたときの真ん中の値です。まず並べ替えます。

280 / 300 / 320 / 340 / 350 / 360 / 380 / 400 / 450 / 1,820

件数が10件(偶数)なので、真ん中は5番目と6番目の2つです。その2つの平均をとります。

  • (350 + 360) ÷ 2 = 355万円

件数が奇数なら、ちょうど真ん中の1つがそのまま中央値になります。

何が起きているか

平均は500万円ですが、10人中9人はそれより低い年収です。Bさんの1,820万円ひとつが、平均を約145万円押し上げています(Bさんを除いた9人の平均は3,180 ÷ 9 ≒ 353万円)。「この集団の平均年収は500万円」と書くと、読み手は多くの人が500万円前後だと受け取りますが、実態とはかけ離れます。

外れ値が1つ変わるとどうなるか

同じ例で、Bさんの値だけを1,820から520に差し替えてみます(これも説明用の仮定です)。

  • 合計:5,000 − 1,820 + 520 = 3,700 → 平均 370万円
  • 並べ替えても5番目と6番目は350と360のままなので、中央値は 355万円
  • Bが1,820万円、平均:500万円、中央値:355万円、平均より低い人数:9人
  • Bが520万円、平均:370万円、中央値:355万円、平均より低い人数:6人

極端な値が1つ動いただけで、平均は130万円動き、中央値は動きませんでした。これが「中央値は外れ値に強い」と言われる理由です。逆に言えば、平均は全員の値を使うので、合計や総コストを考える場面では情報を落としません。

公的統計でも、分布が左右どちらかに偏っていると平均値と中央値が異なる、という趣旨の説明がされています。総務省統計局の家計資産に関するページでは、中央値を「資産額がゼロの世帯を除いて大小順に並べたときの真ん中」と定義していました。ここで学べるのは、中央値は「どの母集団の真ん中か」で値が変わるという点です。ゼロを含めるか除くかで結果が変わるので、報告するときは対象の範囲も書いてください。

報告時の使い分け早見表

以下は公式の規則ではなく、この記事の編集上の目安です。

  • 「典型的な人」の水準を伝えたい、優先する値:中央値、理由・書き方:「半数はこの額以下」と言える
  • 分布が右に長く伸びる(給与、資産、待ち時間など)、優先する値:中央値+平均、理由・書き方:差そのものが偏りの手がかり
  • 人件費総額や売上総額など、合計を人数・件数で割った値を示す、優先する値:平均、理由・書き方:平均×件数=合計。合計そのものを伝えるなら合計値を示す
  • 外れ値が入力ミスかもしれない、優先する値:先に原因を確認、理由・書き方:平均も中央値も出す前に、桁違いの値を点検する
  • 件数が少ない(10件前後以下)、優先する値:両方+件数、理由・書き方:どちらも1件で大きく動きうる
  • 左右対称に近い(身長など)、優先する値:どちらでも可、理由・書き方:両者が近い値になる

迷ったときの書き方の型

年収の平均は500万円、中央値は355万円です(n=10、説明用の架空データ)。1件だけ極端に高い値があり、平均を押し上げています。

平均と中央値を並べ、件数と偏りの理由を1文添えるだけで、読み手は「平均だけを見て誤解する」リスクを避けられます。

AIと手元のツールで検算する

ここからは、人が作業を進める際の手順です。

AIに任せること・渡す情報・人が確認すること

  • 任せること:並べ替え、合計、平均、中央値の計算過程の提示、報告文の下書き
  • 渡す情報:数値の列、単位、件数、「架空」か実データかの区別。社内の実際の給与など機密性のある数値は、そのまま貼らず、桁や順序を保った置き換えデータにしてください。
  • 人が確認すること:計算過程の途中経過(合計・並べ替え後の順序)、母集団の範囲、外れ値が入力ミスでないか、結論の言い回し

依頼文の例

次は説明用の架空の年収データ(万円)です。
360, 1820, 300, 450, 280, 380, 340, 400, 320, 350

1. 件数を数えてください。
2. 合計と平均を出し、途中の足し算を示してください。
3. 小さい順に並べ替え、中央値を求めてください。件数が偶数なら、どの2つを平均したかも書いてください。
4. 平均より低い値が何件あるか数えてください。
5. 平均と中央値のどちらを報告すべきか、「典型的な水準を伝えたい」場合と「総額を知りたい」場合に分けて説明してください。

AIの計算は、手順を出させて自分で追うまで信用しないでください。この記事の数値(合計5,000、平均500、中央値355)と一致するかを確認すれば、手計算の練習にもなります。

pandasでの検算

Pythonを使える場合は、pandasで確認できます。次のコードは記事のために書いた例で、私は実行していません。出力が手計算と一致するかを、お手元で確かめてください。

python
import pandas as pd

s = pd.Series([360, 1820, 300, 450, 280, 380, 340, 400, 320, 350])
print(s.count())    # 件数
print(s.mean())     # 平均
print(s.median())   # 中央値
print((s < s.mean()).sum())  # 平均より低い件数

pandasの公式ドキュメントによると、Series.meanもSeries.medianも、skipnaの既定値はTrueで、欠損値(NA/null)を除いて計算します。欠損が多いデータでは、計算に使われた件数が元の行数より少なくなります。報告する件数はcount()で確認し、欠損を除いた結果であることも書いておくと安心です。

報告前のチェックリスト

  1. 件数(n)と単位を書いたか
  2. 対象の範囲(正社員のみ、ゼロを除く、など)を書いたか
  3. 平均と中央値の差が大きいとき、その理由(極端な値の存在など)を1文で説明したか
  4. 極端な値が入力ミスでないことを、元データで確認したか
  5. 合計が目的なら平均、典型的な水準が目的なら中央値という使い分けに沿っているか

平均と中央値はどちらが正しいという関係ではなく、答える問いが違う指標です。「合計を人数で割るとこうなる」のが平均、「ちょうど真ん中の人はこうだ」が中央値です。読み手がどちらの問いを知りたがっているかを基準に選び、迷えば両方出してください。

出典・参考資料