R語言風(fēng)險(xiǎn)價(jià)值:ARIMA,GARCH,Delta-normal法滾動(dòng)估計(jì)VaR(Value at Risk)和回測(cè)分
全文鏈接:http://tecdat.cn/?p=24492
最近我們被客戶要求撰寫關(guān)于風(fēng)險(xiǎn)價(jià)值的研究報(bào)告,包括一些圖形和統(tǒng)計(jì)輸出。
此分析的目的是構(gòu)建一個(gè)過程,以在給定時(shí)變波動(dòng)性的情況下正確估計(jì)風(fēng)險(xiǎn)價(jià)值。風(fēng)險(xiǎn)價(jià)值被廣泛用于衡量金融機(jī)構(gòu)的市場(chǎng)風(fēng)險(xiǎn)。我們的時(shí)間序列數(shù)據(jù)包括 1258 天的股票收益
介紹
為了解釋每日收益率方差的一小部分,我們使用 Box-Jenkins 方法來擬合自回歸綜合移動(dòng)平均 (ARIMA) 模型,并測(cè)試帶下劃線的假設(shè)。稍后,當(dāng)我們尋找替代方案、最佳擬合分布形式時(shí),我們會(huì)檢查收益率的正態(tài)性。我們使用廣義自回歸異方差 (GARCH) 方法估計(jì)殘差的條件方差,并將其與 delta-normal 方法進(jìn)行比較。
數(shù)據(jù)
出于建模過程的目的,我們每天收集了 5 年(2013 年 2 月至 2018 年 2 月)的花旗公司股票(共 1259 個(gè)觀察樣本)。
?#?加載庫library(tidyverse)#?加載數(shù)據(jù)read.csv('stock.csv',?header?=?T)#?每只股票一欄plot(?y?=?stok$C?,?geo?=?'line')

紅線表示此特定時(shí)間范圍內(nèi)的平均收盤價(jià)。
非平穩(wěn)過程具有隨時(shí)間變化的均值、方差和協(xié)方差。使用非平穩(wěn)時(shí)間序列數(shù)據(jù)會(huì)導(dǎo)致預(yù)測(cè)不可靠。平穩(wěn)過程是均值回歸的,即它在具有恒定方差的恒定均值附近波動(dòng)。在我們的例子中,平穩(wěn)性是指平穩(wěn)時(shí)間序列滿足三個(gè)條件的弱平穩(wěn)性:

為了解決這個(gè)問題,我們主要使用差分法。一階差分可以描述為

對(duì)于平穩(wěn)性變換,我們更傾向于計(jì)算簡單的日收益,表示如下

ret?=?diff(stoks$C)?/?socs$C[-legth]?plot(x?=?1:length,?y?=?res?)

為了驗(yàn)證收益率的平穩(wěn)性,我們使用了 Dickey-Fuller 檢驗(yàn),其中零假設(shè)表示非平穩(wěn)時(shí)間序列。
點(diǎn)擊標(biāo)題查閱往期內(nèi)容

Python計(jì)算股票投資組合的風(fēng)險(xiǎn)價(jià)值(VaR)

左右滑動(dòng)查看更多
01

02

03

04

adf.test(ret)

小的 P 值 (<0.01) 表明有足夠的證據(jù)拒絕原假設(shè),因此時(shí)間序列被認(rèn)為是平穩(wěn)的。
Box-Jenkins 方法
對(duì)于時(shí)間序列分析,Box-Jenkins 方法應(yīng)用 ARIMA 模型來找到代表生成時(shí)間序列的隨機(jī)過程的時(shí)間序列模型的最佳擬合。該方法使用三階段建模方法:a)?識(shí)別,b)?估計(jì),c)?診斷檢查。
識(shí)別
要使用 Box-Jenkins 方法,我們必須確保時(shí)間序列是平穩(wěn)的。在我們的例子中,我們使用我們?cè)谇耙徊糠种幸呀?jīng)檢查過平穩(wěn)性的股票的收益率。此外,基于自相關(guān)函數(shù) (ACF) 和偏自相關(guān)函數(shù) (PACF),可以確定 ARIMA 模型的 p、d 和 q 階。識(shí)別模型的另一種方法是 Akaike 信息準(zhǔn)則 (AICc)。AIC 估計(jì)每個(gè)模型相對(duì)于其他每個(gè)模型的質(zhì)量。

