DESIGN / CODE / INFRA / AI

解説

平均の平均で大丈夫?AIへ集計を頼む前に人数の重みを確かめよう

二つのクラスの平均点を足して2で割れば、全員の平均点になるのかな。人数が違うと、その方法では同じ答えにならないことがあるよ。

平均の平均で大丈夫?AIへ集計を頼む前に人数の重みを確かめよう
保存リストを見る →
この記事の道しるべ 5項目

二つのクラスの平均点を足して2で割れば、全員の平均点になるのかな。人数が違うと、その方法では同じ答えにならないことがあるよ。

この記事では、AIへ集計を頼む前に、何を一件として平均するかを決める。用意するのは架空の平均点と人数だけ。実在の成績や個人情報は使わない。

人数が違う二つの集団

A組は10人で平均80点、B組は30人で平均60点だったとする。二つの平均だけを平均すると、(80+60)÷2で70点。でも全40人の平均は65点になる。

集団 人数 平均点 人数×平均点
A組 10 80 800
B組 30 60 1800
合計 40 — 2600

2600÷40で65。各集団の大きさを重みとして計算するので、加重平均と呼ぶよ。この例は平均点が正確な値という前提。丸め済みの平均から元の合計を完全に復元できるとは限らない。

何を公平に数えるかで答えが変わる

「一人ずつ同じ重み」と「一クラスずつ同じ重み」は、別の目的の集計だよ。70点という計算そのものが常に誤りなのではなく、全員の平均点という問いに合っていない。

店舗の売上単価や、期間ごとのクリック率も同じように、元の件数が関係する。割合の場合は、その率の分母が何かを先に確認したいね。

AIへの依頼を具体的にする

依頼例は「各クラスを等しく平均するのではなく、生徒一人を一件として全体平均を計算してください。人数と平均から合計点を求め、式も示してください。平均が丸め済みなら、その制約も書いてください」。

人数が分からない場合は、AIに推測させず、「全員の平均は確定できない」と分けてもらう。欠けた人数を勝手に同じにしないことが大切。

Pythonでも照合できる

Pythonのstatistics.fmeanには、重みを指定するweightsがある。対応するPythonでは、次で65.0を得られるよ。

from statistics import fmean
print(fmean([80, 60], weights=[10, 30]))

標準ライブラリの関数でも、与える重みを間違えれば目的の平均にはならない。入力と計算方法を別々に確認しよう。

基本の平均と中央値はこちらの記事、丸めの順序は合計前後の丸めへ。

参照した公式資料

確認日:2026年10月23日。練習例は架空のデータを使っています。

参考・出典

公開と変更の記録
  • :初回公開

日時は日本時間です。記載のある変更は、確認できた編集記録に基づきます。更新日の違いだけから変更内容を推測して載せることはありません。

更新・訂正の方針 →

みんなのコメント 0

感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。

最初のコメントをどうぞ。