【Pythonで統計×AIリブート】1-1.記述統計 位置編
はじめに
Python 片手に統計と AI をもう一度叩き込んでいます。
ここは、大学でまなんだことを再び学び直し、忘れないようにメモしている場所。
まだまだ修行中なので、もし違う所があったらコメントをお願いします。
この記事では、超基礎である記述統計を整理します
内容が多いため5パートに分け、そのうち今回はパート1-1 位置編です。
動かしながら覚えるために、各指標の最小限のPython実装例も添えました。
各パートの内容
パート | 内容 | 具体例 |
---|---|---|
1 | 位置 | 平均・中央・最頻値 |
2 | 散布・ばらつき | 最小・最大・四分位範囲・分散... |
3 | 位置の相対指標 | パーセンタイル・百分位数... |
4 | 形状 | 歪度・尖度 |
5 | 比率・構成 | 割合・相対度数・クロス集計 |
記述統計とは
集めたデータをそのまま/要約/整理/可視化して特徴をつかむための統計手法の総称です。
データの姿をわかりやすくしていくイメージ。
対になるのは推測統計で、サンプルから母集団の性質を推定、検定する世界です。
代表値(位置)
「データの特徴を 1 つの数字で語る」ための方法。
平均値
平均値と言っても、求めたい真ん中の概念で計算方法がかわります。
下の早見表はどれを使うかのヒントにしてください。
こんなとき | 使う平均 |
---|---|
合計を人数で割りたい | 算術平均 |
倍率や成長率を平均したい | 幾何平均 |
レート(比率)を平均したい | 調和平均 |
エネルギー量っぽいものを測りたい | 二乗平均(RMS) |
重みを付けて平均したい | 加重平均 |
算術平均(相加平均)
外れ値の影響を受けやすいポピュラーな平均。
import statistics as st
mean = st.mean(data)
# numpyでも
import numpy as np
mean = np.mean(data)
幾何平均
掛け算で連鎖する量(成長率など)の真ん中を取る平均。
算術平均だと意味がズレてしまう。
ビジネス例:年平均成長率、ポートフォリオ期間収益率、CPI合成、コンバージョン率連鎖
from statistics import geometric_mean
gm = geometric_mean(data)
調和平均
逆数を平均してからひっくり返すので、小さい値を強調。
ビジネス利用例:F1スコア、平均単価、P/Eレシオ平均、平均レイテンシ
from statistics import harmonic_mean
hm = harmonic_mean(data)
二乗平均(RMS)
外れ値をより強く拾う。
正負が打ち消し合うデータやエネルギー的な大きさを測りたいときに二乗が都合良い。
ビジネス利用例:RMSE(予測誤差の評価指標)、RMS 電圧/電流、寸法誤差総合指標
import numpy as np
rms = np.sqrt(np.mean(np.square(data)))
加重平均
重み を掛けた割り勘平均。
ビジネス例:WACC(加重平均資本コスト)、時価総額加重指数、平均客単価(支店規模で加重)
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にも手伝ってもらっています。
平均
Discussion