其中
∑u^2= 殘差平方和
T = 觀察次數(shù)
k = 模型參數(shù)的數(shù)量 (p + q + 1)
很明顯,當(dāng)模型中加入額外的滯后參數(shù)時(shí),殘差總和會(huì)減少,但可能會(huì)出現(xiàn)過擬合的問題。AIC 處理過擬合和欠擬合的風(fēng)險(xiǎn)。將選擇 AIC 最低的模型。
auto.arima(rets?)

可以通過上面的過程觀察到我們計(jì)算了各種 ARIMA 模型的 AIC ,并且我們推斷出合適的模型是?二階自回歸 (AR(2))。
估計(jì)
為了估計(jì)參數(shù)的系數(shù),我們使用最大似然。使用ARIMA(2, 0, 0)作為選擇模型,結(jié)果如下:
model

因此,該過程可以描述為:
rt=0.0437?rt?1?0.0542?rt?2+?t 其中 ?t 是白噪聲
診斷檢查
該程序包括觀察殘差圖及其 ACF & PACF 圖,并檢查 Ljung-Box 測(cè)試結(jié)果。如果模型殘差的 ACF 和 PACF 沒有顯示顯著滯后,則所選模型是合適的。
ggtsdisplay(plot)

ACF 和 PACF 圖很相似,自相關(guān)似乎為零。右下角圖表示殘差與正態(tài)分布 N(0, σ2σ2) 相比的直方圖。
為了進(jìn)一步檢驗(yàn)殘差不相關(guān)的假設(shè),我們執(zhí)行 Ljung-Box 檢驗(yàn)。

QLB統(tǒng)計(jì)量不對(duì)稱地遵循具有 mpq 自由度的 X2 分布。零假設(shè)是指 H0:ρ1=ρ2=?=ρm=0
Box.test(resiuas)

我們不能拒絕原假設(shè),因此殘差的過程表現(xiàn)得像白噪聲,所以沒有可能被建模。
GARCH 實(shí)現(xiàn)
盡管殘差的 ACF 和 PACF 沒有顯著滯后,但殘差的時(shí)間序列圖顯示出一些集群波動(dòng)。重要的是要記住,ARIMA 是一種對(duì)數(shù)據(jù)進(jìn)行線性建模的方法,并且預(yù)測(cè)寬度保持不變,因?yàn)樵撃P筒粫?huì)反映最近的變化或包含新信息。為了對(duì)波動(dòng)性進(jìn)行建模,我們使用自回歸條件異方差 (ARCH) 模型。ARCH 是時(shí)間序列數(shù)據(jù)的統(tǒng)計(jì)模型,它將當(dāng)前誤差項(xiàng)的方差描述為先前時(shí)間段誤差項(xiàng)實(shí)際大小的函數(shù)。
我們假設(shè)感興趣的時(shí)間序列 rtrt 被分解為兩部分,可預(yù)測(cè)和不可預(yù)測(cè)部分,

