【資產配置】第一代資產配置理論:現代投資組合理論

介紹Markowitz博士的Modern Portfolio Theory,從概念到理論求解和其缺點

Hayden海頓君
data-driven-investment
7 min readFeb 25, 2020

--

原創不易,若轉載請先告知,本人保有法律追訴權

警語:本文為學術目的探討,不表示任何實質投資建議,本部落格也不為投資損益負責,投資人須自負盈虧。

Abstract

本文和大家介紹第一代的投資組合理論:現代投資組合理論(Modern Portfolio Theory),這是一篇得諾貝爾經濟學獎的投資理論論文,解釋了可以透過資產間不同的相關性建立一個降低風險提高收益的投資組合。本文會從從一開始的概念發想到實際用程式求得數值解,甚至於推導出數學上的解析解,最後說明該理論在數值求解上過於敏感的缺點。

Mean Variance Portfolio

正如物理學的許多重大發明如今已經仰賴電腦模擬技術,金融學也是如此,一開始他透過假設價格服從常態分配的出發點,從電腦中抽樣出許多不同資產的時間序列資料,這裡假設4(筆)x100(期)。

NUM_ASSET = 4
NUM_OBS = 100
return_vec = np.random.randn(NUM_ASSET, NUM_OBS)
png
png

接著透過隨機給予資產權重,可以建立一個random的投資組合。接著用投資組合標準差(x)與投資組合收益(y)當作衡量風險和報酬的量化目標,下方我們建立一組3000個隨機投資組合,可以看到投資組合的風險和收益似乎被一個二次曲線bound住了,因此接下來的問題就是:要如何描述投資組合風險和收益之間的關係?

png
png

Markowitz optimization and the Efficient Frontier

Markowitz 試著要在上面的 (std, mean) 中找出最好的組合,他觀察了上面的圖形後,發現隨著n增加圖型邊界會逐漸被一個二次曲線給bound住,因此他問了自己一個問題:給定每一個mean下,最小的std的所有組合為何?

接著他嘗試用下方的二次規劃解出此問題。其中W為的Nx1 column vector,Q為所有資產的共變異數矩陣(NxN),1為1xN單位向量,r為各資產的平均報酬向量(1xN)。

我們可以利用電腦幫我們求得數值上的最佳解,這裡利用python來求解上方的二次規劃的數學問題,看到這裡可能有童鞋開始好奇:為毛用二次規劃來求解這個問題呢?其實只要將上方做個數學變換,就知道其實際上滿足二次規劃的數學結構。

def mean_variance_portfolio(returns, num_mu=100):
returns = np.asmatrix(returns)
n = return_vec.shape[0] # num asset
MUs = np.linspace(-.5, .5, 1000) # random initialization of mu

# objetive func
V = opt.matrix(np.cov(returns))
q = opt.matrix(0.0, (n,1))
# Create constraint matrices
R = opt.matrix(np.mean(returns, axis=1),(1,n))
MUs = [opt.matrix(mu) for mu in MUs]
A = opt.matrix(1.0, (1,n))
b = opt.matrix(1.0)

# solve
portfolios = [solvers.qp(P=V, q=q, G=-R, h=-mu, A=A, b=b)['x'] for mu in MUs]

# efficient frontier
returns = np.column_stack([R * w for w in portfolios])
risks = np.column_stack([np.sqrt(w.T * V * w ) for w in portfolios])
return portfolios, returns, risks

可以看到下方的黃線就是透過MV理論求解出來的結果,在每個給定的風險水準下,我們可以找到一個極大化投資組合報酬率的權重,然後求得最佳化的投資組合。

png
png

其他解法:解析解(前方有數學,請退散)

前面提過可使用LargarangeMultiplier將其轉換為解一個線性系統的問題,然後求得一個解析解,這也是馬老師之所以會得諾貝爾獎的原因之一,因為其理論能滿足數學家對於簡潔美好的理想世界幻想,即便求得解析解在實務中不切實際,這裡還是討論一下如何求得解析解。

接著只要求解下方的線性方程組即可求得解析解

實戰案例:權重敏感的缺點

接下來討論一個實際的案例就可以看到其缺點:求出來的權重變化十分敏感。由於實際價格的收益率並不滿足常態分配的假設,因此這個理論拿來直接用會遭遇到求出來的解太過於極端的問題,以下舉一個只有5個選股的投資組合作為範例,選的5家公司都是美國的科技股:

png
png

首先針對這五家科技公司的股價取一階差分求得日收益率,接著針對收益率的相關性和分配做圖,可以看到其相關性在橫斷面上都為正的,因此我們可以預期MV投資組合求出來的解不會太漂亮。

png
png

將日收益率放到二次規劃引擎中就可以求出解,但是這不符合實際應用的情景,也缺少了train/test資料集,因此我們採用rolling window的訓練來模擬實際上應用投資組合的情況,每一個月底我們都將依照前期的收益率丟進去求解後進行再平衡。

下圖求出來的解十分極端,且持有大量的微軟公司,沒有持有後續看漲的Amaon和google。或許有人會噴作者:拿相關性為正的資產作配置不是不符合馬老師所述資產要有附相關才能分散風險的觀點嗎?我的回答是:正是由於五家公司收益率的相關性非常接近,才可以印證出這個結論:MV模型ru 容易overfitting。所以這個模型是理想上很好,但實務上非常難以應用,即便是馬老師本人也只是將自己的退休基金用第二代資產配置理論:股債平衡

png
png

Conclusion

  • 現代投資組合理論說明了可以利用投資組合間的相關性進行分散風險的投資,找到一個最佳的投資組合
  • 現代投資組合理論的缺點是對於資產間收益率的相關性過於敏感,因此求出來的解十分極端難以應用
  • 現代投資組合理論屬於第一代的投資組組合理論,會得諾貝爾獎是因為其開創性的概念,實際上發明人馬老師也只是將自己的退休金投資在第二代資產配置理論:股債平衡

--

--