← 研究動態
研究2026/08/10 上午12:00

K1598:universal-portfolio 式線上 conformal 混合,96 個 DM 檢定只留下一個嚴格勝場

ETFDM testconformal predictiononline learninguniversal portfolioHolmpinball loss

讀者互動

登入會員可按讚與收藏。

分享到:LINEFacebookX / Twitter

持續追蹤這項研究

收藏、追蹤與明日提醒只保存必要識別資料,可在會員中心檢視或刪除。

研究資訊不構成個人投資建議;提醒僅代表研究更新,不代表交易訊號。

訂閱研究摘要

研究摘要與新文章,不轉售、不寄廣告,隨時可退訂。

K1598:universal-portfolio 式線上 conformal 混合,96 個 DM 檢定只留下一個嚴格勝場

摘要

K1598 把 Liu、Dobriban 與 Orabona (2026) 的 UP-OCP 構想降級成可在本地面板上執行的 lite 版本:用 Cover (1991) 的 universal portfolio 對六個學習率不同的 ACI 專家做財富加權混合,套進 12 檔美股 ETF、2016-01-01 起每檔 2,633 個樣本外交易日的 conformal 區間校準問題。實驗 verdict 為 COVERAGE_COMPETITIVE_NO_PANEL_EDGE,Codex review 為 CONDITIONAL_PASS。

UP_AggACI_lite 的平均絕對漏網率偏差 0.00219,優於 Rolling252 的 0.00417,貼近 AggACI_grid 的 0.00246。同一組 cell 的平均 pinball loss 是 0.126089,落在 FixedIS 的 0.125958 與 AggACI_grid 的 0.126065 之後。96 個 Harvey 調整的 DM 檢定經 Holm 校正後,嚴格勝場 1、嚴格敗場 0。

本文要處理的是這組數字的內部矛盾:把五個方法按校準準度排序,再按 pinball loss 排序,兩個名次表方向幾乎完全相反。

一、研究問題與文獻定位

線上 conformal prediction 的核心難題是學習率。Gibbs 與 Candès (2021, 2024) 的 ACI 用一個固定步長 eta 調整分位門檻:漏網就放寬、太保守就收緊,長期漏網率會收斂到 alpha,但 eta 太大則門檻抖動、太小則追不上 regime 變化。Areces 等人 (2025) 把這件事寫成線上最佳化問題,仍需要挑步長或步長序列。

Liu、Dobriban 與 Orabona (2026) 提出的路線是把選 eta 這件事整個丟掉:conformal 門檻更新可以映射到 universal portfolio 問題,於是 Cover (1991) 那套 parameter-free、對事後最佳固定配置有 regret 保證的演算法可以直接搬過來。理論上吸引人的地方在於,使用者不用先知道市場會用什麼速度換 regime。

K1598 問的是一個作業層問題:在 VolPred 自己的 ETF 面板上,這種 parameter-free 混合能不能贏過已經在用的 rolling conformal 與 ACI 家族?答案要能通過 pinball loss 的 DM 檢定,而不是只看漏網率漂亮。

二、資料、score 定義與 lookahead 控制

資料取自凍結檔 experiments/k1552/data/prices.parquet,12 檔標的為 SPY、QQQ、IWM 與九檔 SPDR 產業 ETF(XLB、XLE、XLF、XLI、XLK、XLP、XLU、XLV、XLY)。每檔樣本自 2005-01-04 至 2026-06-24 共 5,401 個交易日,其中 2,768 日落在 2016-01-01 之前作為訓練期,樣本外 2,633 日。面板規模為 24 個 cell:12 檔 ETF,每檔各跑 0.10 與 0.05 兩個水準。5 個方法共 120 筆 cell 結果、315,960 筆逐日預測。

預測目標是對稱的日對數報酬區間。conformal score 定義為 |r_t| / EWMA_sigma_t,EWMA lambda = 0.94。pinball loss 直接算在標準化 score 的分位數上,tau = 1 − alpha,數值越低越好。

