現代投資組合理論

逐步 PCA 算法(無需數學包檢查正確性)

  • December 13, 2014

如果我的建議有誤,如果有人能糾正我,我將不勝感激。

我正在使用 PCA 來:

  • 找到選定資產之間的協整度量
  • 找到市場中性位置的特徵向量及其投資組合(最小變異數)

不幸的是,我不確定我是否以正確的方式做這件事。這是我的算法:

  • 獲取基本矩陣 N x M:N - 資產數量,M - 歷史樣本數量
  • 得到簡單的共變異數矩陣:Cov = E$$ (X - E[X $$)(Y - E$$ Y $$)]
  • 使用 Jacobi 旋轉法求解特徵問題:$$ example $$$$ 1 $$
  • 通過模組找到最大特徵值的索引:MinVariance = Min(Abs(eigenvalue))
  • 可以通過特徵值的索引在旋轉矩陣中找到特徵向量作為列

**問題是:**根據我上面提到的最初目的,我是否錯過了這個行動列表中的某些內容?

我之所以問,是因為我已經計算了選定貨幣的這些權重,但它們對我來說看起來很奇怪,因為例如,當每個人都知道它們高度相關並且大部分時間一起移動時,歐元兌美元和英鎊兌美元似乎彼此相反

http://c.mql5cdn.com/3/28/USDCHFM1.png

這是我在稱為 MQL 的 C++ 類似語言上的 PCA 實現

http://www.mql5.com/ru/forum/16512/page3#comment_732844(見附件)

關閉這個問題。

簡而言之,使用的步驟:

  • 獲取矩陣 N x M 其中 N - 資產數量,M - 歷史樣本數量
  • 使用對數正規化所有樣本,並意味著有回報而不是某些資產特定值
  • 如果要避免波動性的影響,請獲取共變異數矩陣或相關性
  • 使用 SVD 和 Jacobi 在共變異數矩陣上的旋轉求解特徵問題
  • Jacobi 旋轉返回兩個矩陣 - 特徵向量和特徵值

理解結果:

  • 特徵值代表投資組合價差的變異數
  • 選擇最大特徵值意味著選擇整個投資組合的方向
  • 選擇最小特徵值意味著選擇具有最小變異數的投資組合的周期性、雜訊或誤差分量
  • 特徵向量中的每個值是投資組合中相關資產的加權係數,需要乘以該資產才能回到初始過程
  • 特徵向量是由所選特徵值的索引所取的旋轉矩陣中的一列

資源 :

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