狂徒

我喜歡研究和挑戰艱澀的學科,也喜歡用易懂的人話分享知識。 http://madx.ctcin.bio 歡迎各位批評指教,互相切磋。

Markowitz和效率前緣

隨著分散投資、資產配置的理念逐漸擴散,人們開始思考不同資產間的搭配方式。

隨著分散投資、資產配置的理念逐漸擴散,人們開始思考不同資產間的搭配方式,而這就是「現代投資組合理論」登場的時刻了。

投資一定有風險,也一定有預期回報,所以我們需要先說好,什麼是「預期報酬」,什麼又是「風險」。很輕鬆的,我們知道用「加權平均」(期望值)來計算組合收益。而要描述組合波動,我們使用「變異數」(方差)。


1. 假設台積電一年上漲100%(純粹舉例),蘋果一年上漲50%,那麼我各投資一半資金,就會得到75%的收益。如果我有80%投資在台積電,20%在蘋果,則組合收益就是1×0.8+0.5×0.2=0.9,90%收益。以上算式,就是加權平均的形狀。

E: 期望值(expect)

W: 權重(weight)

R: 收益(return)


2. 接下來,我們要處理所謂的組合波動。

我曾躺在遊輪上的游泳池中,感受到很特殊的晃動。海浪讓船身搖擺,而船身又讓游泳池的水產生波動,所以當我閉上眼睛時,我能感受到兩者造成的協力晃動。對於單一資產而言,波動很好算,單純就是收益的變異數(方差)。可是當我們處理多類資產時,究竟要使用誰的方差呢? 答案是,使用共同的變異數,也就是「共變異數」(協方差,covariance).

如果使用向量和矩陣來描述,形狀也一樣,但各細項我就不列出來了。(協方差矩陣非常重要,是計算投資組合時好用的工具。)

T: 轉置矩陣(transpose)


3. 高中數學,在說共變異數的時候,會順便介紹「相關係數」,但它對於投資組合有什麼意義呢?

ρ: 相關係數

大家可以思考「主動降噪耳機」,它的原理是製造相反的聲波,刻意將噪音抵銷。雖然無法做到完全靜音,但是效果也很顯著。降風險,和降躁的精神一樣。觀察股債組合,我們可以看到,股票和債券的走勢不同,而且有時候甚至相反。用數學語言來描述,就是「相關係數」低。

我簡單畫了一個極端的狀況,紅線和藍線雖然都有波動,但疊加在一起之後,組合出了一條無波動的直線(黑)。也就是說,理論上我們如果找到相關係數很低(包括負值)的資產,就可以配出「無風險」組合。當然,實際上不可能有這種完美組合,我們能做的只有盡量降低風險。(事實上我只是畫弦波函數而已,和真實資產價格的走勢差異很大,也請先不要跟我說傅立葉。)

換句話說,基本上找相關係數低的不同資產配置在一起,會讓整體組合的波動降低。


4. 回過頭來看協方差的性質,我們要來研究一下整個組合的變異數(方差)。而為了方便證明,我先用兩種資產舉例。

我們可以看到,Var(X), Var(Y)和Cov(X,Y)都是資產歷史表現決定的,而我們需要調整a, b的值,並期望讓整體波動Var(aX+bY)最小。當我用未來的預期組合扣掉原本的組合時,只剩下Cov(X,Y)有變化,其它都會抵銷掉。

換句話說,我們只要想辦法把Cov最小化即可。(嚴格來說應該是0.5Cov)


5. 接下來,我會寫出求解的方式,不想看的朋友可以往下跳一段。

引用上述的式子,並改寫成另一種表達形式。

原始版本的限制條件,包括「不可做空」,也就是權重W最小只能是0,不過此處先不考慮。另外,還有一個條件就是資金要全部打完,也就是每個權重W加起來要是1。

要處理這種帶有限制條件的極值,我們可以用Lagrange乘法,我一樣先用兩種資產來列式。

接著,我們用矩陣來處理它,最終可以在求出反矩陣的前提下,得到W的解。

既然是資產「組合」,最少有兩個權重,因此我們會面對解四階反矩陣的繁瑣。

不過觀察矩陣的形狀,我們可以發現,無論有多少個權重,每個W的解都和1, R有關。因此,這時如果把收益R和W加權起來,就會組成R的二次方程式。

換句話說,當我們聚焦在求得「最小組合方差」時,會得出期望值(R)的拋物線函數。