lookahead 控制有三道:EWMA sigma_t 只吃到 t−1 的報酬;Rolling252 的經驗分位數只用 t−1 以前的 score;所有線上更新(ACI 門檻、Hedge 權重、universal portfolio 財富)都發生在第 t 日的 score 被評分之後。第 t 日拿來畫區間的門檻,在當日報酬揭曉以前就已經固定。隨機種子 1598,重現腳本 experiments/k1598/k1598.py。

三、五個方法:UP-lite 與 AggACI 只差在混合規則

方法更新規則
FixedIS樣本外開始前的靜態 in-sample score 分位數,之後不動
Rolling252252 日滾動經驗分位數,只用 t−1 以前的 score
ACI_eta_0p01單一 ACI 門檻更新,eta = 0.01
AggACI_grid對六個 ACI 專家做 exponential-weights(Hedge)聚合
UP_AggACI_lite對同一組六個 ACI 專家做 Cover-style universal portfolio 混合

六個 ACI 專家的學習率是 eta ∈ {0.001, 0.0025, 0.005, 0.01, 0.02, 0.04}。專家「報酬」定義為 exp(-pinball_loss);universal portfolio 端建立 1,600 個 constant-rebalanced portfolio(等權點、六個頂點,加上 concentration 0.25/0.75/1.5/4.0 的 Dirichlet 抽樣),每日按各 CRP 的累積財富加權平均其配置,得到當日 UP 配置,再與六個專家門檻內積成 q_UP。

這個設計有一個對照上的好處:AggACI_grid 與 UP_AggACI_lite 吃完全相同的專家池,差別只在混合規則是 multiplicative-weights 還是 Cover 的財富加權。兩者的比較是乾淨的混合規則對照,不受專家設定差異汙染。

必須先講清楚 lite 的邊界:這是離散的 Cover-style 混合,不是原論文的封閉形式 UP-OCP 更新。K1598 測的是 portfolio-mixture 這個想法,而非該演算法的忠實重現。

四、面板主表

方法平均漏網率平均絕對漏網率偏差平均 pinball loss平均半寬binom 通過 cell獨立性通過 cell
FixedIS0.071240.0048680.1259580.02221623/2416/24
Rolling2520.079170.0041710.1270780.02211424/2416/24
ACI_eta_0p010.074300.0016700.1261050.02206624/2418/24
AggACI_grid0.073140.0024620.1260650.02214224/2417/24
UP_AggACI_lite0.073470.0021850.1260890.02214624/2417/24

兩個 alpha 混合後的目標漏網率是 0.075。Rolling252 平均 0.07917,且 24 個 cell 全部漏網過多,是唯一在整個面板上單向失準的方法。FixedIS 走另一個極端:20 個 cell 過度覆蓋、平均半寬最大,也是唯一有 cell 沒通過二項覆蓋檢定的方法。UP_AggACI_lite 落在中間,17 個 cell 過度覆蓋、7 個不足。

半寬的差異很小。最寬的 FixedIS(0.022216)與最窄的 ACI_eta_0p01(0.022066)相差 0.68%,任何一個方法都沒有靠明顯放寬區間換覆蓋率。

五、指標分歧:兩張名次表方向相反

把五個方法按平均絕對漏網率偏差排序,得到 ACI < UP < AggACI < Rolling252 < FixedIS;按平均 pinball loss 排序,得到 FixedIS < AggACI < UP < ACI < Rolling252。校準最好的 ACI 在損失表上排第四,損失最低的 FixedIS 在校準表上排第五。

五個方法的 Spearman rho 是 −0.40(n=5,p=0.50,這個樣本數只夠當敘述統計)。把兩項都墊底、被其他方法支配的 Rolling252 拿掉,剩下四個方法的兩張名次表完全顛倒,rho = −1.00。

K1598 校準準度與 pinball loss 的方法散佈圖,alpha 0.10 與 0.05 各一面板

圖的兩軸都是越小越好,全面勝出的方法應該落在左下角,但兩個 alpha 面板都沒有點在那裡。逐 cell 統計也一致:FixedIS 在 24 個 cell 中有 19 個拿到最低 pinball loss,卻只有 1 個 cell 拿到最佳校準;ACI_eta_0p01 反過來,13 個 cell 校準最佳、只有 1 個 cell 損失最低。UP_AggACI_lite 兩邊各拿到 2 個與 1 個,是典型的中段班。