其中 It?1 是時(shí)間 t?1 的信息集,并且?
??t 是不可預(yù)測(cè)的部分。
不可預(yù)測(cè)的成分,可以表示為以下形式的 GARCH 過程:
其中 zt 是一個(gè)均值為零且方差等于 1 的獨(dú)立同分布隨機(jī)變量序列。?t的條件方差是 σt,它是時(shí)間 t?1信息集的時(shí)變函數(shù)。
下一步是定義誤差項(xiàng)分解的第二部分,即條件方差 σt。對(duì)于這樣的任務(wù),我們可以使用 GARCH(1, 1) 模型,表示為:
當(dāng)殘差平方相關(guān)時(shí),GARCH 過程有效。ACF 和 PACF 圖清楚地表明顯著相關(guān)性。
另一種檢驗(yàn)平方殘差異方差性的方法是對(duì) a1 和 β1參數(shù)進(jìn)行顯著性檢驗(yàn)。
#模型定義ugarchpec(varin?,?????????????????????????mean.model??fit(sec?=?model.spec?')
a1和 β1都顯著不同于零,因此假設(shè)殘差隨時(shí)間變化的波動(dòng)率是合理的。
σt?12 項(xiàng)的連續(xù)替換,GARCH 方程可以寫為:
當(dāng)我們用優(yōu)化給出的系數(shù)估計(jì)替換時(shí),我們得到以下等式:
鑒于 0<β1<1,隨著滯后的增加,殘差平方的影響減小。
風(fēng)險(xiǎn)價(jià)值
風(fēng)險(xiǎn)價(jià)值(VaR)是一種基于當(dāng)前頭寸的下行風(fēng)險(xiǎn)的統(tǒng)計(jì)量度。它估計(jì)在正常的市場(chǎng)條件下,一組投資在設(shè)定的時(shí)間段內(nèi)可能會(huì)有多少損失。?
VaR 統(tǒng)計(jì)具有三個(gè)組成部分:a)?時(shí)間段,b)?置信水平,c)?損失金額(或損失百分比)。對(duì)于 95% 的置信水平,我們可以說最壞的每日損失不會(huì)超過 VaR 估計(jì)。如果我們使用歷史數(shù)據(jù),我們可以通過取 5% 的分位數(shù)值來估計(jì) VaR。對(duì)于我們的數(shù)據(jù),這個(gè)估計(jì)是:
quante(res?,?0.05)
qplot(ret)
紅色條表示低于 5% 分位數(shù)的收益率。
分布特征
為了估計(jì) VaR,我們需要正確定義假設(shè)分布的相應(yīng)分位數(shù)。對(duì)于正態(tài)分布,對(duì)應(yīng)于 a = 5% 的分位數(shù)為 -1.645。經(jīng)驗(yàn)證據(jù)表明,正態(tài)性假設(shè)通常會(huì)產(chǎn)生較弱的結(jié)果。Jarque-Bera 檢驗(yàn)可以檢驗(yàn)股票收益服從正態(tài)分布的假設(shè)。
其中 S 是偏度,C 是峰度。正態(tài)分布樣本將返回JB 分?jǐn)?shù)。低 p 值表明股票收益不是正態(tài)分布的。
ja.tst(rets)
qplot(ret?,?gom?=?'desity')?+?geom_density
在上圖中,顯示了股票收益(藍(lán)色)和正態(tài)分布數(shù)據(jù)(紅色)的密度圖。下圖的垂直線代表 a = 0.05(淺綠色)和 a = 0.01(深綠色)的正常對(duì)應(yīng)分位數(shù)。下圖表明對(duì)于 95% 的顯著性,使用正態(tài)分布可能會(huì)高估風(fēng)險(xiǎn)值。但是,對(duì)于 99% 的顯著性水平,正態(tài)分布會(huì)低估風(fēng)險(xiǎn)。
學(xué)生的 t 分布
為了更充分地模擬尾部的厚度,我們可以對(duì)股票收益使用其他分布假設(shè)。t 分布是對(duì)稱的鐘形分布,就像正態(tài)分布一樣,但尾部較重,這意味著它更容易產(chǎn)生遠(yuǎn)離其均值的值。我們使用_rugarch 包中_的?fitdist?函數(shù)??來獲取 t 分布的擬合參數(shù)。
fitdispars
cat("對(duì)于 a =?0.05,正態(tài)分布的分位數(shù)值為:"?,?????qnorm(p?=?0.05)?,?"\n"?,)
正如我們所觀察到的,95% 顯著性水平的分位數(shù)表明正態(tài)分布高估了風(fēng)險(xiǎn),但 99% 未能發(fā)現(xiàn)異常值的存在,因此發(fā)生了對(duì)風(fēng)險(xiǎn)的低估。
Garch VaR 和Delta-normal 方法
Delta-normal?方法假設(shè)所有股票收益都是正態(tài)分布的。這種方法包括回到過去并計(jì)算收益的方差。風(fēng)險(xiǎn)價(jià)值可以定義為:

其中 μ 是平均股票收益,σ 是收益的標(biāo)準(zhǔn)差,a 是選定的置信水平,N?1 是逆 PDF 函數(shù),生成給定 a 的正態(tài)分布的相應(yīng)分位數(shù)。
這種簡單模型的結(jié)果常常令人失望,如今很少在實(shí)踐中使用。正態(tài)性和恒定每日方差的假設(shè)通常是錯(cuò)誤的,我們的數(shù)據(jù)也是如此。
之前我們觀察到收益率表現(xiàn)出隨時(shí)間變化的波動(dòng)性。因此,對(duì)于 VaR 的估計(jì),我們使用 GARCH(1,1) 模型給出的條件方差。我們使用學(xué)生的 t 分布。對(duì)于此方法,風(fēng)險(xiǎn)價(jià)值表示為:


?是給定 t?1 信息的條件標(biāo)準(zhǔn)偏差,并且?

?是 t 分布的逆 PDF 函數(shù)。
qplot(y?=?rets?,?gom?=?'point')?+?gem_pnt(col?=?'lihtgrson')

紅線表示 GARCH 模型產(chǎn)生的 VaR,藍(lán)線表示 delta-normal VaR。
VaR預(yù)測(cè)
該?ugarchroll?方法允許執(zhí)行的模型/數(shù)據(jù)集組合的滾動(dòng)估計(jì)和預(yù)測(cè)。它返回計(jì)算預(yù)測(cè)密度的任何所需度量所需的分布預(yù)測(cè)參數(shù)。我們將最后 500 個(gè)觀測(cè)值設(shè)置為測(cè)試集,并對(duì)條件標(biāo)準(zhǔn)偏差進(jìn)行滾動(dòng)移動(dòng) 1 步預(yù)測(cè),?

. 我們每 50 次觀察重新估計(jì) GARCH 參數(shù)。
roll?=?garhrol(spec?=?model.spec?)?#測(cè)試集?500?個(gè)觀察mean(ret)?+?rolldesiy[,'Siga']*qdist(dis='std',
回測(cè)
讓?

?是 T 期間股票收益率低于 VaR 估計(jì)值的天數(shù),其中如果

? It 為?1,??和?如果?

