族群穩定性指數 是什麼?
PSI:族群穩定性指數 的完整解釋
族群穩定性指數(Population Stability Index, PSI)用於量化資料分布隨時間的變化幅度,是監控機器學習模型輸入特徵或輸出預測是否發生偏移(drift)的核心指標,PSI 越大
核心概念
族群穩定性指數(Population Stability Index, PSI)最初由金融業設計,用於評估申請貸款的客群分布是否隨時間改變,進而判斷既有的信用評分模型是否仍然適用。近年來,PSI 已成為 MLOps 中監控特徵偏移(Feature Drift)和概念偏移(Concept Drift)的標準工具之一。
PSI 的直觀含義:若你用 2024 年的資料訓練了一個模型,並在 2026 年部署,輸入資料的分布是否還和當初訓練時相似?PSI 提供了一個量化答案。
運作原理
PSI 計算公式:
PSI = Σ (Actual_i − Expected_i) × ln(Actual_i / Expected_i)
其中:
- Expected_i:基準期(如訓練集)第 i 個區間的樣本比例
- Actual_i:監控期(如生產資料)第 i 個區間的樣本比例
計算步驟:
- 選定基準資料集(通常為訓練集或驗證集)
- 決定分箱策略:對連續特徵通常分為 10-20 個等寬或等頻區間
- 計算基準期與監控期各區間的樣本比例
- 對每個區間計算 (Actual − Expected) × ln(Actual / Expected)
- 加總所有區間的結果得到 PSI
注意事項:
- 若某區間比例為 0,需進行平滑處理(如加一個極小值 ε)以避免除以零或 ln(0) 的問題
- 分箱邊界應固定(使用訓練集的等頻分箱),不能在比較時重新計算
PSI 解讀門檻(業界通用規則):
| PSI 值 | 解讀 | 建議行動 |
|---|---|---|
| < 0.1 | 分布穩定 | 無需處置 |
| 0.1 – 0.2 | 輕微變化 | 持續監控,了解原因 |
| > 0.2 | 顯著偏移 | 調查根因,考慮重新訓練 |
實際應用
MLOps 監控流水線
在生產環境中,PSI 通常作為定期批次監控任務運行,對每個輸入特徵以及模型的預測分數分別計算 PSI:
import numpy as np
def calculate_psi(expected, actual, buckets=10, eps=1e-6):
# 使用 expected 的分位數決定分箱邊界
breakpoints = np.quantile(expected, np.linspace(0, 1, buckets + 1))
breakpoints[0] = -np.inf
breakpoints[-1] = np.inf
expected_counts = np.histogram(expected, breakpoints)[0]
actual_counts = np.histogram(actual, breakpoints)[0]
expected_pct = (expected_counts / len(expected)) + eps
actual_pct = (actual_counts / len(actual)) + eps
psi_values = (actual_pct - expected_pct) * np.log(actual_pct / expected_pct)
return psi_values.sum()
信用評分模型管理
金融機構通常每月計算申請客群各特徵的 PSI,若任一關鍵特徵(如收入、年齡分布)的 PSI 超過 0.2,就啟動模型重新驗證流程。這個機制避免了在客群結構悄然轉變後,模型繼續使用舊有的評分規則造成誤判。
多特徵監控儀表板
實務中會同時監控數十甚至數百個特徵的 PSI,通常以熱力圖(Heatmap)呈現各特徵在各時間點的 PSI 值,快速識別哪些特徵的分布在何時開始偏移。
常見誤區
誤區一:PSI 能偵測所有類型的模型效能下降 PSI 只能偵測輸入特徵或預測分數的分布變化,無法直接衡量模型的預測準確率是否下降。分布穩定(低 PSI)的情況下,仍可能因為輸入特徵與目標變數之間的關係改變(概念偏移)而導致效能下滑。完整的模型監控需要同時追蹤 PSI 與預測效能指標(如 AUC、F1)。
誤區二:PSI 適用於任何類型的特徵 PSI 針對連續特徵或有序特徵設計,對名目類別特徵(如國家代碼、產品類別)需要調整計算方式,直接套用等寬分箱可能產生無意義的結果。
誤區三:分箱數越多,PSI 越精確 過多的分箱會導致某些區間樣本數極少,引入高變異數。分箱數通常在 10-20 之間取得穩定性與解析度的平衡,並且每個區間的樣本比例應不低於 5%。
與相關技術的比較
| 方法 | 量化對象 | 計算複雜度 | 解釋性 | 適用場景 |
|---|---|---|---|---|
| PSI | 邊際分布差異 | 低 | 高(有明確門檻) | 生產環境定期監控 |
| KL 散度 | 機率分布差異 | 低 | 中 | 統計研究,無標準門檻 |
| KS 統計量 | 累積分布最大差異 | 低 | 中 | 假設檢定(有 p-value) |
| Wasserstein 距離 | 分布形狀差異 | 中 | 低 | 對稱分布比較 |
PSI 與 KL 散度在數學上高度相關(PSI 近似於 JSD,即兩個方向的 KL 散度之和),但 PSI 的業界解讀門檻(0.1 / 0.2)使其在實務監控中更易於決策。