六、pinball loss 在這個面板上排的是什麼

指標分歧需要一個機制解釋,而不是停在「兩個指標不一樣」。從逐日預測檔可以直接算門檻路徑的波動度:

方法q_t 標準差(alpha=0.10)q_t 標準差(alpha=0.05)平均每日 |Δq_t|(alpha=0.10)
FixedIS0.00000.00000.0000
AggACI_grid0.02770.02930.00184
UP_AggACI_lite0.03090.03160.00224
ACI_eta_0p010.03140.02980.00180
Rolling2520.09330.15280.00424

(cell 內標準差先算再跨 24 個 cell 平均。)

在 alpha = 0.10,門檻波動度的排序與 pinball loss 的排序完全相同:FixedIS 0.152342 < AggACI 0.152465 < UP 0.152505 < ACI 0.152531 < Rolling252 0.153485。alpha = 0.05 只有 UP 與 ACI 對調一位,而這兩者的 pinball loss 差距是 4.7×10⁻⁶。

EWMA 標準化之後 score 分布已經相當穩定,於是 pinball loss 主要在懲罰門檻估計的變異,而非獎勵覆蓋率追蹤。線上方法用門檻抖動買到的覆蓋率貼合,在這個 loss 上是要付費的。FixedIS 的門檻標準差是 0,所以它在最平靜的期間占盡便宜;Rolling252 的門檻每日平均變動 0.00424,是 UP 的 1.9 倍、ACI 的 2.4 倍,於是它兩項都輸。

這一層解釋也讓 UP-lite 對 Rolling252 的勝出變得可預期:兩者都是資料驅動的門檻,UP 用專家混合把 252 日視窗的重抽樣雜訊壓掉,逐 cell 的 pinball loss 24 比 0 全勝。

七、推論層:96 個 DM 檢定,Holm 之後為何只剩一個

嚴格勝場的判定 gate 有三個條件同時成立:UP 的 pinball loss 較低、Harvey 調整後 |DM t| > 3、Holm 校正 5% 顯著。DM 用配對 HAC、h = 1;Holm 一次涵蓋 4 個基準 × 24 個 cell = 96 個檢定。

K1598 的 96 個 Harvey 調整 DM t 統計量,依基準分列

96 個檢定中 UP 的損失較低者有 50 個,接近一半,本身就說明面板層沒有方向性優勢。拆開看差異才出現:對 Rolling252 是 24/24 全面較低,平均 t = −1.854;對 ACI_eta_0p01 是 15/24;對 AggACI_grid 只有 6/24;對 FixedIS 只有 5/24。

未校正的 p < 0.05 有 9 個,其中 8 個站在 UP 這邊,且 8 個全部來自對 Rolling252 的比較。唯一一個站在 UP 對面的是 XLV 在 alpha = 0.10 對 AggACI_grid,t = +2.272、raw p = 0.0232。

Holm 之後只剩一個:XLB、alpha = 0.10、UP 對 Rolling252,t = −3.542、raw p = 0.000404、Holm p = 0.0388。次佳的 XLV 對 Rolling252(raw p = 0.00963)被推到 Holm p = 0.9146。96 個檢定的 Holm 序列在第二名的位置就要乘上 95,這正是 8 個名目顯著只活下 1 個的算術原因。

嚴格敗場 0 的解讀要同樣保守。UP 在對 FixedIS 與 AggACI_grid 的方向上明顯落後,就是上一節那兩排 5/24 與 6/24。落後方向沒有出現嚴格敗場,只是因為最大的反向統計量 2.272 沒有碰到 |t| > 3 的門檻。0 敗場來自 gate 的嚴格度,不是來自 UP 沒有輸。同一套 gate 也決定了 1 勝場,兩邊都不該單獨拿來說故事。

八、Cross-section 與 alpha 拆解

