---
title: "族群穩定性指數（PSI）"
slug: psi
language: zh-TW
source: https://aiterms.tw/learning/what-is-psi
updated_at: 2026-06-22
tags: [模型評估, 統計方法, MLOps, 異常偵測]
ipas_term: false
type: deep-dive
---

# 族群穩定性指數 是什麼？

> 族群穩定性指數（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 個區間的樣本比例

計算步驟：

1. 選定基準資料集（通常為訓練集或驗證集）
2. 決定分箱策略：對連續特徵通常分為 10-20 個等寬或等頻區間
3. 計算基準期與監控期各區間的樣本比例
4. 對每個區間計算 (Actual − Expected) × ln(Actual / Expected)
5. 加總所有區間的結果得到 PSI

注意事項：
- 若某區間比例為 0，需進行平滑處理（如加一個極小值 ε）以避免除以零或 ln(0) 的問題
- 分箱邊界應固定（使用訓練集的等頻分箱），不能在比較時重新計算

PSI 解讀門檻（業界通用規則）：

| PSI 值 | 解讀 | 建議行動 |
|---|---|---|
| < 0.1 | 分布穩定 | 無需處置 |
| 0.1 – 0.2 | 輕微變化 | 持續監控，了解原因 |
| > 0.2 | 顯著偏移 | 調查根因，考慮重新訓練 |

## 實際應用

MLOps 監控流水線

在生產環境中，PSI 通常作為定期批次監控任務運行，對每個輸入特徵以及模型的預測分數分別計算 PSI：

```python
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）使其在實務監控中更易於決策。

## 常見問題

### PSI 與 KL 散度有什麼數學關係？

PSI 在數學形式上與 Jensen-Shannon 散度（JSD）密切相關，可以理解為從「期望分布到實際分布」與「從實際分布到期望分布」兩個方向的 KL 散度的加權和。更精確地說，PSI = KL(Actual || Expected) + KL(Expected || Actual)，因此 PSI 是對稱的（交換基準期與監控期結果相同），而單向 KL 散度是不對稱的。這種對稱性使 PSI 更適合作為「兩個分布相互比較」的工具，而非評估訊息損失的單向度量。

### 在計算 PSI 時，為什麼分箱邊界要固定用訓練集決定？

若允許監控期資料重新計算分箱邊界，當分布發生偏移時，新的邊界會自動適應新分布，使每個區間的比例看起來和訓練集相近，PSI 會被低估，掩蓋了真正的漂移。固定訓練集的分位數作為邊界（通常用等頻分箱使各區間初始比例均等），才能真實反映監控期資料在訓練集視角下的分布變化。這也是 PSI 計算實作中最容易出錯的地方之一。

### 模型的輸出（預測分數）也可以用 PSI 監控嗎？

可以，這稱為「分數 PSI（Score PSI）」，是監控模型效能最直接的指標之一。若預測分數的分布從訓練時的形態顯著偏移，代表模型整體的預測行為已改變，可能是因為輸入特徵變化或因果關係改變所致。在信用評分等金融場景中，分數 PSI 通常是觸發模型審查的首要指標。與特徵 PSI 同時使用，可以定位偏移是由哪些輸入特徵造成的。

---

深度解說頁：https://aiterms.tw/learning/what-is-psi
快查頁：https://aiterms.tw/terms/psi
最後更新：2026/06/22