拓端tecdat|R語言使用多元AR-GARCH模型衡量市場風險
原文鏈接:http://tecdat.cn/?p=19118
原文出處:拓端數(shù)據(jù)部落公眾號
?本文分析將用于制定管理客戶和供應商關系的策略準則。假設:
貴公司擁有用于生產(chǎn)和分銷聚戊二酸的設施,聚戊二酸是一種用于多個行業(yè)的化合物。
制造和分銷過程的投入包括各種石油產(chǎn)品和天然氣。價格波動可能非常不穩(wěn)定。
營運資金管理一直是一個挑戰(zhàn),最近匯率的走勢嚴重影響了資金。
您的CFO使用期貨和場外交易(OTC)工具對沖價格風險。
董事會感到關切的是,公司已連續(xù)第五個季度未能實現(xiàn)盈利預期。股東不高興。罪魁禍首似乎是商品銷售成本的波動。
示例
您應該問有哪些能源定價模式的關鍵業(yè)務問題?
您可以使用哪種方法來管理波動率?
這里有一些想法。關鍵業(yè)務問題可能是:
哪些輸入價格和匯率比其他輸入價格和匯率更不穩(wěn)定?何時?
價格走勢相關嗎?
在市場壓力時期,它們的走勢會有多動蕩?
是否有我們可以部署的套期工具或可以用來減輕定價風險?
管理波動
建立輸入監(jiān)視系統(tǒng),以了解哪些輸入會影響運行制造和分銷流程的哪些成本。
監(jiān)控價格走勢和特征,并按流程衡量對關鍵營業(yè)收入構成部分的影響的嚴重性。
內(nèi)置價格無法承受預警指標。
在本文中,我們將
使用波動率聚類
擬合AR-GARCH模型
從AR-GARCH模型模擬波動率
衡量風險
ARCH模型
我們已經(jīng)研究了波動性聚類。ARCH模型是對此進行建模的一種方法。
這些模型對于金融時間序列特別有用,因為金融時間序列顯示出較大的收益率變動時期以及相對平穩(wěn)的價格變化的間歇時期。
可以從z(t)標準正態(tài)變量和初始標準波動率開始指定AR + ARCH模型σ(t)2 = z(t)2。然后,我們用方差ε(t)=(sigma2)1 / 2z(t)ε的平方來調(diào)節(jié)這些變量。然后我們首先為每個日期計算t = 1 ... n,
使用該條件誤差項,我們計算自回歸
現(xiàn)在我們準備計算新的方差項。
n <- ?10500
z <- rnorm(n) ## 樣本標準正態(tài)分布變量
sig2 <- ?z^2 ##創(chuàng)建波動率序列
omega <- ?1 ## 方差
mu <- ?0.1 ## 平均收益率
omega/(1-alpha)
sqrt(omega/(1-alpha))
## [1] 2.222222
## [1] 1.490712
for (t in 2:n) ## 滯后于第二個日期開始
{
y[t] <- ?mu + phi*(y[t-1 -mu) + e[t] ## ?收益率
sig2[t+1] <- ?omega + alpha * e[t ^2 ## 生成新的sigma ^ 2。
結(jié)果沒有指導意義。
我們可以看到
條件標準偏差中較大的孤立峰
在ARCH圖中也顯示
估計
我們有多種方法來估計AR-ARCH過程的參數(shù)。首先,讓我們加載一些數(shù)據(jù)。
## 匯率數(shù)據(jù)是從OANDA獲得
data.1 <- na.omit(merge(EUR_USD, GBP_USD,
OIL_Brent))
P <- data.1
R <- na.omit(diff(log(P)) * 100)
然后,我們繪制數(shù)據(jù)自相關。
##
## ?Box-Ljung test
##
## data: ?Brent.r
## X-squared = 32.272, df = 14, p-value = 0.003664
純隨機性檢驗,p值小于5%,序列為非白噪聲
擬合
我們的第一項任務是ARMA-GARCH模型。
指定普通
sGarch
?模型。garchOrder = c(1,1)
?表示我們使用殘差平方和方差的一期滯后:
使用?
armaOrder = c(1,0)
?指定長期平均收益模型?
mean
如上述方程式中包括?。按照
norm
?正態(tài)分布?。我們還將使用赤池信息準則(AIC)將擬合與學生t分布進行比較?。使用將數(shù)據(jù)擬合到模型?
ugarchfit
。
ugarchspec(variance.model = list(model = "sGARCH",
garchOrder = c(1, 1)), mean.model = list(armaOrder = c(1,
0), include.mean = TRUE), distribution.model = "norm")
讓我們看一下該模型中的條件分位數(shù),也稱為VaR,設置為99%。
## 首先是條件分位數(shù)
plot(fit, which = 2)
現(xiàn)在,讓我們生成一個繪圖面板。
## ?數(shù)據(jù)acf-顯示序列相關
plot(fit , which = 6)
## 數(shù)據(jù)的QQ圖-顯示標準化殘基的峰度-不支持正態(tài)假設
## 標準化殘差的acf
## 平方標準殘差的acf
例子
讓我們重做GARCH估計,現(xiàn)在使用Student t分布。
## 用學生t分布擬合AR(1)-GARCH(1,1)模型
AR.GARCH.spec <- ugarchspec(variance.model = list(model = "sGARCH",
garchOrder = c(1, 1)), mean.model = list(armaOrder = c(1,
0), include.mean = TRUE), distribution.model = "std")
結(jié)果?
絕對觀測值的ACF表明存在很大的波動性聚類。
AR-ARCH估計具有有界的標準化殘差(殘差/標準誤差),從而大大降低了這些誤差。
看來t分布AR-GARCH解釋了原油波動的大部分趨勢。
用哪個模型?使用Akaike信息準則(AIC)測量模型中的信息。
使用正態(tài)分布模型的AIC = 4.2471。使用學生t分布模型的AIC = 4.2062。學生t分布模型更好。
這是我們可以從擬合模型中得出的一些常見結(jié)果:
## ? ? ? ? mu ? ? ? ?ar1 ? ? ?omega ? ? alpha1 ? ? ?beta1 ? ? ?shape
## 0.04018002 0.01727725 0.01087721 0.03816097 0.96074399 7.03778415
系數(shù)包括:
mu
?是原油的長期平均收益率。ar1
?是一天后收益對今天收益的影響。omega
?是長期方差。alpha1
?滯后平方方差對今天的收益的影響。beta1
?滯后平方殘差對今天收益率的影響。shape
?是學生t分布的自由度。
讓我們來繪制隨時間變化的波動性。
## ? ? ? ? mu ? ? ? ?ar1 ? ? ?omega ? ? alpha1 ? ? ?beta1 ? ? ?shape
## 0.04018002 0.01727725 0.01087721 0.03816097 0.96074399 7.03778415
接下來,我們繪制并檢驗殘差:
?
hist(z.hat)
mean(z.hat)
## [1] -0.0181139
var(z.hat)
## ? ? ? ? ?[,1]
## [1,] 1.000682
## [1] -0.3207327
## attr(,"method")
## [1] "moment"
kurtosis(z.hat)
## [1] 2.048561
## attr(,"method")
## [1] "excess"
##
## ?Shapiro-Wilk normality test
##
## data: ?as.numeric(z.hat)
## W = 0.98439, p-value < 2.2e-16
##
## ?Jarque-Bera Normality Test
##
## data: ?as.numeric(z.hat)
## JB = 780.73, p-value < 2.2e-16
## alternative hypothesis: greater
我們看到了什么?
左偏。
厚尾。
兩種標準檢驗均表明拒絕該序列為正態(tài)分布的零假設。
模擬
使用fit 結(jié)果中的參數(shù)指定AR-GARCH。
生成2000條模擬路徑。
GARCHspec
##
## *---------------------------------*
## * ? ? ? GARCH Model Spec ? ? ? ? ?*
## *---------------------------------*
##
## Conditional Variance Dynamics
## ------------------------------------
## GARCH Model ? ? ?: sGARCH(1,1)
## Variance Targeting ? : FALSE
##
## Conditional Mean Dynamics
## ------------------------------------
## Mean Model ? ? ? : ARFIMA(1,0,0)
## Include Mean ? ? : TRUE
## GARCH-in-Mean ? ? ? ?: FALSE
##
## Conditional Distribution
## ------------------------------------
## Distribution : ?std
## Includes Skew ? ?: ?FALSE
## Includes Shape ? : ?TRUE
## Includes Lambda ?: ?FALSE
## 生成長度為2000的兩個路徑
ugarchpath(GARCHspec, n.sim = 2000,
n.start = 50, m.sim = 2)
提取波動率
head(vol)
## ? ? ? ? [,1] ? ? [,2]
## T+1 2.950497 5.018346
## T+2 2.893878 4.927087
## T+3 2.848404 4.849797
## T+4 2.802098 4.819258
## T+5 2.880778 4.768916
## T+6 2.826746 4.675612
## 實際的模擬數(shù)據(jù)
X <- series$seriesSim
head(X)
## ? ? ? ? ? ?[,1] ? ? ? [,2]
## [1,] ?0.1509418 ?1.4608335
## [2,] ?1.2644849 -2.1509425
## [3,] -1.0397785 ?4.0248510
## [4,] ?4.4369130 ?3.4214660
## [5,] -0.3076812 -0.1104726
## [6,] ?0.4798977 ?2.7440751
示例
模擬的序列是否符合事實?
X1 <- X[, 1]
acf(X1)
acf(abs(X1))
qqnorm(X1)
qqline(X1, col = 2)
shapiro.test(X1)
這是結(jié)果?
##
## ?Shapiro-Wilk normality test
##
## data: ?X1
## W = 0.97164, p-value < 2.2e-16
Shapiro-Wilk檢驗-零假設:正態(tài)分布。如果p值足夠小,則拒絕原假設。-必須使用QQ圖進行驗證。
多元GARCH
從單變量GARCH到多元GARCH
動態(tài)條件相關。
具有隨時間變化的波動性。
如何使資產(chǎn)收益之間的相關性也隨時間變化。
為什么?-如果我們擁有投資組合(例如應收賬款,可能會面臨匯率和原油價格變動的情況),該怎么辦?-我們需要了解這三個因素的聯(lián)合波動性和依賴性,因為它們會影響應收賬款的整體波動性。我們將使用這些條件方差來模擬管理貨幣和商品風險的工具的期權價格。
dcc.garch11.spec
##
## *------------------------------*
## * ? ? ? DCC GARCH Spec ? ? ? ? *
## *------------------------------*
## Model ? ? ? ? ?: ?DCC(1,1)
## Estimation ? ? : ?2-step
## Distribution ? : ?mvt
## No. Parameters : ?21
## No. Series ? ? : ?3
現(xiàn)在進行擬合
現(xiàn)在讓我們得到一些結(jié)果:
##
## *---------------------------------*
## * ? ? ? ? ?DCC GARCH Fit ? ? ? ? ?*
## *---------------------------------*
##
## Distribution ? ? ? ? : ?mvt
## Model ? ? ? ? ? ? ? ?: ?DCC(1,1)
## No. Parameters ? ? ? : ?21
## [VAR GARCH DCC UncQ] : [0+15+3+3]
## No. Series ? ? ? ? ? : ?3
## No. Obs. ? ? ? ? ? ? : ?4057
## Log-Likelihood ? ? ? : ?-12820.82
## Av.Log-Likelihood ? ?: ?-3.16
##
## Optimal Parameters
## -----------------------------------
## ? ? ? ? ? ? ? ? ? ? Estimate ?Std. Error ? ?t value Pr(>|t|)
## [EUR.USD].mu ? ? ? ?0.006996 ? ?0.007195 ? ?0.97238 0.330861
## [EUR.USD].omega ? ? 0.000540 ? ?0.000288 ? ?1.87540 0.060738
## [EUR.USD].alpha1 ? ?0.036643 ? ?0.001590 ? 23.04978 0.000000
## [EUR.USD].beta1 ? ? 0.962357 ? ?0.000397 2426.49736 0.000000
## [EUR.USD].shape ? ? 9.344066 ? ?1.192132 ? ?7.83811 0.000000
## [GBP.USD].mu ? ? ? ?0.006424 ? ?0.006386 ? ?1.00594 0.314447
## [GBP.USD].omega ? ? 0.000873 ? ?0.000327 ? ?2.67334 0.007510
## [GBP.USD].alpha1 ? ?0.038292 ? ?0.002217 ? 17.27004 0.000000
## [GBP.USD].beta1 ? ? 0.958481 ? ?0.000555 1727.86868 0.000000
## [GBP.USD].shape ? ?10.481272 ? ?1.534457 ? ?6.83061 0.000000
## [OIL.Brent].mu ? ? ?0.040479 ? ?0.026696 ? ?1.51627 0.129450
## [OIL.Brent].omega ? 0.010779 ? ?0.004342 ? ?2.48228 0.013055
## [OIL.Brent].alpha1 ?0.037986 ? ?0.001941 ? 19.57467 0.000000
## [OIL.Brent].beta1 ? 0.960927 ? ?0.000454 2118.80489 0.000000
## [OIL.Brent].shape ? 7.040287 ? ?0.729837 ? ?9.64639 0.000000
## [Joint]dcca1 ? ? ? ?0.009915 ? ?0.002821 ? ?3.51469 0.000440
## [Joint]dccb1 ? ? ? ?0.987616 ? ?0.004386 ?225.15202 0.000000
## [Joint]mshape ? ? ? 9.732509 ? ?0.652707 ? 14.91100 0.000000
##
## Information Criteria
## ---------------------
##
## Akaike ? ? ? 6.3307
## Bayes ? ? ? ?6.3633
## Shibata ? ? ?6.3306
## Hannan-Quinn 6.3423
##
##
## Elapsed time : 11.89964
聯(lián)合條件協(xié)方差參數(shù)顯著不同于零。
現(xiàn)在,使用來自擬合的所有信息,我們進行預測。我們用來模擬套期工具或投資組合VaR或ES,讓我們先繪制隨時間變化的sigma。
示例
鑒于條件波動性和相關性,請查看VaR和ES的三個風險因素。
這是一些結(jié)果。首先,計算,然后繪圖。
## ? ? ? ? ? 1% ? ? ? ? ? 5% ? ? ? ? ?50% ? ? ? ? ?95% ? ? ? ? ?99%
## -6.137269958 -3.677130793 -0.004439644 ?3.391312753 ?5.896992710
## ? ? ? ? ? ?1% ? ? ? ? ? ?5% ? ? ? ? ? 50% ? ? ? ? ? 95% ? ? ? ? ? 99%
## -1.3393119939 -0.8235076255 -0.0003271163 ?0.7659725631 ?1.2465945013
## ? ? ? ? ? 1% ? ? ? ? ? 5% ? ? ? ? ?50% ? ? ? ? ?95% ? ? ? ? ?99%
## -1.520666396 -0.980794376 ?0.006889539 ?0.904772045 ?1.493169076
我們看到:
在分布的負數(shù)部分權重更大。
匯率大致相同。
如果您在客戶和分銷過程中使用布倫特原油,則可能會在約1%的時間內(nèi)遭受600%以上的損失。
讓我們使用新的波動率模型和分布進行調(diào)整,以擬合不對稱和厚尾。
在這里,我們嘗試使用一種新的GARCH模型:gjr代表Glosten,Jagannathan和Runkle(1993)他們提出的一個波動模型:
σ2t=ω+ασ2t-1+β1ε2t-1+β2ε2t-1It-1
擬合此模型。
##
## *---------------------------------*
## * ? ? ? ? ?GARCH Model Fit ? ? ? ?*
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model ?: gjrGARCH(1,1)
## Mean Model ? : ARFIMA(1,0,1)
## Distribution : nig
##
## Optimal Parameters
## ------------------------------------
## ? ? ? ? Estimate ?Std. Error ? ? t value Pr(>|t|)
## mu ? ? -0.040275 ? ?0.027883 -1.4445e+00 0.148608
## ar1 ? ? 0.996072 ? ?0.001900 ?5.2430e+02 0.000000
## ma1 ? ?-0.989719 ? ?0.000005 -1.8786e+05 0.000000
## omega ? 0.006346 ? ?0.003427 ?1.8517e+00 0.064071
## alpha1 ?0.009670 ? ?0.003841 ?2.5178e+00 0.011808
## beta1 ? 0.968206 ? ?0.001237 ?7.8286e+02 0.000000
## gamma1 ?0.042773 ? ?0.007183 ?5.9547e+00 0.000000
## skew ? -0.120184 ? ?0.032059 -3.7488e+00 0.000178
## shape ? 2.362890 ? ?0.351494 ?6.7224e+00 0.000000
##
## Robust Standard Errors:
## ? ? ? ? Estimate ?Std. Error ? ? t value Pr(>|t|)
## mu ? ? -0.040275 ? ?0.030871 -1.3046e+00 0.192023
## ar1 ? ? 0.996072 ? ?0.002107 ?4.7283e+02 0.000000
## ma1 ? ?-0.989719 ? ?0.000005 -1.8363e+05 0.000000
## omega ? 0.006346 ? ?0.003388 ?1.8729e+00 0.061086
## alpha1 ?0.009670 ? ?0.004565 ?2.1184e+00 0.034143
## beta1 ? 0.968206 ? ?0.000352 ?2.7485e+03 0.000000
## gamma1 ?0.042773 ? ?0.008503 ?5.0300e+00 0.000000
## skew ? -0.120184 ? ?0.033155 -3.6249e+00 0.000289
## shape ? 2.362890 ? ?0.405910 ?5.8212e+00 0.000000
##
## LogLikelihood : -8508.439
##
## Information Criteria
## ------------------------------------
##
## Akaike ? ? ? 4.1989
## Bayes ? ? ? ?4.2129
## Shibata ? ? ?4.1989
## Hannan-Quinn 4.2038
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## ? ? ? ? ? ? ? ? ? ? ? ? statistic p-value
## Lag[1] ? ? ? ? ? ? ? ? ? ? ?1.856 ?0.1730
## Lag[2*(p+q)+(p+q)-1][5] ? ? 2.196 ?0.9090
## Lag[4*(p+q)+(p+q)-1][9] ? ? 2.659 ?0.9354
## d.o.f=2
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## ? ? ? ? ? ? ? ? ? ? ? ? statistic ?p-value
## Lag[1] ? ? ? ? ? ? ? ? ? ? 0.5109 0.474739
## Lag[2*(p+q)+(p+q)-1][5] ? ?9.3918 0.013167
## Lag[4*(p+q)+(p+q)-1][9] ? 13.2753 0.009209
## d.o.f=2
##
## Weighted ARCH LM Tests
## ------------------------------------
## ? ? ? ? ? ? Statistic Shape Scale ?P-Value
## ARCH Lag[3] ? ? 10.26 0.500 2.000 0.001360
## ARCH Lag[5] ? ? 10.41 1.440 1.667 0.005216
## ARCH Lag[7] ? ? 11.06 2.315 1.543 0.010371
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: ?2.5309
## Individual Statistics:
## mu ? ? 0.91051
## ar1 ? ?0.07050
## ma1 ? ?0.06321
## omega ?0.70755
## alpha1 0.22126
## beta1 ?0.28137
## gamma1 0.17746
## skew ? 0.25115
## shape ?0.16545
##
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic: ? ? ? ? ?2.1 2.32 2.82
## Individual Statistic: ? ? 0.35 0.47 0.75
##
## Sign Bias Test
## ------------------------------------
## ? ? ? ? ? ? ? ? ? ?t-value ? ?prob sig
## Sign Bias ? ? ? ? ? 1.1836 0.23663
## Negative Sign Bias ?0.7703 0.44119
## Positive Sign Bias ?1.8249 0.06809 ? *
## Joint Effect ? ? ? ?9.8802 0.01961 ?**
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## ? group statistic p-value(g-1)
## 1 ? ?20 ? ? 27.42 ? ? ?0.09520
## 2 ? ?30 ? ? 46.32 ? ? ?0.02183
## 3 ? ?40 ? ? 58.50 ? ? ?0.02311
## 4 ? ?50 ? ? 70.37 ? ? ?0.02431
##
##
## Elapsed time : 6.630391
我們可以使用?tailplot()
?函數(shù)解釋結(jié)果。
## ? ? ? ? ?p ?quantile ? ? sfall
## [1,] 0.900 ?3.478474 ?5.110320
## [2,] 0.950 ?4.509217 ?6.293461
## [3,] 0.975 ?5.636221 ?7.587096
## [4,] 0.990 ?7.289163 ?9.484430
## [5,] 0.999 12.415553 15.368772
quantile
?給出我們的風險價值(VaR)和期望損失(ES)
可以看到尾部圖。
結(jié)果表明,使用AR-GARCH處理后,尾部更厚。
我們可以回到市場和風險部分,了解平均超額價值以及VaR和ES的置信區(qū)間。
對于應收帳款,緩解策略可能是通過再保險和總收益互換提供超額風險對沖。
對客戶的信用風險分析至關重要:頻繁更新客戶將有助于及早發(fā)現(xiàn)某些解決方案的問題。
最受歡迎的見解
1.用機器學習識別不斷變化的股市狀況—隱馬爾科夫模型(HMM)的應用
2.R語言GARCH-DCC模型和DCC(MVT)建模估計
3.R語言實現(xiàn) Copula 算法建模依賴性案例分析報告
4.R語言COPULAS和金融時間序列數(shù)據(jù)VaR分析
5.R語言多元COPULA GARCH 模型時間序列預測
6.用R語言實現(xiàn)神經(jīng)網(wǎng)絡預測股票實例
7.r語言預測波動率的實現(xiàn):ARCH模型與HAR-RV模型
8.R語言如何做馬爾科夫轉(zhuǎn)換模型markov switching model
9.matlab使用Copula仿真優(yōu)化市場風險