標的t vs Rolling252 (a=0.10)t vs Rolling252 (a=0.05)t vs AggACI (a=0.10)t vs AggACI (a=0.05)
SPY−2.124−1.460−0.572+0.584
QQQ−1.720−1.371+0.422−1.049
IWM−1.367−1.916+1.477+0.663
XLB−3.542−2.439+1.912+1.547
XLE−2.158−1.678+1.573+0.313
XLF−1.954−1.867+0.814+1.471
XLI−1.933−0.747+1.262−0.807
XLK−2.419−1.841+0.177+1.440
XLP−1.983−0.946+0.167−1.103
XLU−1.808−2.459+1.170+1.426
XLV−2.591−1.947+2.272−0.029
XLY−1.078−1.138+0.222−0.023

負號代表 UP 損失較低。對 Rolling252 的 24 個 t 值全部為負,沒有一檔標的例外;對 AggACI_grid 則有 18 個為正。XLB 這一格值得單獨看:它是 UP 打贏弱基準最漂亮的地方,也就是上一節那個唯一的嚴格勝場,同時也是 UP 落後強基準最多的地方之一(t = +1.912、+1.547)。單一 cell 的勝場不能外推成方法優勢,這是最直接的證據。

alpha 拆解沒有翻轉結論,但兩個層級的量級不同。alpha = 0.10 時,UP 的平均絕對漏網率偏差是 0.244 個百分點、ACI 是 0.182、FixedIS 是 0.641;alpha = 0.05 時三者分別是 0.193、0.152、0.333。以百分點計,目標越嚴、靜態門檻的校準劣勢反而縮小(0.641 降到 0.333),線上方法可搶的空間也跟著變窄;換成相對於 alpha 的比例,兩個層級則幾乎一樣(6.4% 對 6.7%)。DM 層面,兩個 alpha 的 UP 較低比例分別是 22/48(0.10)與 28/48(0.05),差距不足以支撐任何 alpha-specific 主張。

九、2020 壓力窗:方向會翻

既有圖的第三面板畫的是 UP 減基準的累積平均損失差。

K1598 覆蓋率追蹤、區間寬度與累積損失差

UP 對 Rolling252 的曲線一路往下,2020 年單年的平均損失差是 −39.65×10⁻⁴,是十一個年度中最大的一格。UP 對 AggACI_grid 的曲線緩慢往上,2021 年之後每個年度都是正值,區間落在 +0.316 到 +0.814×10⁻⁴。

把 2020-02-15 至 2020-04-30 這 52 個交易日單獨切出來(全部標的與 alpha 池化),方向會翻:UP 對 FixedIS 的平均損失差是 −20.80×10⁻⁴、對 ACI_eta_0p01 是 −16.59×10⁻⁴、對 AggACI_grid 是 −5.11×10⁻⁴,三個在全樣本上贏 UP 或與 UP 拉平的基準,在這段窗口裡全部落後。同一段窗口 UP 對 Rolling252 是 +15.21×10⁻⁴,滾動視窗在急速放大的波動裡反而佔到便宜。

全樣本的對應數字是 +1.31、−0.16、+0.24 與 −9.89×10⁻⁴。UP 對 FixedIS 的面板劣勢因此有清楚的來源:靜態門檻在平靜期便宜,在衝擊期昂貴,而 2016 年以後的樣本大部分是平靜期。

這一層只是敘述性拆解,沒有跑子期間的 DM 檢定,也只有一次壓力事件、52 個交易日。它足以提出一個可檢驗的後續假設,不足以當成結論。

十、限制與 review 狀態

Codex review 給 CONDITIONAL_PASS,四條 findings 中兩條 MED:UP-lite 是離散 Cover-style 混合而非原論文的 UP-OCP 更新;UP-lite 只有一個嚴格 cell 勝場,且在面板平均 pinball loss 上沒有贏過 FixedIS 或 AggACI_grid。兩條都已反映在 verdict 命名裡。

結果 JSON 記錄的四條限制:

  • UP_AggACI_lite 是對 ACI 專家的離散 Cover-style 混合,不是 Liu-Dobriban-Orabona 的封閉形式 UP-OCP 演算法。
  • 實驗用的是對稱的絕對報酬區間,不是生產環境的單邊 VaR/ES backtest。
  • EWMA sigma 是簡單的尺度預測;換成 A4f、GARCH 或 HAR 做 score 標準化,排序可能改變。
  • 二項與獨立性 p 值只是診斷指標,因為線上 conformal 的有效性目標是長期覆蓋,而不是 iid 的例外檢定。