?,?It 為?0?. 因此,N 是樣本中觀察到的異常數(shù)。正如 Kupiec (1995) 所論證的那樣,失敗數(shù)遵循二項(xiàng)式分布 B(T, p)。
for(i?in?1:50?p[i]=?(pbinom(q?=?(i-1?)?-?pbinom(q?))qplot(y?=?p?)

上圖表示由二項(xiàng)式分布給出的異常概率分布。預(yù)期數(shù)量為 25 (=500obs. x 5%)。兩條紅線表示 95% 的置信水平,較低的是?16??,較高的是?35。因此,當(dāng)我們檢查測(cè)試集上的異常時(shí),我們期望 16 到 35 之間的數(shù)字表明 GARCH 模型預(yù)測(cè)成功。
plot(VaR95,?geom?=?'line')?+????geom_point

黑線代表 GARCH 模型給出的每日預(yù)測(cè) VaR,紅點(diǎn)代表低于 VaR 的收益率。最后一步是計(jì)算異常的數(shù)量,并將其與使用 delta-normal 方法生成的異常進(jìn)行比較。
cat('delta-normal 方法的異常數(shù):',?(sum(rets[759:1258]?<?(mean(r]

正如我們之前所說,我們預(yù)計(jì) delta-normal 方法會(huì)高估風(fēng)險(xiǎn)?;販y(cè)時(shí),只有 14 倍的收益率低于 VaR 低于 95% 顯著性水平 (<16)。另一方面,在這種特殊情況下,GARCH 方法(23 個(gè)例外)似乎是一種有效的預(yù)測(cè)工具。
參考
Angelidis T., Benos A. and Degiannakis S. (December 2003). The Use of GARCH Models in VaR Estimation.

點(diǎn)擊文末?“閱讀原文”
獲取全文完整資料。
本文選自《R語言風(fēng)險(xiǎn)價(jià)值:ARIMA,GARCH,Delta-normal法滾動(dòng)估計(jì)VaR(Value at Risk)和回測(cè)分析股票數(shù)據(jù)》。


點(diǎn)擊標(biāo)題查閱往期內(nèi)容
R語言GARCH模型對(duì)股市sp500收益率bootstrap、滾動(dòng)估計(jì)預(yù)測(cè)VaR、擬合診斷和蒙特卡羅模擬可視化
R語言單變量和多變量(多元)動(dòng)態(tài)條件相關(guān)系數(shù)DCC-GARCH模型分析股票收益率金融時(shí)間序列數(shù)據(jù)波動(dòng)率
R語言中的時(shí)間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價(jià)格
GARCH-DCC模型和DCC(MVT)建模估計(jì)
R語言預(yù)測(cè)期貨波動(dòng)率的實(shí)現(xiàn):ARCH與HAR-RV與GARCH,ARFIMA模型比較
ARIMA、GARCH 和 VAR模型估計(jì)、預(yù)測(cè)ts 和 xts格式時(shí)間序列
PYTHON用GARCH、離散隨機(jī)波動(dòng)率模型DSV模擬估計(jì)股票收益時(shí)間序列與蒙特卡洛可視化
極值理論 EVT、POT超閾值、GARCH 模型分析股票指數(shù)VaR、條件CVaR:多元化投資組合預(yù)測(cè)風(fēng)險(xiǎn)測(cè)度分析
Garch波動(dòng)率預(yù)測(cè)的區(qū)制轉(zhuǎn)移交易策略
金融時(shí)間序列模型ARIMA 和GARCH 在股票市場(chǎng)預(yù)測(cè)應(yīng)用
時(shí)間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價(jià)格
R語言風(fēng)險(xiǎn)價(jià)值:ARIMA,GARCH,Delta-normal法滾動(dòng)估計(jì)VaR(Value at Risk)和回測(cè)分析股票數(shù)據(jù)
R語言GARCH建模常用軟件包比較、擬合標(biāo)準(zhǔn)普爾SP 500指數(shù)波動(dòng)率時(shí)間序列和預(yù)測(cè)可視化
Python金融時(shí)間序列模型ARIMA 和GARCH 在股票市場(chǎng)預(yù)測(cè)應(yīng)用
MATLAB用GARCH模型對(duì)股票市場(chǎng)收益率時(shí)間序列波動(dòng)的擬合與預(yù)測(cè)
R語言極值理論 EVT、POT超閾值、GARCH 模型分析股票指數(shù)VaR、條件CVaR:多元化投資組合預(yù)測(cè)風(fēng)險(xiǎn)測(cè)度分析
Python 用ARIMA、GARCH模型預(yù)測(cè)分析股票市場(chǎng)收益率時(shí)間序列
R語言中的時(shí)間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價(jià)格
R語言ARIMA-GARCH波動(dòng)率模型預(yù)測(cè)股票市場(chǎng)蘋果公司日收益率時(shí)間序列
Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模擬進(jìn)行股價(jià)預(yù)測(cè)
R語言時(shí)間序列GARCH模型分析股市波動(dòng)率
R語言ARMA-EGARCH模型、集成預(yù)測(cè)算法對(duì)SPX實(shí)際波動(dòng)率進(jìn)行預(yù)測(cè)
matlab實(shí)現(xiàn)MCMC的馬爾可夫轉(zhuǎn)換ARMA - GARCH模型估計(jì)
Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模擬進(jìn)行股價(jià)預(yù)測(cè)
使用R語言對(duì)S&P500股票指數(shù)進(jìn)行ARIMA + GARCH交易策略
R語言用多元ARMA,GARCH ,EWMA, ETS,隨機(jī)波動(dòng)率SV模型對(duì)金融時(shí)間序列數(shù)據(jù)建模
R語言股票市場(chǎng)指數(shù):ARMA-GARCH模型和對(duì)數(shù)收益率數(shù)據(jù)探索性分析
R語言多元Copula GARCH 模型時(shí)間序列預(yù)測(cè)
R語言使用多元AR-GARCH模型衡量市場(chǎng)風(fēng)險(xiǎn)
R語言中的時(shí)間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價(jià)格
R語言用Garch模型和回歸模型對(duì)股票價(jià)格分析
GARCH(1,1),MA以及歷史模擬法的VaR比較
matlab估計(jì)arma garch 條件均值和方差模型