返回 López de Prado

研究回顧 · 投資組合構建 · 研究 13

投資組合構建:HRP、NCO 與共變異數 denoising 對比 Markowitz

在 44 項資產與 39 個策略市場上,López de Prado 的工具組在 out-of-sample 上可靠地勝過原始 mean-variance,但最突出的發現是:denoising 的價值完全是 q = T/N 的函數

López de Prado 主張:對樣本共變異數做 mean-variance 最佳化是一個陷阱,即「Markowitz 詛咒」,相關性愈高的資產會產生愈不穩定、愈集中的最佳權重,並提出共變異數 denoising/detoning、Hierarchical Risk Parity(HRP)、Nested Clustered Optimization(NCO)與 Theory-Implied Correlation(TIC)作為解方。本研究重現了這四種方法,並在真實的多市場資料上,以 walk-forward 方式將其與原始共變異數對照組、inverse-variance 及樸素的 1/N 進行基準比較,提出唯一重要的問題:這些方法是否真的比對照組更能降低實現的 out-of-sample 變異數,並通過 deflated-Sharpe 修正?下方的探索器讓你能在瀏覽器中重現核心機制,denoising 的 q = T/N regime 依賴性。

來源

Advances in Financial ML,第 16 章

López de Prado (2018) · HRP, NCO & denoising

程式碼與資料

lopez-de-prado-work-review / projects / 13

the claim

López de Prado 的主張

  • 對樣本共變異數做 mean-variance 最佳化是一個陷阱,即「Markowitz 詛咒」:資產相關性愈高,最佳權重就愈不穩定、愈集中,而矩陣求逆恰恰在你最需要分散化時失效。
  • 他的解方繞過或穩定了求逆:透過 Marčenko–Pastur 定律的共變異數 denoising/detoning、Hierarchical Risk Parity(分群 + 遞迴二分,無需求逆)、Nested Clustered Optimization,以及 Theory-Implied Correlation。他主張這些方法在 out-of-sample 上勝過原始 Markowitz。

our result

我們的發現

  • 在變異數目標上此工具組確實有效,且詛咒是真實的:原始 Markowitz 處處是最差的配置器,在 39/39 個策略市場中敬陪末座,並且在 44 項資產的範疇中,其 OOS 波動率比最佳的 LdP 方法高出約 65%,並伴隨退化的集中度。
  • 但在可比風險的基礎上,誠實的優勢有限:當各腿等風險後,HRP 勝過原始 Markowitz 約 15%,而最佳的 deflated Sharpe 往往屬於最簡單的穩健基準(1/N、inverse-variance),而非那些精巧的方法。
  • 一個清晰、可教學的細節:denoising 的價值完全是 T/N 的函數,對奇異(q<1)的共變異數它毫無作用,唯有當 q > 1 才有幫助。沒有任何方法能把一份虧損的清單變成贏家;它們的職責是風險控制,而非 alpha(在淨虧損的策略範疇中 DSR ≈ 0)。

三行說明結論

Markowitz 墊底 · 39/39 市場

此工具組在變異數上取勝,而且可靠

在所有 39 個策略市場與 44 項資產的範疇中,無論以何種方式衡量,原始 mean-variance / min-variance Markowitz 在實現的 out-of-sample 變異數上都是最差的配置器。HRP、NCO 與 inverse-variance 都能降低 OOS 變異數並使持倉去集中化;Markowitz 詛咒在此真實且無條件成立。

相對 1/N 的優勢 ≈ 15%

但誠實的優勢有限

當各腿以等風險進場後,HRP 在 38/39 個市場中勝過原始 min-variance,中位數僅約 15%;未正規化的約 50% 標題數字,大多是原始美元規模的人為產物。在可比風險的基礎上,誠實的 OOS 贏家往往是單純的 1/N / inverse-variance,HRP 緊隨其後。

Denoising = f(q = T/N)

最突出的結果

