投資組合優化

負變異數?

  • June 21, 2018

使用公式 wCovt(w) 我可以生成一個負的投資組合變異數。負變異數的含義是什麼?我應該假設它為零嗎?負變異數很麻煩,因為如果不求助於虛數,就無法取負數的平方根(估計標準差)。它似乎也與變異數公式不一致,變異數是與均值的平方偏差的平均值,因為平方總是產生正數。

負變異數是我真正問題的冰山一角。我有一個表示(事前)期望的共變異數矩陣。我沒有也不希望使用歷史回報。我有 23 個資產類別。我一直在玩一些投資組合優化(不是平均變異數)。我為最佳投資組合提出了一組權重 (w)。我的基準 (b) 也有一組權重。我正在計算跟踪誤差。跟踪誤差的平方應為 (wb) * cov * t(wb)。這就是消極的。

此外,我的權重與我的基準有很大不同,以至於檢查和直覺告訴我零是錯誤的答案。為了進一步證明這一點,我為資產類別生成了 1000 個隨機回報(使用我的回報假設和共變異數矩陣),並為 w 和 b 計算了 1000 個回報。然後我計算了差異,然後我取了變異數。因為我有一台電腦,所以我重複了 1000 次。最低跟踪誤差(差異變異數的平方根)為 2.7%。所以我相信變異數應該是正的。

FWIW,我有一個 23x23 的共變異數矩陣。其中大部分來自公共資源(Research Affiliates)。我加上市政債券。我對共變異數矩陣的其他用途非常滿意——例如 w 和 b 的投資組合變異數似乎很大。

任何對我可能在計算上或通過解釋上做錯的事情的見解將不勝感激。我所有的工作都在 R 中,我可以分享一些數據和程式碼。

正如其他使用者在這裡指出的那樣,您設計的共變異數矩陣顯然不是正定的,因此您會得到這種奇怪的行為。

請注意,這不僅僅是一個數學問題,而是一個經濟問題。

作為一個玩具範例,請看:如果 A 和 B 強烈負相關(例如 -1),那麼它們不能與第三個 C 負相關(再次 -1)。您可以設計(=寫下)這樣的矩陣,但這是您在正確的數學或現實生活中無法遇到的。

你可以做什麼:

  1. 為每個資產選擇非負變異數 $ V = diag(v_1,v_2,\ldots, v_n) $
  2. 為相關性選擇一個正定矩陣 $ C $
  3. 計算 $ Cov = \sqrt{V} C \sqrt{V} $ 其中平方根是按分量的。

第三步的計算在stack.overflow上討論。corpcor包提供了將共變異數縮小到選定目標的方法,並提供了正定性檢查。

該函式make.positive.definite 可用於找到與某個給定矩陣最接近(在選擇的意義上)的正定矩陣。

正如 Ivan 在評論中指出的那樣,您的矩陣不是有效的共變異數矩陣。換句話說,不存在您可以從中估計這樣一個共變異數矩陣的數據集(具有完整的觀察值)。

修復此類矩陣的最簡單方法是將矩陣的負特徵值替換為零。此方法在我維護repairMatrix的 R 包中的函式中實現。NMOF

引用自:https://quant.stackexchange.com/questions/40102