K637:K-Means 在六個波動特徵上分出平靜與恐慌兩群
讀者互動
登入會員可按讚與收藏。
持續追蹤這項研究
收藏、追蹤與明日提醒只保存必要識別資料,可在會員中心檢視或刪除。
研究資訊不構成個人投資建議;提醒僅代表研究更新,不代表交易訊號。
K637:K-Means 在六個波動特徵上分出平靜與恐慌兩群
實驗 ID : K637 資料期間 : 2007-01-03 至 2026-03-27(SPY、VIX 日收盤;特徵完整的交易日 4,839 天) 方法 : K-Means 聚類 + HMM(隱馬可夫模型)Regime 識別,Silhouette Score 最佳化
研究動機
「現在是牛市還是熊市?」這個問題每個投資人都在問,但答案從來沒有標準答案。
市場分析師通常用 VIX 的某個固定門檻來定義「恐慌」:VIX > 20 就是恐慌,VIX > 30 就是極度恐慌……但這些門檻是憑直覺設的,還是真的能反映市場結構?
K637 用 機器學習方法 重新問這個問題:
讓數據自己說,市場到底分幾種「情緒」?
核心發現:K-Means 的最佳群數是 2
我們用 K-Means 聚類對 2007-01-03 至 2026-03-27 的市場數據分群,特徵有六個:VIX 水準、VIX 的 5 日變化、VIX 在過去 252 個交易日裡的百分位、SPY 日報酬的絕對值、SPY 的 22 日已實現波動,以及 VIX 與已實現波動的比值。再用 Silhouette Score 比較 2 到 5 群:

| 分群方式 | Silhouette Score | 解讀 |
|---|---|---|
| 2 群(K-Means) | 0.37 | K-Means 候選中最高 |
| 3 群 | 0.28 | 群集開始模糊 |
| 4 群 | 0.24 | 邊界不清晰 |
| 5 群 | 0.23 | 與 4 群相近 |
| 固定 VIX 分組法(15/20/30) | 0.04 | 幾乎無群集意義 |
| HMM 2 狀態(另用 3 個特徵) | 0.41 | 不同模型、不同特徵空間,不能和上面直接比 |
最重要的對比 :傳統固定 VIX 分組法(用 VIX=15/20/30 當門檻)在同一個六維特徵空間裡的 Silhouette 只有 0.04,接近隨機,毫無結構性。而 K-Means 的 2 群方案達到 0.37,約是 8.6 倍。
這說明:在這六個特徵與 2 到 5 群的候選裡,K-Means 兩群的分離度最高,固定 VIX 門檻的分法沒有捕捉到這個結構。這不等於證明市場只有兩種狀態。
兩種情緒的特徵
| 特徵 | 平靜群(全樣本分群、同日) | 壓力群(全樣本分群、同日) | 平靜群(逐年重估、前一交易日) | 壓力群(逐年重估、前一交易日) |
|---|---|---|---|---|
| 交易日數(占比) | 3,636(75.1%) | 1,203(24.9%) | 3,742(81.6%) | 845(18.4%) |
| 平均 VIX | 16.4 | 30.1 | 17.6 | 30.2 |
| VIX 標準差 | 4.0 | 11.0 | 6.0 | 12.0 |
| SPY 年化 Sharpe(K637 定義) | 2.31 | -1.53 | 0.78 | 0.29 |
| SPY 年化 Sharpe(一般定義,未扣無風險利率) | 2.58 | -1.29 | 0.70 | 0.25 |
前兩欄是 K637 的分組:分群器用 2007 到 2026 年的全部資料估計,第 t 日的報酬按第 t 日自己的特徵歸群,而第 t 日的特徵包含當天 SPY 報酬的絕對值與 VIX 的變化。後兩欄每年 1 月 1 日只用之前的資料重估分群器,第 t 日的報酬按第 t−1 日的分群歸類,從 2008 年第一個訊號日(2008-01-02)的下一個交易日算到 2026-03-27。K637 的 Sharpe 定義是 252 × 日對數報酬平均 ÷ 22 日已實現波動的平均,和一般的「平均報酬 ÷ 報酬標準差」不同。
兩種分組下,壓力群的平均 VIX 都在 30 左右,報酬的差異卻很不一樣:
- 平靜群 :K637 的分組占 75% 的交易日,VIX 約 16.4,K637 Sharpe 2.31;逐年重估、前一交易日分組時是 0.78
- 壓力群 :K637 的分組占 25% 的交易日,VIX 約 30.1,K637 Sharpe -1.53;逐年重估、前一交易日分組時是 0.29,平均報酬仍為正(年化 8.8%,平靜群 10.2%)
換句話說:在 K637 的分組下,75.1% 的交易日落在平靜群、24.9% 落在壓力群;這是事後分群的日數占比,不是每天賺賠的機率。逐年重估、前一交易日分組時,兩群的平均報酬都是正的。
分組方式決定了壓力群的報酬