共變異數 denoising 的價值完全是 q = T/N 的函數。在 N=300 / T=252(q=0.84)時樣本共變異數是奇異的,condition number ~1e17,Marčenko–Pastur denoising 幾乎毫無作用。將清單減半至 N=150(q=1.68),它便將 condition number 削減約 4×,並發現 150 個特徵值中僅 7 個是訊號。

最突出的發現,denoising 究竟何時有用?

共變異數 denoising 的價值完全是 q = T/N 的函數

Fig. 1:唯有當 q = T/N > 1 時 denoising 才有幫助。對奇異(q<1)的樣本共變異數而言,Marčenko–Pastur 定律無定義。在 N=300、252 天 in-sample 視窗(q=0.84)下,denoising 幾乎不動 condition number(1.2×);將清單減半至 N=150(q=1.68),同一方法便削減 4.1×;在資產範疇(q=28)中它削減 9.6×。

這是本研究中最清晰、最具教學意義的結果,也是多數 HRP/NCO 論述輕描淡寫帶過的一點。驅動共變異數 denoising 的 Marčenko–Pastur 定律,對奇異的樣本共變異數而言是 無定義的,而只要序列數多於 in-sample 天數,你就會得到一個奇異的共變異數。

N=300 個策略與 252 天視窗下,q = 0.84 < 1:樣本共變異數秩不足,condition number 約為 ~1e17,而 MP denoising 幾乎毫無作用,它把全部 300 個特徵值都當作「訊號」保留。這 正是 López de Prado 提出 HRP 的動機:當你根本無法對共變異數求逆時,無需求逆的方法是唯一不會爆掉的。

將清單減半至 N=150(同一視窗 → q = 1.68),共變異數便轉為適定:denoising 現在將 condition number 削減 4.1×,並發現 150 個特徵值中僅 7 個是訊號,把其餘 143 個壓平為雜訊。最重要的單一實務啟示是:一位擁有約 300 個策略與一年日資料的從業者,正處在 denoising 無法幫忙、HRP / inverse-variance 為必備的 regime。

範疇Nq = T/Ncond(原始)cond(denoised)削減訊號因子
資產928.08.6e39.0e29.6×1 / 9
策略 N=3003000.844.3e173.5e171.2×300 / 300
策略 N=1501501.682.1e35.0e24.1×7 / 150

供給配置器的共變異數每折(per-fold)condition number 中位數。q 依每折的活躍工具數計算。Detoning 可能重新放大條件數(它移除市場特徵向量,留下近乎奇異的殘差),因此它是分群的輔助手段,而非條件數的修正。

Demo, Markowitz 詛咒 / denoising 探索器

在本研究三個真實的 walk-forward regime 間滑動,觀察共變異數 condition number 隨著 q = T/N 趨近 1 而爆增,而 Marčenko–Pastur denoising 恰恰在樣本共變異數轉為奇異之處崩塌為幾乎毫無作用。

condition_number_deepening.csv
regime, 依 q = T/Nq = 0.84
q<1, 奇異q≫1, 適定
樣本共變異數
奇異 (q<1)
condition number, 原始
4.3e17
condition number, denoised
3.5e17
denoising 削減
1.2×
保留為訊號的特徵值
300 / 300
共變異數 CONDITION NUMBER(log), 300 個策略1e181e151e121e91e61e34.3e17原始 cov3.5e17MP-denoised奇異 / 不可逆

q = 252 天 in-sample 視窗 ÷ N。各長條為供給配置器的共變異數每折 condition number 中位數。

q = 0.84 < 1 時,策略數(300)多於 in-sample 天數(252):樣本共變異數 秩不足,condition number 接近 4.3e17。Marčenko–Pastur 定律在此無定義,因此 denoising 幾乎毫無作用(僅 1.2×,把全部 300 個特徵值都當作「訊號」保留)。你無法對此矩陣求逆,只有無需求逆的方法(HRP、inverse-variance)能存活。

至於回報:44 項資產範疇(等風險各腿)上各配置器的實現 OOS 年化波動率。愈低愈好。原始 mean-variance Markowitz 最差;HRP / NCO / inverse-variance 領先。

