風險是與收益相對應的概念,正是因為市場具有波動性,既有獲得收益的可能,也有可能造成損失的可能,造成損失的可能就是風險。在風險管理當中我們看重的是風險,而風險的來源是 不確定性 ,也即是 波動 。雖然是不確定性,但是假如我們給定壹定的假設,建立壹套模型,可以在某種程度上理解風險出現的可能性以及對我們造成的影響,不壹定能避免風險,但是能夠增加對它的理性認識。有三個問題是我們要思考的:
關於第壹個問題在上小節已經說過,那麽說壹下如何測度風險。風險度量工具常用有:
VaR指的是在壹定置信區間內和壹定時間內的 最大損失金額 。
舉個例子。某個銀行發行某壹種基金或者資產組合,它在1天期限內的99%的風險度量VaR為6000萬元。
關於這點可以有以下三種理解:
繪制概率密度圖
上圖畫的是壹個標準正態分布分布,從-3到3.
其中95%的置信區間對應的分位點即是VaR值,所以VaR值是相對於沒有損失風險的壹個分位數。
繪制累積分布函數
VaR有自身的缺點,不滿足次可加性原則(關於次可加性我還是不是很理解),所以沒有辦法計算資產組合的VaR值。同時對於尾部的刻畫,我們壹無所知,也就是我們關心的是置信區間裏面的事,但是對於萬壹我們確實損失值出現在了置信區間以外的話,這個損失的尾部分布是如何的呢?期望又是如何?這點VaR沒有辦法告訴我們,但是ES可以彌補以上兩個缺點。
ES是指損失超過了VaR以後,尾部損失的壹個 期望值 。計算公式如下:
照理來說,給定壹定的置信區間和時間T,對照著正態分布的表格應該可以查找出對應的VaR值。但實際上收益率的分布並不滿足正態分布,但是模型的作用並不是反映出細枝末節,而是給定壹定的前提假設,這個模型能夠有多大程度能夠接近現實?
對於壹個投資組合,Delta-normal方法的前提假設有兩個:
從以上這個假設我們知道了 資產的收益率組合是滿足正態分布的 ,而我們要求VaR,根據概念就是把這個 正態分布的分位數 找出來。我們知道,正態分布最重要的兩個參數是均值還有標準差(或者方差),分別決定了分布的平移和拉伸壓縮。在這裏我們用標準差,不用方差,原因是標準差與均值具有相同的單位。在經濟學或者風險管理當中,統計學當中的sigma通常叫做 波動率 ,實際上是壹個意思。
假設我們有價值為1的資產組合,給定置信區間為c,收益率的均值為0(標準正態分布的收益率為0)那麽計算未來壹天的
在這裏alpha是可以通過置信水平找出來的,關鍵在於波動率sigma怎麽求?所以接下來的重點在如何通過歷史估算投資資產收益率的波動率。
建模之前,我們需要了解的是,我們是根據歷史來建模的,也就是認為過去歷史是包含著壹定的趨勢的,並且這個趨勢是會延續下去的(但我們知道隨時可能會有新的沖擊),並且我們要理解模型是為了刻畫出數據的趨勢的,真實數據與預測值之間會有殘差,但真實數據扣除掉預測值之後留下的殘差應該是隨機波動的,也就是它們不會有相關性,這樣才能說我們這個模型把數據的趨勢挖掘得夠徹底了。
假如收益率序列為rt,rt是由兩部分組成的:本身的均值ut以及隨機擾動項at。表示如下:
,其中ut是滿足ARMA(p, q)模型的,也就是前面壹項是p個滯後項的歷史收益率的自回歸項,後面壹項是q個滯後項的移動平均項。如下表示:
ARCH(p)模型假設:
t時刻的擾動項
與ARCH模型不同的是,除了有擾動項的線性組合外,還有q項歷史滯後項sigma的移動平均項。
GARCH(p, q)模型假設:
其中擾動項的因子varepsilon t範圍是(0, 1),
RiskMetrics是JP Morgan提出的風險度量技術,這裏只涉及簡單形式。這個方法認為的是,對於t時刻的擾動項 ,給定t-1時刻的信息,那麽 是滿足正態分布的。其中,sigma的表示方法如下:
接下來我們要通過谷歌五年的歷史數據預測未來壹周內可能遭受的最大損失和損失的平均值。
首先獲取數據:
然後我們接下來要用到rugarch這個工具包,可以通過install.packages()這個方法來安裝。
接下來我們將損失變量求出來,把負對數收益率百分比化後作為損失變量
建模包括兩部分:均值方程和波動方程。均值方程是滿足ARMA(p, q)模型,因此要進行建立ARMA(p, q)模型壹般的步驟:
對於波動方程則首先要檢驗ARCH效應,也即是檢驗殘差項是否二次相關。
在這裏說明壹下,其實我們做了這麽多,都是在提純 相關性 ,ARMA刻畫的是線性相關,而GARCH刻畫的是非線性相關性。我們在 不斷地剔除掉相關性 ,這樣當相關性被完全剔除掉之後,剩下的就是隨機波動的白噪聲,比如在這裏最後的ARCH模型建立完之後最後壹個要做的就是扣除掉殘差的殘差後,是否剩下來的白噪聲是滿足壹定的分布(比如GARCH就要求滿足正態分布,只有這樣,我們才能相信這樣的白噪聲是天然就存在的噪音,沒有包含主要信息)。我們在前面建立了ARMA模型之後,剔除的是線性相關性,但是剩下來跟均值的差(也就是差異)是壹個波動,根據我們上面提到的GARCH模型,它是可能存在著二次序列相關的,所以我們在GARCH模型建模的時候,相當於對這部分波動進行二次相關性的擬合(跟ARMA建模是壹樣的操作),然後再檢驗上壹步ARMA的'殘差'的殘差是否還具有相關性,如果沒有了,就說明相關性刻畫完全了,否則還得重新選擇參數,建立更好的GARCH模型去擬合這部分殘差。然後最後扣除所有相關性到最後,就是白噪聲了,要看這個白噪聲是否真的那麽無辜,所以就看它是否滿足正態分布。
在這裏的話,其實收益率的自相關性是十分微弱的(否則人人都可以輕松預測套利),所以就不必建立ARMA模型,直接以算術平均值來代替均值方程,接下來會重點建立GARCH模型。
我們直接運用GARCH(1, 1)模型,關於模型的選擇壹般p,q不超過2,關於模型選擇和檢驗這裏不做探討。
我們可以看到我們的ugarch模型當中的均值方程的參數mean.model設置的階次p,q為(0, 0),並且包含了均值項,說明我們這裏以簡單的算術平均值作為均值方程。variance.model的波動方程的階次p, q設為(1, 1),然後根據歷史損失率來建模,向前5步預測壹周的情況,設置n.ahead=5。
輸出結果
,然後我們就可以計算VaR還有ES。
輸出結果
這就說明在95%的置信水平下,5天裏面最大可能損失不超過?1000000 x 4.755209% =?4755209,發生損失的均值為?1000000 x 5.963223% =?5963223
在這裏我多補充壹下,原本有點不太理解ES的計算,我們在這裏仔細看壹下其實qnorm(0.95)就是返回95%置信水平下的分位數,dnorm函數則是返回這個分位數下的密度概率,0.05則是尾部的累積概率(可以理解為95%置信水平之後所有可能發生的損失值,也就是左邊的那塊面積),所以人如其名,尾部均值就是求在0.95對應的分位點下的概率與對應的損失大小占總的左邊的那塊面積的大小(可以理解為最終發生的損失既跟發生的概率有關也跟該概率下發生損失的大小有關)。
作為壹個整體,其實我們也可以先預測1天的sigma,然後乘以sqrt(5),結果稍微有些不同。
在這裏RiskMetrics的建模方式和GARCH的建模方式是相同的,不同的在於要選擇參數(p, q)為(1, 1),並且沒有漂移項alpha0,在模型的參數model選擇'igarch'即可。
輸出結果
這就說明在95%的置信水平下,5天裏面最大可能損失不超過?1000000 x 3.828855% =? 3828855,發生損失的均值為?1000000 x 4.801539% =?4801539
在這裏的計算結果與GARCH模型預測的結果是有差異的,說明模型和參數(p, q)的選擇對計算結果是有影響的。
在這篇文章當中,我們介紹了VaR和ES的概念,GARCH模型,ARCH模型以及RiskMetrics方法計算VaR和ES的方法和流程,關鍵點在於對波動率的擬合,除了要知道怎麽計算,還要知道什麽時候能用這個模型。