💭

【Pythonで統計×AIリブート】1-1.記述統計 位置編

に公開

はじめに

Python 片手に統計と AI をもう一度叩き込んでいます。
ここは、大学でまなんだことを再び学び直し、忘れないようにメモしている場所。
まだまだ修行中なので、もし違う所があったらコメントをお願いします。

この記事では、超基礎である記述統計を整理します
内容が多いため5パートに分け、そのうち今回はパート1-1 位置編です。
動かしながら覚えるために、各指標の最小限のPython実装例も添えました。

各パートの内容

パート 内容 具体例
1 位置 平均・中央・最頻値
2 散布・ばらつき 最小・最大・四分位範囲・分散...
3 位置の相対指標 パーセンタイル・百分位数...
4 形状 歪度・尖度
5 比率・構成 割合・相対度数・クロス集計

記述統計とは

集めたデータをそのまま/要約/整理/可視化して特徴をつかむための統計手法の総称です。
データの姿をわかりやすくしていくイメージ。
対になるのは推測統計で、サンプルから母集団の性質を推定、検定する世界です。

代表値(位置)

「データの特徴を 1 つの数字で語る」ための方法。

平均値

平均値と言っても、求めたい真ん中の概念で計算方法がかわります。
下の早見表はどれを使うかのヒントにしてください。

こんなとき 使う平均
合計を人数で割りたい 算術平均
倍率や成長率を平均したい 幾何平均
レート(比率)を平均したい 調和平均
エネルギー量っぽいものを測りたい 二乗平均(RMS)
重みを付けて平均したい 加重平均

算術平均(相加平均)

外れ値の影響を受けやすいポピュラーな平均。

\bar{x} = \frac{1}{n}\sum_{i=1}^{n} x_i
import statistics as st
mean = st.mean(data)
# numpyでも
import numpy as np
mean = np.mean(data)

幾何平均

掛け算で連鎖する量(成長率など)の真ん中を取る平均。
算術平均だと意味がズレてしまう。

ビジネス例:年平均成長率、ポートフォリオ期間収益率、CPI合成、コンバージョン率連鎖

\mathrm{GM} = \left(\prod_{i=1}^{n} x_i\right)^{\tfrac{1}{n}}
from statistics import geometric_mean
gm = geometric_mean(data)

調和平均

逆数を平均してからひっくり返すので、小さい値を強調。

ビジネス利用例:F1スコア、平均単価、P/Eレシオ平均、平均レイテンシ

\mathrm{HM} = \frac{n}{\displaystyle\sum_{i=1}^{n}\frac{1}{x_i}}
from statistics import harmonic_mean
hm = harmonic_mean(data)

二乗平均(RMS)

外れ値をより強く拾う。
正負が打ち消し合うデータやエネルギー的な大きさを測りたいときに二乗が都合良い。

ビジネス利用例:RMSE(予測誤差の評価指標)、RMS 電圧/電流、寸法誤差総合指標

\mathrm{RMS} = \sqrt{\frac{1}{n}\sum_{i=1}^{n} x_i^{2}}
import numpy as np
rms = np.sqrt(np.mean(np.square(data)))

加重平均

重み を掛けた割り勘平均。

ビジネス例:WACC(加重平均資本コスト)、時価総額加重指数、平均客単価(支店規模で加重)

\mathrm{WM} = \frac{\sum_{i=1}^{n} w_i\,x_i}{\sum_{i=1}^{n} w_i}\qquad\bigl(\sum w_i \ne 0\bigr)
import numpy as np
w = [1, 2, 1, 3, 1, 2]
wm = np.average(data, weights=w)

中央値

並べたデータの真ん中。

  • データ数が奇数→真ん中の値
  • データ数が偶数→中央2点の算術平均
    外れ値に強いが全体変動に鈍感。平均と並べて差を観察するのがおすすめ。
    ビジネス例:給与、住宅価格、クリック単価
from statistics import median
med = median(data)

最頻値

最も頻繁に出現する値。
連続値はビン分けで算出可能。
ビジネス例:売れ筋サイズ、お問い合わせカテゴリー、曜日別来客数

from statistics import mode, multimode
mo = mode(data)       # 単峰
mos = multimode(data) # 複数モード

おわりに

今回は代表値を整理しました。
次回は 散布・ばらつき編 (1‑2) に続きます。お楽しみに!

参考文献

GhatGPT o3にも手伝ってもらっています。
平均
https://freeasy24.research-plus.net/blog/c305
http://www.ries.co.jp/project/topic_point_of_view.html
https://web-kaizen.co.jp/2019/11/19/「平均」の種類と計算方法を俯瞰してみる/

Discussion