portfolio_assets
nco
0.068
最佳
hrp
0.071
min_var_raw
0.073
tic_nco
0.074
hrp_denoise
0.084
1/N
0.091
inv_var
0.091
mean_var_raw
0.100
nco_denoise_detone
0.111
最差
樸素 (1/N, inv-var)原始 MarkowitzHRPNCO / TIC

量化的 Markowitz 詛咒

原始 Markowitz 在 39/39 個策略市場中墊底,以任何方式衡量皆然

這正是 López de Prado 設想的應用場景,在眾多去相關的策略間分配風險預算,也是詛咒最清晰的展示。原始 mean-variance / min-variance Markowitz 是 在所有 39 個市場上 OOS 變異數最差的配置器,在兩種 q regime 與兩種單位慣例下皆然。詛咒在此真實且無條件成立。

但誠實的優勢很重要。在原始美元 PnL 單位下,HRP 勝過原始 Markowitz 的中位數約 50%,這被誇大了,因為奇異共變異數下的 Markowitz 權重會在少數高美元波動的腿上爆掉。在公平的 vol-targeted 基礎上(每腿 10% 年化風險),HRP 在 38/39 個市場中勝過原始 min-variance,中位數僅約 ~15%。一個真實但不令人驚豔的優勢。

圖表清楚呈現的兩個細節:(i) 在可比風險基礎上,誠實的贏家是最簡單的穩健方法,單純的 1/N / inverse-variance,HRP 緊隨其後;在此淨雜訊的面板中,精巧的方法(NCO、detoning)排名 比 1/N 還差,這是對過度工程的一記警示。(ii) 在 vol-targeting 下,inverse-variance 恰好退化為 1/N,這是預期中的一致性檢查,本次執行也重現了它。

Fig. 2:策略範疇,vol-targeted(等風險各腿),在 39 個市場中的平均 OOS 波動率排名(1 = 最佳)。原始 mean-variance 與 min-variance Markowitz 在奇異(q=0.84,N=300)與適定(q=1.68,N=150)兩種 regime 下皆墊底。在可比風險基礎上的誠實贏家是單純的 1/N / inverse-variance,HRP 緊隨其後。

44 項資產的範疇

在真實的跨資產報酬上得到相同結論

Fig. 3:資產範疇(44 項工具,vol-targeted 每腿 10%),實現的 OOS 年化波動率,愈低愈好。HRP、NCO 與 TIC-NCO 群聚在低變異數端;原始 mean-variance Markowitz 最高。detone-NCO 這根長條提醒我們:detoning 是以條件數換取分群品質。

在 44 項真實工具的日收盤對收盤報酬上,加密永續、美股 ETF 與 FX 主要貨幣對,結論依然成立。在原始報酬單位下(表格),TIC-NCO 與 HRP 提供 最低的 OOS 波動率(0.146、0.159);原始 mean-variance 則 最差,為 0.418, OOS 波動率比最佳的 LdP 方法高出約 65%,並伴隨退化的有效 N 值 2.6(把整個持倉押在少數標的上)。這就是被量化的詛咒。

在風險調整的軸線上,誠實的贏家是最簡單的穩健方法:最佳的 Deflated Sharpe 屬於 inverse-variance(0.64) denoise-detone NCO(0.75),而非基於求逆的 Markowitz,也並非總是 HRP。HRP 的優勢在於降低風險與去集中化,而非 alpha。

配置器OOS 波動率OOS SharpeDSR有效 Ncondition number
tic_nco0.1460.100.343.81.5e4
hrp0.1590.150.434.91.9e16
hrp_denoise0.1620.160.444.83.6e4
inv_var0.1670.270.646.81.9e16
nco_denoise_detone0.1800.340.756.31.7e16
nco0.181−0.040.152.51.9e16
1/N0.2820.090.3218.21.9e16
min_var_raw0.292−0.030.172.11.9e16
mean_var_raw0.4180.160.442.61.9e16

依 OOS 波動率由佳至差排序,原始報酬單位。Condition number 是供給配置器的共變異數每折中位數值,注意 HRP(1.9e16)完全忽略奇異的原始共變異數,而 TIC 與 denoised 方法則施加了良好條件化的結構(1.5e4、3.6e4)。

