跳到主要內容

[投資組合理論] Markowitz 最小變異 投資組合 之解

此文將討論 Markowitz 在1952年針對單期 報酬-風險 投資策略所建構的最小變異投資組合理論,簡而言之就是以期望報酬為報酬,風險變異(或者標準差)為風險,試問如何建構一組投資組合並對各資產給定適當的權重使得風險變異被最小化。推導過程會用到一些必要的最佳化與線性代數的知識。


Markowitz 的單期投資組合的描述:
假設在期初手上有 $V(0)>0$ 資產,現在我們打算在期初時購入 $n$ 種 互為相關 的風險資產 (correlated risky asset) 用以建構投資組合,其個別資產之隨機報酬 表為 $r_1,r_2,....,r_n$ 且對應的 期望報酬 為 $E[r_1], E[r_2],...,E[r_n]$ 與 風險變異 $Var(r_1), Var(r_2),...,Var(r_n)$ 且 資產之間的共變異 為 $ Cov(r_i,r_j),\;\; \forall \;  i,j=1,2,...,n$。

Comments:
為求分析簡便在以下分析中,我們建構的投資組合不考慮無風險資產 (risk-free asset),亦即 $Var(r) = 0$ 的資產我們不考慮。


投資策略: 
對於第 $i$ 資產之投資策略為對 $i=1,2,...,n$,令在期初之投資策略為 $I(0)$ 滿足
$$I_i(0) = K_i V(0)$$ 其中我們要求 $\sum_{i=1}^n K_i = 1$ (但允許 $K_i$ 為負值,亦即我們允許賣空)。

Comments:
一般投資書籍在討論上述投資策略或者廣義的資產配置問題時,多半僅稱呼 $K_i$ 為權重,且對於整體投資策略不多著墨。不過事實上,此類問題可以透過引入 控制理論 觀點,將投資策略視為標準回授控制 $I=KV$。


單期資產動態模型:
則我們打算持有單期 (比如說 一年) 則期末資產為
\[
V(1) = V(0) + \sum_{i=1}^n K_i r_i V(0)
\]則不難得知我們投資組合的期末報酬,記作 $r_p$ 可由上式推得為
\[{r_p}: = \frac{{V(1) - V(0)}}{{V(0)}} = \sum\limits_{i = 1}^n {{K_i}} {r_i}\]
並且回憶投資組合的期望收益率為
\[
E[{r_p}]  =  \sum\limits_{i = 1}^n {{K_i}} E[{r_i}]\]且對應的變異可表為
\begin{align*}
  Var[{r_p}] = \sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n {{K_i}{K_j}Cov\left( {{r_i},{r_j}} \right)} }
\end{align*}


Markowitz 最小變異投資組合 的等價 最佳化問題:
為求取 Markowitz 最小變異投資組合,我們首先給定任意投資組合之期望報酬 $\widehat{r}$,並接著建構以下最佳化問題:
\begin{align*}
  &\min \frac{1}{2}Var\left( {{r_p}} \right) \hfill \\
  &s.t. \hfill \\
  &E\left[ {{r_p}} \right] = \widehat r\;\;; \hfill \\
  &\sum\limits_{i = 1}^n {{K_i}}  = 1 \hfill \\
\end{align*}
利用前面推得的 $E[r_p], Var(r_p)$ ,我們知道上述最佳化問題等價為
\begin{align*}
 & \min \frac{1}{2}\sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n {{K_i}{K_j}Cov\left( {{r_i},{r_j}} \right)} }  \hfill \\
  &s.t. \hfill \\
 & \sum\limits_{i = 1}^n {{K_i}} E[{r_i}] = \widehat{r}\;\;\;; \hfill \\
  &\sum\limits_{i = 1}^n {{K_i}}  = 1 \hfill \\
\end{align*}
注意到上述問題為具有等式拘束的最佳化問題。常用的工具為透過 Lagrange Multiplier 來求解必要條件。