不過,如果畫在平均-標準差的座標系上,它會變成一條「雙曲線」。


6. 所以這條雙曲線,長什麼樣子?

我用Excel畫出五年的某組合效率前緣,大家有個印象就好。如果投資者都是理性的,那大家只會選擇曲線的上緣,畢竟承受同樣風險,沒道理選擇預期收益低的。這簡單的一招,就是Markowitz在1952年提出的「效率前緣」,而他也在1990得到諾貝爾經濟學獎。

投資的時候,我知道每個資產的報酬和波動,也知道資產間的協方差,因此現在配置比例隨便抓,都可以算出整個組合的對應總收益和總波動。我們也可以依據自己的偏好,限制效率前緣的呈現範圍。另外,如果在圖表上結合無風險報酬,就能畫出資產配置線(CAL)、資本市場線(CML)、證券市場線(SML)...等,十分方便。


7. 有了效率前緣,人類的投資知識往前邁進一步,但它並不完美。

首先,每次我想要計算投資組合,就需要把整個流程跑一次。期望值、標準差、共變異數、Lagrange、反矩陣...這些運算非常繁瑣,人類光是三階反矩陣都要算很久了,更何況是多資產的組合呢? 另外一點,有時候投資會有做空限制,需要使用Monte Carlo等模擬法,我也聽過其它精彩的優化演算法(如基因類的NSGA/SPEA...)。但是無論何種方法,人類都必須借助機器,才能得出解答,離實用還是有些距離。

另外,通常我們只是想知道資產的大概比例,並不需要計較詳細數字。可是用均值方差(MV)算出來的結果,往往會對於我們的預期報酬很「敏感」。例如,可能我只是上調0.1%的預期報酬,結果資產間的權重(W)就跟著大幅變動,這對投資人來說不切實際。而為了解決這個問題,人類也發明出不同模型,像是Black Litterman,我會在之後的章節講到。

還有一點,既然我們要處理風險,那就應該思考風險的意義。想想Sortino和Sharpe的差別,在資產組合也一樣,因此有人嘗試用「下行標準差」來改良模型。也有人使用JP摩根的VaR(風險價值)或CVar,來取代古早的標準差。

看到這裡的朋友,可以選擇跳到下一節。但如果讀者有興趣,也可以參考剩下的延伸結論。

我們在計算Cov一直接觸到的相關係數ρ,全名是「Pearson 積-動差相關係數」,意思就是利用到均值(一階動差/矩)和隨機變數(X,Y)的乘積。相似的,在計算收益期望值的時候,既然有一階矩,就有更高階的矩,各位可以觀察組合P和起始點(收益)為R的Taylor展開。(以下算式參考MIT公開課18.S096 Dr. Kempthorne)

Skew: 偏度

Kurtosis: 峰度


接下來再次利用Lagrange,求整個組合報酬期望值的最大化。

我們也可以得知,從不同階的矩切入,投資人應該喜歡高均值、低方差、高偏態、低峰態...的投資組合,正是因為偶數階矩代表著分散程度。

若你屬於長期讀者,可能還會聽過我說風險並不是完美的「常態分佈」。在Markowitz發表論文的幾十年後,學術界也出現許多修正MV的方式,但基本上都是從不同階動差下手,讓算法最優化的同時,能更貼近真實世界。


8. 恭喜看到這邊的各位,最後我說一些注意事項。

原理說完了,那我們可以利用什麼工具輔助計算呢? Portfolio Visualizer非常方便,而台灣的「投資組合大擂台」也可以計算出組合收益和波動率。我之前用Excel畫效率前緣,不過後來也嘗試使用Python和Matlab.

另外,效率前緣是一種回測的結果。大家畫出知名的雙曲線,只是把半世紀以前的理論重新實踐,不代表未來會如此發展。因此,保持質疑和挑戰的心態,才能避免掉入墨守成規的陷阱。

事實上,想挑戰Markowitz的人類很多。參數敏感如何處理? 風險分布模型怎麼改良? 風險可以解釋報酬嗎? 有沒有更簡潔的算法?

你可以鎖定資產配置系列文章,或許能發現答案。

Like my work??
Don't forget to support or like, so I know you are with me..

CC BY-NC-ND 2.0

決鬥吧,資產組合

5

Want to read more ?

Login with one click and join the most diverse creator community.