共變異數與相關係數(Covariance and Correlation Coefficient of Financial Assets)
要評估兩個資產(assets)報酬率的相關性時,就需要計算它們的共變異數和相關係數。
舉例來說,有A和B兩個資產,過去六個月的報酬率分別是
由過去六個月的報酬,可以算出A的平均月報酬是2.17%,B是2.15%(算術平均數)。但可以明顯看出A和B不是齊漲齊跌的。有時候會有一個上揚,另一個卻虧損(第五個月份)。共變異數(Covariance)量測的是,這兩者的月報酬向同一方向偏離各自平均報酬的程度。它的公式為
Cov= 1/(n-1) * Sum i=1 to n (Rai-Raave)*(Rbi-Rbave)
Rai 代表A資產各月份的報酬率
Rbi
代表B資產各月份的報酬率
Raave 表A 資產的平均報酬率
Rbave 表B資產的平均報酬率
就是將A、B兩者每個月的報酬率和平均報酬率的差相乘,然後除以5。(ps因為是用歷史報酬,要除以n-1)
然後將118.29除以5,等於23.66,這就是A、B兩者的共變異數(Covariance)。
在計算過程中可以發現,假如AB兩者某個月的報酬都是同時高於平均或同時低於平均,這樣兩者報酬率和平均報酬率的差相乘後會得到一個正數,會讓共變異數的數值變大。假如AB兩者某月份報酬,一個高過平均,一個低於平均,那麼兩者報酬率與平均的差相乘會得到一個負數,會減小共變異數的數值,或使其成為負數。
但問題來了,AB兩資產報酬的共變異數23.66,這樣兩者的報酬率相關性到底如何呢?假如兩者的報酬率都是穩定的,這樣23.66會代表比較高的相關程度,假如兩者波動性都很大,那麼共變異數23.66其實代表的相關程度不高。為了解決這個問題,我們可以把共變異數除以AB兩者報酬率的標準差,就會得到相關係數(Correlation coefficient)。
Correlation coefficient = Cov / (SDa*SDb)
Cov表AB的共變異數
SDa 為A的標準差
SDb 為B的標準差
用Excel算出A的標準差是7.96,B的標準差為4.53。兩者的相關係數等於23.66/(7.96*4.53)=0.66。
相關係數會是一個介於-1到+1間的值。+1代表兩者完全正相關,-1表完全負相關。在資產配置理論裡,相關程度愈低的資產,將發揮愈大的”互補”功效。
回到首頁:請按這裡
初來乍到:請看”如何使用本部落格”
相關文章:
標準差怎麼算
投資組合的預期報酬(Expected Return of Portfolio)
投資組合的標準差(Standard Deviation of Expected Return of Portfolio)
資產比重對投資組合報酬及標準差的影響
資產配置的提升報酬效果(Diversifiable and Nondiversifiable Volatility)
從一則健康新聞談起(Correlation does NOT mean causation)
但這邊的計算跟投組報酬有些許不同,無法由個別資產的變異數直接加權計算。假設我們的投組有兩檔ETF,資料如下,如何計算投組的報酬率變異數呢?
[啟動LINE推播] 每日重大新聞通知
(共變異數)
把甲乙兩個股票組合起來的投資組合,變異數要怎麼計算?
多角化與風險分散
風險分散的道理,即是「不要將雞蛋放在同一個籃子裡」。透過多角化的投資方式,就能投資組合的風險分散掉。不過分散的效果,還要看組合內的個別資產的相關係數而定。
相關係數越高,分散的效果越差; 相關係數越低、甚至是負的,分散的效果越好。
當相關係數=1時,投資組合標準差是個別資產標準差的加權平均,無風險分散效果。當相關係數介於+1與-1之間,投資組合標準差小於個別資產標準差的加權平均,有風險分散的效果。當相關係數=-1,風險分散效果最好。
(延伸閱讀:還在選日子進場賭輸贏?經濟學家這樣說:九成賺頭決定在資產配置!)
資本市場理論
投資組合管理
市場效率與投資組合管理
市場是否具有效率,和管理投資組合的積極程度有些關係。
當市場沒有效率
當市場不是很有效率時,可能會有低估或是高估的投資標的,此時投資者本身如果具有分析的時間以及能力,可以採取積極投資策略,根據所得到的資訊進行分析,進場買賣,獲取理想的報酬。
當市場很有效率
當市場處於非常有效的情況時,市場價格會反映了所有資訊,包含內線消息。這時不論如何努力地分析、研究,都很難找出價格低估或是高估的投資標的。很難找出,就很難從市場中賺取超額報酬。此時,可以想想當再怎麼努力尋找資訊進行分析都無法賺取超額報酬,那不如採取較省時省力的被動投資策略。
主動式(積極)投資組合管理介紹
主動式投資的兩大重點分別為「擇時」、以及「選股」。
擇時(Market Timing)
擇時,是預估或是判斷市場,已掌握進場或是出場的時機,來挑整投資組合,達成最佳的資產配置。簡單講就是找最佳時機。當判斷處於多頭行情時,為了增加報酬,會出售貝他係數(β)較小的股票,將資金轉入貝他係數(β)較大的股票。
貝他係數(β)越大,受市場影響越大。
多頭市場時,可降低現金權益比例(Cash/Equity Ratio),因市場行情即將上漲,應該降低閒置資金的比例。反之當空頭市場時,要提高現金權益比,以減少投資損失。
如果不具有擇時的能力,利用定期定額投資法,就能避開錯誤擇時的風險。
選股策略
選股的基本原則是挑有上漲潛力、或是目前價格被低估的目標。簡單講是找好標的。由上而下選股法,是要挑對類別、產業,當產業有前景,即使績效低的公司仍賺錢。在選股方面,要避免選擇太多性質類似的個股,因為這樣無法降低投資風險。當發現有利、不利消息時,調整持股可以賺取享有因題的上漲,降低可能下跌股票的比重。小型股成長潛力較佳,適合能承受風險,以及希望能賺取較高報酬的投資人。大型股獲利穩定,股價較不具爆發性,適合穩健型投資人。
量化交易30天
本系列文章是紀錄一位量化交易新手的學習過程,除了基礎的Python語法不說明,其他金融相關的東西都會一步步地說明,希望讓更多想學習量化交易但是沒有學過相關金融知識的朋友們,透過這系列的文章,能夠對量化交易略知一二,也歡迎量化交易的高手們多多交流。
這篇會假設有一個投資組合,裡面只有兩種資產,來說明報酬與風險的概念,條件如下:
資產A:預期年化報酬9%,標準差10%。
資產B:預期年化報酬18%,標準差30%。
稍微科普一下,
- 預期年化報酬率:代表標的未來預測的年化報酬是幾%,而預測方法則是每個人有不同見解,例如:可以用過去績效來衡量、或是未來展望...等等。
- 標準差:代表年化報酬的波動程度,標準差越大,報酬的可能範圍越廣,標準差會落在0~100%。
投資組合報酬率
假設我們用A、B組成一個投資組合,A佔投組總資產的x部份,B就是佔(1-x),這邊是假設不保留現金的情況。代入資產A與B的預期年化報酬,投組報酬率就會是:
R = 0.09x + 0.18(1-x) = 0.18 - 0.09x代表不同的x會產生不同的投組預期報酬率,例如:
- A佔總資產的25%,x就是0.25,將x帶入公式,R就會是15.75%
- A佔總資產的50%,x就是0.5,R就是13.5%
可以發現,當A資產佔比越高,預期報酬率越低,因為A本身的預期報酬就比較低,所以應該將A捨去追求最高的預期報酬率嗎?這個問題就牽涉到投資組合標準差與相關係數。
投資組合標準差與相關係數
要計算投資組合的標準差,是用公式慢慢推導可以得到,不過因為有點冗長,這邊直接用python寫成計算式比較快:
import math def s(x, Sa, Sb, corr): return math.sqrt( (x**2) * Sa**2 + ((1-x)**2) * Sb**2 + 2 * x * (1-x) * corr * Sa * Sb )其中:s是投組標準差,x是A資產佔總資產的比例,Sa是A資產標準差,Sb是B資產標準差,corr是A與B的相關係數。
相關係數(corr)是代表A與B資產收益率的變化關係,corr會在-1到+1這個範圍內,corr小於0的話代表A與B資產的報酬率通常是反向變動,大於0則是同向變動。
相關係數對於投資組合標準差的影響
假設我們用A資產60%,B資產40%的投資組合,帶入上面的數字及公式,
import pandas as pd import numpy as np # params corr_set = [-1, -0.5, 0, 0.5, 1] # standard deviation set std_dev = [] # calculate standard deviations for corr in corr_set: std_dev.append(s(0.6, 0.1, 0.3, corr)) df = pd.DataFrame({'corr': corr_set, 'std_dev': std_dev}, columns = ['corr','std_dev']) df可以得到下列表格,相關係數由-1到+1,標準差逐漸上升,因為當兩種資產呈同向變動的時候,波動度會比呈反向變動的大。
投組配比 v.s. 相關係數 v.s. 標準差 三者的關係
上面跑了相關係數跟標準差的關係,現在則是要再加入一個變數,就是A佔總資產的比例x,也就是A與B的比例變化。所以呢我就將x從0到1切成100等分,也就是A佔比從0到100%(B從100%到0)。
- 先算出平均報酬
上圖中的斜直線,越往右下代表A佔比越高,所以預期報酬會越接近A資產的預期報酬,反之亦然。
- 計算不同報酬,不同資產配比下的標準差
上面這張圖乍看資訊很多,可以從幾個方向拆解,就會比較好懂了:
- Y軸代表投組的預期報酬率,而根據本篇最上面那條公式,會影響預期報酬率的只有資產配比x,所以Y軸從下到上的這些數字,就代表不同的資產配比算出來的投組預期報酬。
- 假設我們取相關係數corr=-0.5這條橘色線來看,當投組預期報酬率往上增加的時候,會有一小段彎曲的部份,這段負斜率的部份代表標準差下降的同時,報酬率卻是上升的,這是單一資產做不到的事情,因為單一資產的話,通常報酬上升的同時風險也會增加。
- 相關係數corr小於0的時候,投組才比較有標準差下降,而報酬率上升的這種效果。
- 不同相關係數會導致線圖長得不一樣,不過corr=-1跟corr=+1這兩條線算是虛構的,因為在真實世界裡面很少有完全負相關或是完全正相關的資產組
本篇總結
這篇就大概講投資組合的理論如何用量化的方式來呈現,真的是非常學術的一篇阿,可能有點硬,但是有了這些數字之後,下一篇就要來玩玩幾個投資組合拉,會回到投資組合第一篇開頭講的股債配比的議題來研究一下,請繼續收看拉。
P.S.
如果大家對於量化交易有興趣的話,我自己有上過以下這門課,課程內容從串接股市資料API、儲存至資料庫、將自己的策略轉化成程式碼、自動下單,並且可以把整個流程自動化,每天早上執行一次,一整天就不用看盤了,覺得是蠻實戰的,可以參考看看。
筆者 Sean
奈米戶投資人 / Python愛用者
喜歡用Python玩轉金融數據,從個股基本面、技術面、籌碼面相關資料,一直到總體經濟數據,都是平常接觸到的素材;對於投資,除了研究歷史數據,也喜歡瞭解市場上大家在玩些什麼。