Comments:
熟習線性代數與最佳化的讀者,應不難看出上述最佳化問題可被化約為二次規劃 (Quadratic Programming)問題,亦即目標函數為二次函數,且具有線性拘束的最佳化問題:
\[\begin{gathered}
  \min {K^T}CK \hfill \\
  s.t. \;\; AK = b \hfill \\
\end{gathered} \]其中 $K:= [K_1,K_2,...,K_n]$ 且 $C$ 為共變異矩陣其中第 $ij$ 個元素為 $Cov(r_i,r_j)$ 且拘束條件為
\[\underbrace {\left[ {\begin{array}{*{20}{c}}
  {E[{r_1}]}&{E[{r_2}]}& \cdots &{E[{r_2}]}&{E[{r_2}]} \\
  1&1& \cdots &1&1
\end{array}} \right]}_A\underbrace {\left[ \begin{gathered}
  {K_1} \hfill \\
  {K_2} \hfill \\
   \vdots  \hfill \\
  {K_n} \hfill \\
\end{gathered}  \right]}_K = \underbrace {\left[ \begin{gathered}
  {\hat r} \hfill \\
  1 \hfill \\
\end{gathered}  \right]}_b\]注意到上述討論中, $A$ 矩陣的變數比方程多,這一類特殊問題又稱 minimum norm problem,(亦即我們將 $min K^TCK := min ||K||_C^2 $) 。若 $rank(A) = 2$ 且共變異矩陣為正定矩陣 則有立刻的唯一解滿足拘束 $AK=b$ 且最小化 $K^TCK$ ,記作 $K^*$,如下
\[{K^*} = {C^{ - 1}}{A^T}{(A{C^{ - 1}}{A^T})^{ - 1}}b\]有興趣讀者可以自行驗證。以下我們將採用 Lagrange Muliplier 方式來求解此問題。


求解最小變異投資組合 (利用 Lagrange Multiplier):
因為我們有兩條等式拘束,故可取 $\lambda, \mu$ 為 Lagrange Multiplier 並建構 Largangian 函數 $L$ 如下:
\[L: = \frac{1}{2}\sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n {{K_i}{K_j}Cov\left( {{r_i},{r_j}} \right)} }  - \lambda \left( {\sum\limits_{i = 1}^n {{K_i}} E[{r_i}] - \widehat r} \right) - \mu \left( {\sum\limits_{i = 1}^n {{K_i}}  - 1} \right)\]
欲求最佳解的必要條件,我們對求 $L$ 每一個 $K_k$ ($k=1,2,...,n$) 之偏導數並令其為零,注意到在此我們須對雙重加總求導,一般常用的結果為以下 FACT:

==========
FACT: 有限雙重加總的求導
$$
\frac{\partial}{\partial x_k} \sum_{i, j} a_{i j} x_i x_j
   = \sum_{i, j} a_{i j}
             \left( \frac{\partial x_i}{\partial x_k} x_j
                      + x_i \frac{\partial x_j}{\partial x_k} \right)
   = \sum_j a_{k j} x_j + \sum_i a_{i k} x_i
$$==========

故利用上述 FACT ,我們首先對 Lagragian $L$ 的第一項雙重加總取導可得
\begin{align*} \frac{\partial }{{\partial {K_k}}}\sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n {{K_i}{K_j}Cov\left( {{r_i},{r_j}} \right)} } &= \sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n {Cov\left( {{r_i},{r_j}} \right)\left( {\frac{\partial }{{\partial {K_k}}}{K_i}{K_j}} \right)} } \hfill \\ &= \sum\limits_{i = 1}^n {\sum\limits_{j = 1}^n {Cov\left( {{r_i},{r_j}} \right)\left( {\frac{{\partial {K_i}}}{{\partial {K_k}}}{K_j} + {K_i}\frac{{\partial {K_j}}}{{\partial {K_k}}}} \right)} } \hfill \\ &= \sum\limits_{j = 1}^n {Cov\left( {{r_k},{r_j}} \right){K_j}} + \sum\limits_{i = 1}^n {Cov\left( {{r_i},{r_k}} \right){K_i}} \hfill \\ \end{align*}
利用 $Cov(r_i, r_j) = Cov(r_j, r_i)$ 的對稱性,我們可以計算出對 Lagragian  $L$ 的求導:
\[\begin{gathered}
  \frac{\partial }{{\partial {K_k}}}L = \frac{1}{2}\left( {\sum\limits_{j = 1}^n {Cov\left( {{r_k},{r_j}} \right){K_j}}  + \sum\limits_{i = 1}^n {Cov\left( {{r_i},{r_k}} \right){K_i}} } \right) - \lambda E[{r_k}] - \mu  \hfill \\
   = \sum\limits_{i = 1}^n {Cov\left( {{r_k},{r_i}} \right){K_i}}  - \lambda E[{r_k}] - \mu  \hfill \\
\end{gathered} \]令此式為零可得 $n$ 條等式:
\[\frac{\partial }{{\partial {K_k}}}L = \sum\limits_{i = 1}^n {Cov\left( {{r_k},{r_i}} \right){K_i}}  - \lambda E[{r_k}] - \mu : = 0, k=1,2,...,n\]
現在總結以上討論,我們得到以下結果:


給定期望報酬 $\widehat{r}$ 對各項資產之權重 $K_i$ $(i=1,2,..,n)$ 組成之投資組合可達成最小化變異的必要條件為 $K_i, \lambda, \mu$ 同時滿足下列 $n+2$ 條等式:
\[\left\{ \begin{align*}
  & \sum\limits_{i = 1}^n {Cov\left( {{r_k},{r_i}} \right){K_i}}  - \lambda E[{r_k}] - \mu  = 0,\;\;\; k=1,2,...,n \hfill \\
 & \sum\limits_{i = 1}^n {{K_i}} E[{r_i}] = \hat r \hfill \\
 & \sum\limits_{i = 1}^n {{K_i}}  = 1 \hfill \\
\end{align*}  \right.\]
一般而言,我們有 $n+2$ 條等式與 $n+2$ 個變數,依照線性代數基本定理可知若這些式子滿足 full row & colum rank條件,則上述方程組有解 $\{(K_1,K_2,...,K_n), \lambda, \mu\}$ 且此組解為唯一解。


Example: 不相關資產的例子:
假設有三種互不相關的資產,且假設
$$E[r_1] = 1, E[r_2] = 2, E[r_3] = 3
$$與
$$Var(r_1) = Var(r_2) = Var(r_3) = 1$$
且因為互不相關,各資產之間共變異為 $Cov(r_i,r_j) =0, \; \forall i,j=1,2,3, i \neq j$。

(a) 試求投資組合的風險變異 $Var[r_p]$ 與期望報酬 $E[r_p]$
(b) 現在給定任意 $\widehat{r}$ 試求出 $K_1^*,K_2^*,K_3^*$ 使得我們達成最小變異投資組合且滿足 $\sum_{i=1}^3 K_i = 1$ 且 $E[r_p] = \widehat{r}$。
(c) 利用part(b) 之解,試問最小變異之值為何?

Solution (a)
計算投資組合的期望報酬與變異如下:\[\begin{array}{l}
E[{r_p}] = {K_1}E[{r_1}] + {K_1}E[{r_1}] + {K_1}E[{r_1}]\\
 = {K_1} + 2{K_1} + 3{K_1}
\end{array}\]
同理
\[\begin{array}{l}
Var[{r_p}] = \sum\limits_{i = 1}^3 {\sum\limits_{j = 1}^3 {{K_i}{K_j}Cov\left( {{r_i},{r_j}} \right)} } \\
 = {K_1}{K_1}Cov\left( {{r_1},{r_1}} \right) + {K_2}{K_2}Cov\left( {{r_2},{r_2}} \right) + {K_3}{K_3}Cov\left( {{r_3},{r_3}} \right)\\
 = {K_1}^2 + {K_2}^2 + {K_3}^2
\end{array}\]

Solution (b)
定義 Lagrange Multiplier $\mu,\lambda$ ,並使用前述討論的結果
\[\begin{array}{l}
\left\{ \begin{array}{l}
\sum\limits_{i = 1}^n {Cov\left( {{r_k},{r_i}} \right){K_i}}  - \lambda E[{r_k}] - \mu  = 0,\;\;\;k = 1,2,...,n\\
\sum\limits_{i = 1}^n {{K_i}} E[{r_i}] = \hat r\\
\sum\limits_{i = 1}^n {{K_i}}  = 1
\end{array} \right.\\
 \Rightarrow \left\{ \begin{array}{l}
Cov\left( {{r_1},{r_1}} \right){K_1} - \lambda E[{r_1}] - \mu  = 0\\
Cov\left( {{r_2},{r_2}} \right){K_2} - \lambda E[{r_2}] - \mu  = 0\\
Cov\left( {{r_3},{r_3}} \right){K_3} - \lambda E[{r_3}] - \mu  = 0\\
{K_1}E[{r_1}] + {K_2}E[{r_2}] + {K_3}E[{r_3}] = \hat r\\
{K_1} + {K_2} + {K_3} = 1
\end{array} \right.\\
 \Rightarrow \left\{ \begin{array}{l}
{K_1} - \lambda  - \mu  = 0\\
{K_2} - 2\lambda  - \mu  = 0\\
{K_3} - 3\lambda  - \mu  = 0\\
{K_1} + 2{K_2} + 3{K_3} = \hat r\\
{K_1} + {K_2} + {K_3} = 1
\end{array} \right.
\end{array}\]上式可改寫為矩陣形式如下
\[\left\{ \begin{array}{l}
{K_1} - \lambda  - \mu  = 0\\
{K_2} - 2\lambda  - \mu  = 0\\
{K_3} - 3\lambda  - \mu  = 0\\
{K_1} + 2{K_2} + 3{K_3} = \hat r\\
{K_1} + {K_2} + {K_3} = 1
\end{array} \right. \Rightarrow \left[ {\begin{array}{*{20}{c}}
1&0&0&{ - 1}&{ - 1}\\
0&1&0&{ - 2}&{ - 1}\\
0&0&1&{ - 3}&{ - 1}\\
1&2&3&0&0\\
1&1&1&0&0
\end{array}} \right]\left[ {\begin{array}{*{20}{c}}
{{K_1}}\\
{{K_2}}\\
{{K_3}}\\
\lambda \\
\mu
\end{array}} \right] = \left[ \begin{array}{l}
0\\
0\\
0\\
{\hat r}\\
1
\end{array} \right]\]上述等式左方之矩陣為 full rank 反矩陣存在,故
\[\begin{array}{l}
\left[ {\begin{array}{*{20}{c}}
{{K_1}}\\
{{K_2}}\\
{{K_3}}\\
\lambda \\
\mu
\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}
{1/6}&{ - 1/3}&{1/6}&{ - 1/2}&{4/3}\\
{ - 1/3}&{2/3}&{ - 1/3}&0&{1/3}\\
{1/6}&{ - 1/3}&{1/6}&{1/2}&{ - 2/3}\\
{1/2}&0&{ - 1/2}&{1/2}&{ - 1}\\
{ - 4/3}&{ - 1/3}&{2/3}&{ - 1}&{7/3}
\end{array}} \right]\left[ \begin{array}{l}
0\\
0\\
0\\
{\hat r}\\
1
\end{array} \right]\\
 \Rightarrow \left\{ \begin{array}{l}
{K_1}^* =  - \hat r/2 + 4/3\\
{K_2}^* = 1/3\\
{K_3}^* = \hat r/2 - 2/3
\end{array} \right.
\end{array}\]上述 $K_1,K_2,K_3$ 即為最佳解 (最小變異解)

Solution (c)
將 par(b) 的最佳解結果代回組合變異:
\[\begin{array}{l}
Var[{r_p}] = {K_1}^2 + {K_2}^2 + {K_3}^2\\
 \Rightarrow Var{[{r_p}]^*} = {\left( {\frac{{ - \hat r}}{2} + \frac{4}{3}} \right)^2} + {\left( {\frac{1}{3}} \right)^2} + {\left( {\frac{{\hat r}}{2} - \frac{2}{3}} \right)^2} = \frac{1}{2}(\hat r - 4)\hat r + \frac{7}{3}
\end{array}\]我們可進一步繪製 $\bar{r}$ vs $\sigma$ 如下圖所示 (這裡我們取標準差 $\sigma := \sqrt{Var(\cdot)}$ )

觀察上圖可以發現當 $\widehat{r} = 2$,我們可得到最小變異。

Comments:
一般金融文獻或者投資學文獻通常不繪製上圖,他們會將 x 軸定為風險 (亦即 $\sigma$) 並將 $y$ 軸定為 報酬。亦即一般繪製成類似 "子彈" 的形狀如下:


注意到此曲線的上半部稱為 efficient frontier,亦即給定任意報酬 $\widehat{r}$,上半部可得到較小風險。

留言

這個網誌中的熱門文章

[數學分析] 什麼是若且唯若 "if and only if"

數學上的 if and only if  ( 此文不討論邏輯學中的 if and only if,只討論數學上的 if and only if。) 中文翻譯叫做  若且唯若 (or 當且僅當) , 記得當初剛接觸這個詞彙的時候,我是完全不明白到底是甚麼意思,查了翻譯也是愛莫能助,畢竟有翻跟沒翻一樣,都是有看沒有懂。 在數學上如果看到 if and only if  這類的句子,其實是表示一種 雙條件句 ,通常可以直接將其視為" 定義(Definition)" 待之,今天要分享的是這樣的一個句子如何用比較直觀的方法去看他 假設我們現在有 兩個邏輯陳述句 A 與  B. 注意到,在此我們不必考慮這兩個陳述句到底是什麼,想表達什麼,或者到底是否為真(true),這些都不重要。只要知道是兩個陳述即可。 現在,考慮新的陳述:  "A if and only if B" 好了,現在主角登場,我們可以怎麼看待這個句子呢? 事實上我們可以很直覺的把這句子拆成兩部分看待,也就是 "( A if B ) and ( A only if B )" 那麼先針對第一個部分  A if B  來看, 其實這句就是說  if B then A, 更直白一點就是 "if B is true, then A is also true".  在數學上等價可以寫為 "B implies A" .  或者更常用一個箭頭符號來表示 "B $\Rightarrow$  A"  現在針對第二個部分  A only if B 此句意指  "If B is not true, then A is also not true". 所以如果已知 A is true,  那麼按照上句不難推得 B is also true 也就是說  A only if B  等價為 "If A is true then B is also true". 同樣,也可以寫作   "A implies B"   或者用箭頭表示  "A   $\Rightarrow$     B".

[數學分析] 淺談各種基本範數 (Norm)

這次要介紹的是數學上一個重要的概念: Norm: 一般翻譯成 範數 (在英語中 norm 有規範的意思,比如我們說normalization就是把某種東西/物品/事件 做 正規化,也就是加上規範使其正常化),不過個人認為其實翻譯成 範數 也是看不懂的...這邊建議把 Norm 想成長度就好 (事實上norm是長度的抽象推廣), 也許讀者會認為好端端的長度不用,為何又要發明一個 norm 來自討苦吃?? 既抽象又艱澀。 事實上想法是這樣的: 比如說現在想要比較兩個數字 $3$ , $5$ 之間的大小,則我們可以馬上知道 $ 3 < 5 $;同樣的,如果再考慮小數與無理數如 $1.8753$ 與 $\pi$,我們仍然可以比較大小 $1.8753 < \pi = 3.1415...$ 故可以發現我們有辦法對 "純量" 做明確的比大小,WHY? 因為前述例子中 $3$, $5$, $1.8753$ or $\pi$ 其各自的大小有辦法被 "measure "! 但是如果是現在考慮的是一組數字 我們如何去measure 其大小呢?? 比如說 \[x:=[1, -2, 0.1, 0 ]^T \]上式的大小該是多少? 是 $1$? $-2$? $0.1$??? 再者如果更過分一點,我們考慮一個矩陣 \[A = \left[ {\begin{array}{*{20}{c}} 1&2\\ 3&4 \end{array}} \right] \],想要知道這個矩陣的大小又該怎麼辦?? 是 $1$ ? $2$ 還是 $4$ ?..其實現階段我們說不清楚。 也正是如此,可以發現我們確實需要新的 "長度" 的定義來幫助我們如何去 measure 矩陣/向量/甚至是函數的大小。 故此,我們首先定義甚麼是Norm,(也就是把 "長度" or "大小" 的本質抽離出來) ================== Definition: Norm 考慮 $V$ 為一個向量空間(Vector space),則我們說  Norm 為一個函數 $||\cdot|| : V \rightarrow \mathbb{R}$ 且滿足下列性質