HRP 的優勢會隨規模擴大嗎?

HRP 相對 1/N 的優勢隨資產範疇的廣度而增長

Fig. 5:在具存活偏誤處理的 690 檔加密永續面板上(24 個 walk-forward 折),HRP(與 NCO)的 OOS 年化變異數除以等權(1/N),依資產範疇大小 N 呈現。低於虛線的平價線代表 HRP 提供了比 1/N 更低的 out-of-sample 變異數,且此差距隨廣度擴大,自 N=25 的約 9% 變異數縮減,到 N=100+ 時已接近一半。

上方 39/44 項資產的結果,HRP 在變異數上勉強勝過 1/N,其實是一個小範疇的假象。在具存活偏誤處理的 690 檔加密永續面板上重跑同一套 walk-forward 並掃描資產數 N, 可見 HRP 的階層式分散需要廣度才能展現:相對 1/N 的 OOS 變異數比值自 N=25 的約 0.87(≈9% 變異數縮減)降至 N=100 及以上的約 0.48(≈50% 縮減)。

誠實的但書:在大 N 下,變異數上的勝利並非夏普上的勝利。隨著樹的加深, HRP 會集中,有效廣度崩潰(N=690 時儘管有數百檔,eff-N 仍約 4–5),且換手率自 0.14 升至 0.49。因此計入費用的實際部署,只能在成本面前保留此變異數優勢的一部分;這是一個 降低風險的故事,而非免費的 alpha。

NHRP 變異數1/N 變異數HRP/1N 變異數HRP 夏普1/N 夏普
250.5180.5970.870.800.64
500.5940.6530.910.830.60
1000.3370.6760.500.870.58
2000.3070.6850.450.280.53
6900.3210.6690.480.190.52

依資產範疇大小 N 的 OOS 年化變異數與夏普值(24 個 walk-forward 折,690 檔加密永續面板)。HRP/1N 變異數 < 1 表示 HRP 變異數低於等權;比值隨 N 增長而下降。注意夏普欄會交叉:在大 N 下,隨 HRP 集中,1/N 反超 HRP。

風險調整的軸線

較低的變異數並不代表較高的報酬。將每個配置器實現的 OOS Sharpe 相對於九種配置器清單做 deflation,可將穩健的方法與脆弱的方法區分開來。

Fig. 4:風險調整視角:Deflated Sharpe Ratio 對實現的 OOS Sharpe,資產範疇(DSR 相對於九種配置器清單做 deflation)。denoise-detone NCO 與 inverse-variance 領先;原始 NCO 與原始 min-variance 落後。穩健、參數少的方法才能在 deflation 後存活;倚重求逆的原始方法則被資料所懲罰。

López de Prado 最強的具體主張,即完整的 denoise → detone → NCO 流水線居於主導,在此僅獲得 部分 支持。NCO 需要 denoised、良好條件化的輸入才能正常運作:原始 NCO 呈現負的 OOS Sharpe,且在各 NCO 變體中 DSR 最差。Detoning 是以條件數換取分群品質。穩健、參數少的方法(HRP、inverse-variance、denoised-NCO)才是 out of sample 存活下來的方法。

誠實的負面結果

這些去相關的策略樣本是 淨虧損的(在 N=300、vol-targeted 下 OOS Sharpe 中位數 ≈ −4.9)。貪婪去相關的取樣器刻意從一個由輸家主導的語料中抽取不相關的標的,而 沒有任何配置器能從一份虧損的清單中製造出報酬,在整個策略範疇中 Deflated Sharpe 皆 ≈ 0。投資組合方法控制的是 風險,而非正負號。我們如實報告此點,而不是用報酬為正的挑選來掩蓋它。

結論

