Python

將均值變異數優化擴展到 fama 五因子

  • April 26, 2019

我是量化金融的新手,因為我不是數學家,所以我正在使用 python 來嘗試理解它。

網際網路上有許多解釋均值變異數優化的部落格,但沒有人將這些範例擴展到 fama french 因子並在該世界模型下對其進行優化。

這就是我想要理解的。

均值變異數優化:

我知道在矩陣表示法中,以下對於均值變異數是正確的:

mu = w * r.T
sigma = np.sqrt(w * C * w.T)

where: 
w = matrix of weights
r = matrix of returns
C = variance covariance matrix of r

然後,您嘗試通過調整優化函式中的權重來最大化回報或最小化變異數。

在世界因素觀下,r = B * f + s其中:

r = matrix of returns
B = matrix of factor exposures
f = matrix of factor returns and 
s = matrix idiosyncratic returns

在這種情況下,回報將再次

mu = r * w.T

然而,sigma 似乎沒有考慮到描述風險的因素不止一個這一事實。您如何擴展均值變異數以考慮其他因素?

是否類似於為每個因素及其與回報的共變異數找到一個 sigma,然後將它們組合起來?

sigma = np.sqrt(factor1_weight * Covariance(return,factor1) * factor1_weight) * np.sqrt(factor2_weight * Covariance(return,factor2) * factor2_weight) ??

任何幫助將不勝感激,也許還有解釋。

非常感謝!

似乎您可以將共變異數建模為因子模型。我在量化股票投資組合管理中找到了它。

CoVar = (weights * B * V * B.T * weights.T) + (weights * D * weights.T) 

其中:R = 返回矩陣,B = 資產暴露於因子,V = 因子共變異數,矩陣 D = 特定變異數對角矩陣。

你有點混合模型。

基於 MPT 的均值變異數優化表明,在風險和回報之間存在權衡,並通過一組提供最佳“風險調整”回報的資產相關性。

Fama-French 模型是 APT 的擴展,它斷言安全回報是對三個(或五個)因素的安全敏感性的產物。即,鑑於證券對各種權益因素的歷史敏感性 +/- 一些 epsilon,我們可以確定證券的回報。

MV 中包含的回報通常只是一個輸入,如 vol 或共變異數矩陣,用於為每個目標函式輸出一組“最佳”權重。

您可以使用您所描述的形式使用您喜歡的任何 FF 模型來計算您的安全回報,然後使用生成的安全回報顯式計算共變異數矩陣。然後,您可以在 MV 常式中使用這些收益和共變異數矩陣。

也就是說,這取決於您打算如何使用它,但這有點像噪音練習。不用說,您得到的權重現在取決於兩個模型,就實際交易而言,這兩個模型都不是特別穩健。例如,FF5 在預測證券回報方面比很多東西都要好,但你可能會看到與實際每日或每月回報流的巨大偏差。使用 MV 進行投資組合建構決策高度依賴於輸入的質量,其中之一,共變異數矩陣,對輸入(例如,回報)也高度敏感。

高溫高壓

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