聊天視窗

量化投資的智慧:從數據到策略 - 第 7 章

第八章:人工智慧與機器學習:預測風險的前沿技術

發布於 2026-02-21 19:31

# 第八章:人工智慧與機器學習:預測風險的前沿技術 > **章節定位**:在量化投資的全流程中,資料收集、特徵工程與模型建立往往是「核心」的階段,而風險管理則是「穩定」的支撐。這一章將把兩者結合,說明如何利用人工智慧(AI)與機器學習(ML)為風險管理注入「預測」與「自適應」的智慧。 ## 8.1 什麼是預測風險? | 風險類別 | 典型指標 | 監控方式 | |---|---|---| | 市場風險 | VaR、CVaR、波動率 | 靜態門檻、日內回撤 | | 信用風險 | 憑證風險率、預期損失 | 靜態評分、固定期限 | | 操作風險 | 交易錯誤、系統故障 | 事件檢測、報警 | 傳統方法多依賴歷史統計量,缺乏對即將到來風險的「預測」。AI/ML 可以透過時間序列預測、異常檢測與多變量學習,提前發現潛在風險。 ## 8.2 資料準備:從「原始」到「可學」 ### 8.2.1 資料來源與結構 - **市場行情**:日內 tick、日結、週結資料。 - **宏觀經濟**:利率、CPI、就業數據。 - **公司財報**:EPS、ROE、負債率。 - **新聞情緒**:Google News、Twitter、財經論壇。 ### 8.2.2 轉換流程 1. **時間同步**:使用 `pandas` 的 `resample` 進行時間對齊。 2. **缺失處理**:簡單插值 (`ffill`)、高階插值 (`kde`)、或訓練缺失填補模型。 3. **標準化**:Z-score、Box-Cox,確保各特徵尺度相似。 4. **特徵衍生**: - 技術指標:MA、EMA、RSI、ATR、CCI。 - 事件指標:超買超賣、新聞情緒得分。 - 統計指標:滑動平均、滑動波動率、相關矩陣。 ### 8.2.3 代碼範例:資料加載與特徵合併 python import pandas as pd from pathlib import Path # 讀取行情 prices = pd.read_csv(Path('data')/'prices.csv', parse_dates=['date'], index_col='date') # 讀取宏觀 macro = pd.read_csv(Path('data')/'macro.csv', parse_dates=['date'], index_col='date') # 讀取新聞情緒 sentiment = pd.read_csv(Path('data')/'sentiment.csv', parse_dates=['date'], index_col='date') # 重新取樣到每日 prices_daily = prices.resample('D').last().dropna() macro_daily = macro.resample('D').last().dropna() sentiment_daily = sentiment.resample('D').mean().fillna(0) # 合併 data = prices_daily.join([macro_daily, sentiment_daily], how='inner') # 轉為特徵矩陣 X = data.drop(columns=['target_return']) y = data['target_return'] ## 8.3 模型選擇:從監督式到異常檢測 | 模型 | 風險預測用途 | 典型庫 | |---|---|---| | LSTM / GRU | 時間序列回報預測 | `keras`, `pytorch` | | XGBoost / LightGBM | 風險因子回歸 | `xgboost`, `lightgbm` | | Isolation Forest | 異常點檢測 | `sklearn` | | AutoEncoder | 無監督異常檢測 | `keras`, `pytorch` | | Bayesian Network | 風險因子關聯 | `pgmpy` | ### 8.3.1 監督式回報預測 預測下一個時段的回報,並以預測分布的尾部作為風險估計。 python from keras.models import Sequential from keras.layers import LSTM, Dense, Dropout model = Sequential([ LSTM(64, input_shape=(seq_len, num_features), return_sequences=True), Dropout(0.2), LSTM(32), Dense(1) ]) model.compile(optimizer='adam', loss='mse') model.fit(X_train, y_train, epochs=50, batch_size=64) ### 8.3.2 異常檢測 利用 Isolation Forest 或 AutoEncoder 判斷是否為異常交易行為或市場異常。 python from sklearn.ensemble import IsolationForest iso = IsolationForest(contamination=0.01, random_state=42) iso.fit(X_train) pred = iso.predict(X_test) # -1 為異常 ## 8.4 風險預測指標:CVaR、Sharpe、Expected Shortfall - **Conditional VaR (CVaR)**:預測超過 VaR 門檻的平均損失。 - **Expected Shortfall (ES)**:基於模型分布的尾部期望。 - **Sharpe Ratio Prediction**:利用回報與波動率預測未來夏普。 python # 假設預測回報分布為 Normal(μ, σ) import numpy as np mu, sigma = 0.001, 0.02 alpha = 0.05 z_alpha = scipy.stats.norm.ppf(alpha) VaR = -(mu + sigma * z_alpha) CVaR = -mu + sigma * (scipy.stats.norm.pdf(z_alpha) / alpha) ## 8.5 將預測風險嵌入策略執行 1. **動態停損**:根據預測 CVaR 更新止損水平。 2. **動態資產配置**:根據預測 Sharpe 重新調整權重。 3. **風險預警**:若預測風險超過門檻,觸發「風險停機」或「降低槓桿」。 4. **多模型融合**:使用投票或加權平均提升預測穩定性。 ### 8.5.1 風險停機示例 python pred_CVaR = predict_CVaR(X_current) if pred_CVaR > VaR_threshold: # 停止所有交易或縮減倉位 positions *= 0.5 log('風險停機:CVaR 超過閾值') ## 8.6 測試與驗證 | 測試指標 | 方法 | |---|---| | 交叉驗證 | K‑fold,時間序列特有的 forward‑backward | | 回測 | `backtrader`, `zipline` | | 稳定性 | 隨機種子重複、對不同市場情況分組測試 | ### 8.6.1 回測腳本簡例 python import backtrader as bt class MLStrategy(bt.Strategy): def __init__(self): self.model = load_trained_model() def next(self): features = extract_features(self.datas[0]) pred = self.model.predict(features) if pred > 0: self.buy() else: self.sell() cerebro = bt.Cerebro() cerebro.addstrategy(MLStrategy) # 加載資料並執行 ## 8.7 部署與實時監控 1. **模型服務**:使用 `FastAPI` 或 `TensorFlow Serving` 將模型封裝為 API。 2. **監控儀表板**:Grafana + Prometheus 收集指標。 3. **自動化 Retraining**:每週或每月重新訓練模型,或根據漂移檢測觸發。 4. **安全性**:使用 OAuth2、API key,確保資料隱私。 ### 8.7.1 FastAPI 範例 python from fastapi import FastAPI import numpy as np app = FastAPI() model = load_model('model.pkl') @app.post('/predict') def predict(features: np.ndarray): return {'pred': model.predict(features)[0]} ## 8.8 風險預測的倫理與治理 - **模型偏差**:確保不因資料不平衡導致某些群體風險被低估。 - **透明度**:將模型解釋方法(SHAP、LIME)嵌入報告。 - **合規**:符合 SEC、MiFID II 的模型監管要求。 - **人機協同**:最終決策仍由風險管理團隊審核。 ## 8.9 小結 本章闡述了如何把 AI/ML 的「預測力」注入風險管理,從資料處理、模型選擇到實時部署,形成一個「可持續、可調、可解釋」的風險預測系統。這不僅提升了風險控制的靈敏度,也為投資策略提供了動態調整的科學依據。下一章將聚焦於多因子模型的深度融合,探索「因子暴露」與「風險回歸」之間的互動。