HRP / NCO / denoising 在控制 out-of-sample 變異數上勝過原始 Markowitz,而且可重現(Markowitz 在 39/39 個策略市場中墊底,並在 44 項資產範疇中最差)。但在可比風險的基礎上,相對於最簡單穩健基準(1/N、inverse-variance)的優勢有限(在策略範疇中約 15%),這些基準往往才是誠實的 OOS 贏家,而沒有任何方法能把虧損的清單變成贏家。這是對該工作 精神 的忠實、不加修飾的確認,對含雜訊或奇異的樣本共變異數做矩陣求逆是大敵;結構與 shrinkage 有幫助,同時不誇大 HRP 優勢的幅度。

方法

  • 僅用真實資料,多市場:44 項工具的日收盤對收盤報酬(加密永續、美股 ETF、FX 主要貨幣對),另加跨 39 個市場、至多 300 條以貪婪方式去相關的每策略日 PnL 序列,即 López de Prado 的應用場景。
  • Walk-forward、因果:權重在 252 天的 in-sample 視窗上估計,於接下來的 63 天 out-of-sample 視窗中持有,然後向前滾動 63 天。權重絕不會在構建它們的資料上被評分。
  • 比較九種配置器:1/N、inverse-variance、原始 min-variance 與 mean-variance Markowitz、HRP、HRP-on-denoised、NCO、denoise-detone NCO,以及 TIC-NCO。
  • 主要指標是實現的 OOS 年化波動率(愈低愈好),並將每個配置器實現序列的 Deflated Sharpe Ratio 相對於九種配置器清單做 deflation(False Strategy Theorem)。
  • 診斷項:權重集中度(有效 N、HHI)與實際供給配置器的共變異數之 condition number,詛咒的直接度量。一個因果的、僅用 in-sample 的每腿波動率縮放器,將每腿置於共同的 10% 年化風險,使跨方法比較公平。
  • Numba 版 HRP kernel 每次執行皆在 N ∈ {8, 17, 40, 120} 上驗證與 numpy 參考實作位元完全一致(max |Δw| ≤ 5.6e-17)。

註記與限制

之所以報告兩種單位慣例,是因為它們衡量的是不同的東西:OOS 波動率的 排名 是尺度不變且穩健的,但 HRP 優勢的 幅度 取決於各腿如何縮放,未正規化的約 50% 數字部分是原始美元規模的人為產物,而 vol-targeted 的約 15% 才是公平的比較。策略語料是淨虧損的,因此 Sharpe 的故事按設計就被壓抑了,且這些方法本身屬於 López de Prado,並非新創。本文的貢獻在於這項實證的、多市場的、walk-forward 的稽核,尤其是 denoising 的 q = T/N regime 依賴性。

可重現性

引擎(配置器、MP denoise/detone、HRP/NCO/TIC、walk-forward、DSR,以及經位元一致性測試的 Numba HRP kernel)、各圖與各表,皆收錄於 lopez-de-prado-work-review 專案 13。本頁的探索器是自足的:condition number 的各 regime 與每個配置器的 OOS 波動率數字皆編碼自本研究的表格,因此它所示範的機制每次載入都能精確重現。

引用

參考文獻

本文回顧之機制的主要文獻來源:

  • López de Prado, M. (2016). Building Diversified Portfolios that Outperform Out of Sample. Journal of Portfolio Management, 42(4). (Hierarchical Risk Parity。)
  • López de Prado, M. (2018). Advances in Financial Machine Learning. Wiley.(第 16 章,HRP。)
  • López de Prado, M. (2020). Machine Learning for Asset Managers. Cambridge University Press.(共變異數 denoising、detoning 與 Nested Clustered Optimization。)
  • López de Prado, M., & Lewis, M. J. (2019). Detection of False Investment Strategies Using Unsupervised Learning Methods, and the Theory-Implied Correlation matrix. Quantitative Finance.
  • Bailey, D. H., & López de Prado, M. (2014). The Deflated Sharpe Ratio: Correcting for Selection Bias, Backtest Overfitting, and Non-Normality. Journal of Portfolio Management, 40(5).

另見

關於選擇紀律與 Deflated Sharpe Ratio 的姊妹研究見 Backtest Overfitting & the Deflated Sharpe Ratio,更廣泛的研究成果見 Research