第三條在本文的機制解釋下特別要緊。既然 pinball loss 主要在排門檻路徑的變異,換一個波動預測器就等於換一組 score 分布的穩定度,五個方法的名次表有機會重排。

十一、這個結果對 VolPred 校準堆疊的意義

可以寫進結論的是:UP 式線上混合改善了 rolling conformal 的覆蓋率追蹤穩定性,逐 cell 對 Rolling252 的 pinball loss 24 比 0 全勝,且在嚴格 gate 下沒有任何一格輸給任何基準。如果一套風控系統目前用的是固定長度滾動視窗,K1598 提供了換掉它的證據。

不能寫進結論的是:UP-OCP 對 VolPred 的 VaR 應用已證實更優。K1598 沒有做單邊 VaR/ES backtest,沒有實作原論文的更新式,面板層的 pinball loss 也沒有勝過 ACI/AggACI 家族。這是誠實的 near-null 結果,把它包裝成方法突破會直接違反證據。

後續要做的兩件事很明確:實作忠實版 UP-OCP,並把對稱區間框架換成單邊 VaR/ES backtest,搭配 A4f/GARCH/HAR 的尺度預測。2020 窗口的方向翻轉也提示了第三件事:把壓力期而非全樣本平均放進主要評分維度,才問得出這類 parameter-free 混合在風控上的實際價值。

參考文獻


資料來源:experiments/k1552/data/prices.parquet 凍結價格;12 檔美股 ETF,2005-01-04 至 2026-06-24 共 5,401 日,樣本外自 2016-01-01 起每檔 2,633 日。實驗程式 experiments/k1598/k1598.py(seed 1598),結果 experiments/k1598/k1598_results.json,逐日預測 experiments/k1598/k1598_oos_forecasts.csv.gz,review experiments/k1598/codex_review.md。本文新圖的重現腳本:storage/article_charts/k1598_research/gen_k1598_research_charts.py。本研究是對稱報酬區間的校準診斷,不構成投資建議。

相關文章

先讀正式關聯,若無則使用標籤與主題相似度補齊

📄
K1884:拿 VIX1D 對照 SPY 同一天的已實現變異,年化分母、報價時點與盤中窗口各自能把答案改掉多少
一般讀者版〈一日恐慌指數開盤報的當日變異,平均是 SPY 盤中實際的 1.56 倍:這個數字該怎麼讀〉給的是水準與讀法。這篇處理做這個比較時要先決定的三件事:VIX1D 要除以哪一個年化分母、要拿哪一個時點的報價、已實現變異要涵蓋盤中哪一段。 K1884 的結果顯示,這三個選擇造成的偏移,與要量的效果同一個量級;選錯任何一個,程式不會報錯,只會回答另一個問題。 先釐清估計量。K1884 量的是同一…
→
📄
K1378:VIX 長期成分讓 SPY 波動預測勝過 GJR-GARCH,這個優勢在疫情窗外更穩定
做風險控管或選擇權定價的人,常要在兩種日頻波動模型之間取捨:只用報酬本身的 GJR-GARCH,或在 GARCH 之外加一個由 VIX 驅動的長期成分。後者多了一個外部變數要維護,值不值得,要看它的預測優勢從哪裡來。如果優勢只來自 2020 年那種市場崩跌的少數日子,平常用它就只是多背一個依賴;如果優勢出現在一般日子,它才是日常可用的改進。 K1378 用 SPY 的樣本外一步預測回答這個問題:A…
→
📄
K1862:HAR-RV 一個月波動預測的誤差,平均偏誤不隨波動水位變號,隨水位變寬的是誤差分布
用 HAR-RV 預測未來一個月波動的人,常會想加一層修正:波動很高時把預測往下調,波動很低時往上調,理由是 HAR 的均值回歸可能修正過頭。這層修正值不值得加,取決於 HAR 的誤差是否真的隨預測當下的波動水位系統性變號。 一般讀者版〈HAR 波動預測的誤差往哪邊偏:六成交易日高估,平均誤差卻幾乎是零〉處理的是整體偏誤。這篇處理條件結構:依預測當下的波動水位把樣本外日子分成五組,誤差的平均、中位…
→