K637 分組下的 Sharpe 差距(2.31 對 -1.53)很大,但其中大部分來自同日分組。在同一段 2008 年起的報酬日上,全樣本分群照原樣同日分組,兩群是 2.30 與 -1.51;只把分組延後一天,就變成 0.88 與 0.27。反過來,逐年只用過去資料重估、但仍用同一天分組,壓力群又回到 -1.66。
逐年重估、前一交易日分組時,壓力群的 K637 Sharpe 比平靜群低 0.49,差距還在,但本文沒有對這個差距做顯著性檢定;壓力群的波動較大(22 日已實現波動平均 30.6%,平靜群 13.1%),持有時的心理負擔仍然不同。
「如果能提前識別壓力期,就能在壓力期降低倉位、避開大部分損失」是 Regime-Aware 策略的出發點,但在這份資料裡只是未經驗證的假說:只用事前資料分群、隔天才使用分群時,壓力群的平均報酬並不是負的,沒有「大部分損失」可避。
HMM 的加入:Regime 有多「黏」?
除了靜態的 K-Means,我們也用 HMM(隱馬可夫模型)動態估計 Regime 的轉換機率。HMM 允許 Regime 隨時間演化,而不是固定不動。
HMM 的結果顯示(HMM 同樣在全樣本上估計,以下是事後估計,本次沒有重估):
| 特性 | 數據 | 意涵 |
|---|---|---|
| Calm Regime 平均持續 | 91 個交易日 | 中位數 54.5 個交易日 |
| Stressed Regime 平均持續 | 51 個交易日 | 中位數 22 個交易日 |
| Calm → Stressed 轉換機率 | 每日約 1.1% | 平靜期中,每天有約 1% 機率突然進入壓力期 |
| Stressed → Calm 轉換機率 | 每日約 1.9% | 壓力期中,每天約有 1.9% 機率回到平靜期 |
這個「黏性(persistence)」非常重要:
- 壓力期不是一兩天就結束的,平均持續 51 個交易日
- 平靜期更長,平均 91 個交易日
識別能力:新 K-Means 方案 vs 固定 VIX 門檻
傳統的固定 VIX 門檻(例如 VIX > 20 就進入恐慌模式)有一個根本問題:它 只看一個數字 ,忽略了 VIX 的波動、趨勢、以及 SPY 報酬的結構信息。
K-Means 的 2 群方案整合了 VIX 水準、5 日變化、252 日百分位、SPY 日報酬絕對值、22 日已實現波動與 VIX/已實現波動比,Silhouette Score 約是固定 VIX 分組法的 8.6 倍(0.37 對 0.04)。
較高的 Silhouette 代表這六個特徵在兩群之間分得比較開;它衡量的是分群的幾何分離度,不代表這個分群能在事前用來調整部位。
局限性
- K-Means 的特徵選擇 :目前使用 VIX 水準、5 日變化、252 日百分位、SPY 日報酬絕對值、22 日已實現波動與 VIX/已實現波動比,加入其他特徵(如信用利差、市場廣度)可能改變結果
- 2 群的過度簡化 :現實市場可能存在更多細粒度的狀態(如「泡沫期」「恢復期」),2 群方案可能遺漏這些細節
- 前瞻偏誤 :K-Means 在全樣本上訓練,存在前瞻偏誤,真實交易中,Regime 識別必須用即時數據,而非回溯標記。本文另列每年只用過去資料重估、隔天才使用分群的結果;那一版沒有扣交易成本,也沒有做顯著性檢定
- 轉換時間點 :HMM 識別的轉換日期可能在 1-2 天後才確認,策略信號有滯後性
結論
在六個特徵與 2 到 5 群的候選中,K-Means 以兩群的分離度最高(Silhouette 0.37),高於固定 VIX 門檻(Silhouette 0.04):
- 平靜群 (K637 分組的 75% 交易日):VIX≈16.4,K637 Sharpe 2.31;逐年重估、前一交易日分組 0.78
- 壓力群 (25% 交易日):VIX≈30.1,K637 Sharpe -1.53;逐年重估、前一交易日分組 0.29
- HMM(全樣本估計) :平靜狀態平均持續 91 個交易日,壓力狀態 51 個交易日,具有強烈的狀態黏性
這組結果支持「波動有高低兩種狀態」的描述;要說「在策略中區分它們有配置價值」,還需要只用事前資料、可執行的時點、交易成本與樣本外檢定,本文的數字不足以支持。
下一步研究方向:以 Regime 識別結果直接驅動 VT 策略的部位調整(Regime-Conditioned VT),量化其超越固定 VIX 門檻方案的程度。
參考文獻: Hamilton (1989) Econometrica(HMM Regime); Ang & Bekaert (2002) RFS(Regime-Switching); Harvey (2016) RFS(統計門檻)
相關文章
先讀正式關聯,若無則使用標籤與主題相似度補齊