拓端數據tecdat|R語言使用多元AR-GARCH模型衡量市場風險


原文鏈接:http://tecdat.cn/?p=19118

 本文分析將用於制定管理客戶和供應商關系的策略准則。假設:

  • 貴公司擁有用於生產和分銷聚戊二酸的設施,聚戊二酸是一種用於多個行業的化合物。
  • 制造和分銷過程的投入包括各種石油產品和天然氣。價格波動可能非常不穩定。
  • 營運資金管理一直是一個挑戰,最近匯率的走勢嚴重影響了資金。
  • 您的CFO使用期貨和場外交易(OTC)工具對沖價格風險。

董事會感到關切的是,公司已連續第五個季度未能實現盈利預期。股東不高興。罪魁禍首似乎是商品銷售成本的波動。

示例

  1. 您應該問有哪些能源定價模式的關鍵業務問題?
  2. 您可以使用哪種方法來管理波動率?

這里有一些想法。關鍵業務問題可能是:

  • 哪些輸入價格和匯率比其他輸入價格和匯率更不穩定?何時?
  • 價格走勢相關嗎?
  • 在市場壓力時期,它們的走勢會有多動盪?
  • 是否有我們可以部署的套期工具或可以用來減輕定價風險?

管理波動

  • 建立輸入監視系統,以了解哪些輸入會影響運行制造和分銷流程的哪些成本。
  • 監控價格走勢和特征,並按流程衡量對關鍵營業收入構成部分的影響的嚴重性。
  • 內置價格無法承受預警指標。

 

在本文中,我們將

  • 使用波動率聚類
  • 擬合AR-GARCH模型
  • 從AR-GARCH模型模擬波動率
  • 衡量風險

ARCH模型

我們已經研究了波動性聚類。ARCH模型是對此進行建模的一種方法。

這些模型對於金融時間序列特別有用,因為金融時間序列顯示出較大的收益率變動時期以及相對平穩的價格變化的間歇時期。

可以從z(t)標准正態變量和初始標准波動率開始指定AR + ARCH模型σ(t)2 = z(t)2。然后,我們用方差ε(t)=(sigma2)1 / 2z(t)ε的平方來調節這些變量。然后我們首先為每個日期計算t = 1 ... n,

使用該條件誤差項,我們計算自回歸

現在我們准備計算新的方差項。

  1.  
    n <- 10500
  2.  
    z <- rnorm(n) ## 樣本標准正態分布變量
  3.  
     
  4.  
    sig2 <- z^2 ##創建波動率序列
  5.  
     
  6.  
     
  7.  
    omega <- 1 ## 方差
  8.  
     
  9.  
     
  10.  
     
  11.  
    mu <- 0.1 ## 平均收益率
  12.  
     
  13.  
     
  14.  
    omega/(1-alpha)
  15.  
    sqrt(omega/(1-alpha))
## [1] 2.222222
## [1] 1.490712
  1.  
    for (t in 2:n) ## 滯后於第二個日期開始
  2.  
     
  3.  
     
  4.  
    {
  5.  
    y[t] <- mu + phi*(y[t- 1 -mu) + e[t] ## 收益率
  6.  
     
  7.  
     
  8.  
    sig2[t+ 1] <- omega + alpha * e[t ^2 ## 生成新的sigma ^ 2。
  9.  
     

結果沒有指導意義。

 

我們可以看到

  1. 條件標准偏差中較大的孤立峰
  2. 在ARCH圖中也顯示

 

估計

我們有多種方法來估計AR-ARCH過程的參數。首先,讓我們加載一些數據。

  1.  
     
  2.  
    ## 匯率數據是從OANDA獲得
  3.  
     
  4.  
     
  5.  
    data.1 <- na.omit(merge(EUR_USD, GBP_USD,
  6.  
    OIL_Brent))
  7.  
    P <- data.1
  8.  
    R <- na.omit(diff(log(P)) * 100)

然后,我們繪制數據自相關。

 

  1.  
    ##
  2.  
    ## Box-Ljung test
  3.  
    ##
  4.  
    ## data: Brent.r
  5.  
    ## X-squared = 32.272, df = 14, p-value = 0.003664

純隨機性檢驗,p值小於5%,序列為非白噪聲

擬合

我們的第一項任務是ARMA-GARCH模型。

  1. 指定普通sGarch 模型。
  2. garchOrder = c(1,1) 表示我們使用殘差平方和方差的一期滯后:
  3. 使用 armaOrder = c(1,0) 指定長期平均收益模型 
  4. mean如上述方程式中包括 。
  5. 按照norm 正態分布 。我們還將使用赤池信息准則(AIC)將擬合與學生t分布進行比較 。
  6. 使用將數據擬合到模型 ugarchfit
  1.  
    ugarchspec( variance.model = list(model = "sGARCH",
  2.  
    garchOrder = c( 1, 1)), mean.model = list(armaOrder = c(1,
  3.  
    0), include.mean = TRUE), distribution.model = "norm")

讓我們看一下該模型中的條件分位數,也稱為VaR,設置為99%。

  1.  
    ## 首先是條件分位數
  2.  
     
  3.  
     
  4.  
    plot(fit, which = 2)

 

 

現在,讓我們生成一個繪圖面板。

  1.  
    ## 數據acf-顯示序列相關
  2.  
     
  3.  
    plot(fit , which = 6)
  4.  
    ## 數據的QQ圖-顯示標准化殘基的峰度-不支持正態假設
  5.  
     
  6.  
     
  7.  
    # # 標准化殘差的acf
  8.  
     
  9.  
     
  10.  
    # # 平方標准殘差的acf

 

例子

讓我們重做GARCH估計,現在使用Student t分布。

  1.  
    ## 用學生t分布擬合AR(1)-GARCH(1,1)模型
  2.  
     
  3.  
     
  4.  
    AR.GARCH.spec <- ugarchspec(variance.model = list(model = "sGARCH",
  5.  
    garchOrder = c(1, 1)), mean.model = list(armaOrder = c(1,
  6.  
    0), include.mean = TRUE), distribution.model = "std")
  7.  
     

結果 

  1. 絕對觀測值的ACF表明存在很大的波動性聚類。
  2. AR-ARCH估計具有有界的標准化殘差(殘差/標准誤差),從而大大降低了這些誤差。
  3. 看來t分布AR-GARCH解釋了原油波動的大部分趨勢。

用哪個模型?使用Akaike信息准則(AIC)測量模型中的信息。

使用正態分布模型的AIC = 4.2471。使用學生t分布模型的AIC = 4.2062。學生t分布模型更好。

這是我們可以從擬合模型中得出的一些常見結果:

  1.  
    ## mu ar1 omega alpha1 beta1 shape
  2.  
    ## 0 .04018002 0.01727725 0.01087721 0.03816097 0.96074399 7.03778415

系數包括:

  • mu 是原油的長期平均收益率。
  • ar1 是一天后收益對今天收益的影響。
  • omega 是長期方差。
  • alpha1 滯后平方方差對今天的收益的影響。
  • beta1 滯后平方殘差對今天收益率的影響。
  • shape 是學生t分布的自由度。

讓我們來繪制隨時間變化的波動性。

  1.  
    ## mu ar1 omega alpha1 beta1 shape
  2.  
    ## 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]
  2.  
    ## [1,] 1.000682
  1.  
    ## [1] -0.3207327
  2.  
    ## attr(,"method")
  3.  
    ## [1] "moment"
kurtosis(z.hat)
  1.  
    ## [1] 2.048561
  2.  
    ## attr(,"method")
  3.  
    ## [1] "excess"
  1.  
    ##
  2.  
    ## Shapiro-Wilk normality test
  3.  
    ##
  4.  
    ## data: as.numeric(z.hat)
  5.  
    ## W = 0.98439, p-value < 2.2e-16
  1.  
    ##
  2.  
    ## Jarque-Bera Normality Test
  3.  
    ##
  4.  
    ## data: as.numeric(z.hat)
  5.  
    ## JB = 780.73, p-value < 2.2e-16
  6.  
    ## alternative hypothesis: greater

我們看到了什么?

  • 左偏。
  • 厚尾。
  • 兩種標准檢驗均表明拒絕該序列為正態分布的零假設。

模擬

  1. 使用fit 結果中的參數指定AR-GARCH。
  2. 生成2000條模擬路徑。
  1.  
     
  2.  
    GARCHspec
  1.  
    ##
  2.  
    ## *---------------------------------*
  3.  
    ## * GARCH Model Spec *
  4.  
    ## *---------------------------------*
  5.  
    ##
  6.  
    ## Conditional Variance Dynamics
  7.  
    ## ------------------------------------
  8.  
    ## GARCH Model : sGARCH(1,1)
  9.  
    ## Variance Targeting : FALSE
  10.  
    ##
  11.  
    ## Conditional Mean Dynamics
  12.  
    ## ------------------------------------
  13.  
    ## Mean Model : ARFIMA(1,0,0)
  14.  
    ## Include Mean : TRUE
  15.  
    ## GARCH-in-Mean : FALSE
  16.  
    ##
  17.  
    ## Conditional Distribution
  18.  
    ## ------------------------------------
  19.  
    ## Distribution : std
  20.  
    ## Includes Skew : FALSE
  21.  
    ## Includes Shape : TRUE
  22.  
    ## Includes Lambda : FALSE
  1.  
    ## 生成長度為2000的兩個路徑
  2.  
     
  3.  
    ugarchpath(GARCHspec, n.sim = 2000,
  4.  
    n.start = 50, m.sim = 2)

提取波動率

 head(vol)
  1.  
    ## [,1] [,2]
  2.  
    ## T+1 2.950497 5.018346
  3.  
    ## T+2 2.893878 4.927087
  4.  
    ## T+3 2.848404 4.849797
  5.  
    ## T+4 2.802098 4.819258
  6.  
    ## T+5 2.880778 4.768916
  7.  
    ## T+6 2.826746 4.675612

 

 

 

 

  1.  
    ## 實際的模擬數據
  2.  
    X <- series$seriesSim
  3.  
    head(X)
  1.  
    ## [,1] [,2]
  2.  
    ## [1,] 0.1509418 1.4608335
  3.  
    ## [2,] 1.2644849 -2.1509425
  4.  
    ## [3,] -1.0397785 4.0248510
  5.  
    ## [4,] 4.4369130 3.4214660
  6.  
    ## [5,] -0.3076812 -0.1104726
  7.  
    ## [6,] 0.4798977 2.7440751

示例

模擬的序列是否符合事實?

  1.  
    X1 <- X[, 1]
  2.  
    acf(X1)
  3.  
    acf(abs(X1))
  4.  
    qqnorm(X1)
  5.  
    qqline(X1, col = 2)
  6.  
    shapiro.test(X1)

 

這是結果 

  1.  
    ##
  2.  
    ## Shapiro-Wilk normality test
  3.  
    ##
  4.  
    ## data: X1
  5.  
    ## W = 0.97164, p-value < 2.2e-16

Shapiro-Wilk檢驗-零假設:正態分布。如果p值足夠小,則拒絕原假設。-必須使用QQ圖進行驗證。

多元GARCH

從單變量GARCH到多元GARCH

  • 動態條件相關。
  • 具有隨時間變化的波動性。
  • 如何使資產收益之間的相關性也隨時間變化。

為什么?-如果我們擁有投資組合(例如應收賬款,可能會面臨匯率和原油價格變動的情況),該怎么辦?-我們需要了解這三個因素的聯合波動性和依賴性,因為它們會影響應收賬款的整體波動性。我們將使用這些條件方差來模擬管理貨幣和商品風險的工具的期權價格。

 

dcc.garch11.spec
  1.  
    ##
  2.  
    ## *------------------------------*
  3.  
    ## * DCC GARCH Spec *
  4.  
    ## *------------------------------*
  5.  
    ## Model : DCC(1,1)
  6.  
    ## Estimation : 2-step
  7.  
    ## Distribution : mvt
  8.  
    ## No. Parameters : 21
  9.  
    ## No. Series : 3

現在進行擬合

現在讓我們得到一些結果:

  1.  
    ##
  2.  
    ## *---------------------------------*
  3.  
    ## * DCC GARCH Fit *
  4.  
    ## *---------------------------------*
  5.  
    ##
  6.  
    ## Distribution : mvt
  7.  
    ## Model : DCC(1,1)
  8.  
    ## No. Parameters : 21
  9.  
    ## [VAR GARCH DCC UncQ] : [0+15+3+3]
  10.  
    ## No. Series : 3
  11.  
    ## No. Obs. : 4057
  12.  
    ## Log-Likelihood : -12820.82
  13.  
    ## Av.Log-Likelihood : -3.16
  14.  
    ##
  15.  
    ## Optimal Parameters
  16.  
    ## -----------------------------------
  17.  
    ## Estimate Std. Error t value Pr(>|t|)
  18.  
    ## [EUR.USD].mu 0.006996 0.007195 0.97238 0.330861
  19.  
    ## [EUR.USD].omega 0.000540 0.000288 1.87540 0.060738
  20.  
    ## [EUR.USD].alpha1 0.036643 0.001590 23.04978 0.000000
  21.  
    ## [EUR.USD].beta1 0.962357 0.000397 2426.49736 0.000000
  22.  
    ## [EUR.USD].shape 9.344066 1.192132 7.83811 0.000000
  23.  
    ## [GBP.USD].mu 0.006424 0.006386 1.00594 0.314447
  24.  
    ## [GBP.USD].omega 0.000873 0.000327 2.67334 0.007510
  25.  
    ## [GBP.USD].alpha1 0.038292 0.002217 17.27004 0.000000
  26.  
    ## [GBP.USD].beta1 0.958481 0.000555 1727.86868 0.000000
  27.  
    ## [GBP.USD].shape 10.481272 1.534457 6.83061 0.000000
  28.  
    ## [OIL.Brent].mu 0.040479 0.026696 1.51627 0.129450
  29.  
    ## [OIL.Brent].omega 0.010779 0.004342 2.48228 0.013055
  30.  
    ## [OIL.Brent].alpha1 0.037986 0.001941 19.57467 0.000000
  31.  
    ## [OIL.Brent].beta1 0.960927 0.000454 2118.80489 0.000000
  32.  
    ## [OIL.Brent].shape 7.040287 0.729837 9.64639 0.000000
  33.  
    ## [Joint]dcca1 0.009915 0.002821 3.51469 0.000440
  34.  
    ## [Joint]dccb1 0.987616 0.004386 225.15202 0.000000
  35.  
    ## [Joint]mshape 9.732509 0.652707 14.91100 0.000000
  36.  
    ##
  37.  
    ## Information Criteria
  38.  
    ## ---------------------
  39.  
    ##
  40.  
    ## Akaike 6.3307
  41.  
    ## Bayes 6.3633
  42.  
    ## Shibata 6.3306
  43.  
    ## Hannan-Quinn 6.3423
  44.  
    ##
  45.  
    ##
  46.  
    ## Elapsed time : 11.89964
  • 聯合條件協方差參數顯着不同於零。

現在,使用來自擬合的所有信息,我們進行預測。我們用來模擬套期工具或投資組合VaR或ES,讓我們先繪制隨時間變化的sigma。

示例

鑒於條件波動性和相關性,請查看VaR和ES的三個風險因素。

這是一些結果。首先,計算,然后繪圖。

  1.  
    ## 1% 5% 50% 95% 99%
  2.  
    ## -6.137269958 -3.677130793 -0.004439644 3.391312753 5.896992710
  1.  
    ## 1% 5% 50% 95% 99%
  2.  
    ## -1.3393119939 -0.8235076255 -0.0003271163 0.7659725631 1.2465945013
  1.  
    ## 1% 5% 50% 95% 99%
  2.  
    ## -1.520666396 -0.980794376 0.006889539 0.904772045 1.493169076

我們看到:

  1. 在分布的負數部分權重更大。
  2. 匯率大致相同。
  3. 如果您在客戶和分銷過程中使用布倫特原油,則可能會在約1%的時間內遭受600%以上的損失。

讓我們使用新的波動率模型和分布進行調整,以擬合不對稱和厚尾。

在這里,我們嘗試使用一種新的GARCH模型:gjr代表Glosten,Jagannathan和Runkle(1993)他們提出的一個波動模型:

σ2t=ω+ασ2t-1+β1ε2t-1+β2ε2t-1It-1

 

擬合此模型。

  1.  
    ##
  2.  
    ## *---------------------------------*
  3.  
    ## * GARCH Model Fit *
  4.  
    ## *---------------------------------*
  5.  
    ##
  6.  
    ## Conditional Variance Dynamics
  7.  
    ## -----------------------------------
  8.  
    ## GARCH Model : gjrGARCH(1,1)
  9.  
    ## Mean Model : ARFIMA(1,0,1)
  10.  
    ## Distribution : nig
  11.  
    ##
  12.  
    ## Optimal Parameters
  13.  
    ## ------------------------------------
  14.  
    ## Estimate Std. Error t value Pr(>|t|)
  15.  
    ## mu -0.040275 0.027883 -1.4445e+00 0.148608
  16.  
    ## ar1 0.996072 0.001900 5.2430e+02 0.000000
  17.  
    ## ma1 -0.989719 0.000005 -1.8786e+05 0.000000
  18.  
    ## omega 0.006346 0.003427 1.8517e+00 0.064071
  19.  
    ## alpha1 0.009670 0.003841 2.5178e+00 0.011808
  20.  
    ## beta1 0.968206 0.001237 7.8286e+02 0.000000
  21.  
    ## gamma1 0.042773 0.007183 5.9547e+00 0.000000
  22.  
    ## skew -0.120184 0.032059 -3.7488e+00 0.000178
  23.  
    ## shape 2.362890 0.351494 6.7224e+00 0.000000
  24.  
    ##
  25.  
    ## Robust Standard Errors:
  26.  
    ## Estimate Std. Error t value Pr(>|t|)
  27.  
    ## mu -0.040275 0.030871 -1.3046e+00 0.192023
  28.  
    ## ar1 0.996072 0.002107 4.7283e+02 0.000000
  29.  
    ## ma1 -0.989719 0.000005 -1.8363e+05 0.000000
  30.  
    ## omega 0.006346 0.003388 1.8729e+00 0.061086
  31.  
    ## alpha1 0.009670 0.004565 2.1184e+00 0.034143
  32.  
    ## beta1 0.968206 0.000352 2.7485e+03 0.000000
  33.  
    ## gamma1 0.042773 0.008503 5.0300e+00 0.000000
  34.  
    ## skew -0.120184 0.033155 -3.6249e+00 0.000289
  35.  
    ## shape 2.362890 0.405910 5.8212e+00 0.000000
  36.  
    ##
  37.  
    ## LogLikelihood : -8508.439
  38.  
    ##
  39.  
    ## Information Criteria
  40.  
    ## ------------------------------------
  41.  
    ##
  42.  
    ## Akaike 4.1989
  43.  
    ## Bayes 4.2129
  44.  
    ## Shibata 4.1989
  45.  
    ## Hannan-Quinn 4.2038
  46.  
    ##
  47.  
    ## Weighted Ljung-Box Test on Standardized Residuals
  48.  
    ## ------------------------------------
  49.  
    ## statistic p-value
  50.  
    ## Lag[1] 1.856 0.1730
  51.  
    ## Lag[2*(p+q)+(p+q)-1][5] 2.196 0.9090
  52.  
    ## Lag[4*(p+q)+(p+q)-1][9] 2.659 0.9354
  53.  
    ## d.o.f=2
  54.  
    ## H0 : No serial correlation
  55.  
    ##
  56.  
    ## Weighted Ljung-Box Test on Standardized Squared Residuals
  57.  
    ## ------------------------------------
  58.  
    ## statistic p-value
  59.  
    ## Lag[1] 0.5109 0.474739
  60.  
    ## Lag[2*(p+q)+(p+q)-1][5] 9.3918 0.013167
  61.  
    ## Lag[4*(p+q)+(p+q)-1][9] 13.2753 0.009209
  62.  
    ## d.o.f=2
  63.  
    ##
  64.  
    ## Weighted ARCH LM Tests
  65.  
    ## ------------------------------------
  66.  
    ## Statistic Shape Scale P-Value
  67.  
    ## ARCH Lag[3] 10.26 0.500 2.000 0.001360
  68.  
    ## ARCH Lag[5] 10.41 1.440 1.667 0.005216
  69.  
    ## ARCH Lag[7] 11.06 2.315 1.543 0.010371
  70.  
    ##
  71.  
    ## Nyblom stability test
  72.  
    ## ------------------------------------
  73.  
    ## Joint Statistic: 2.5309
  74.  
    ## Individual Statistics:
  75.  
    ## mu 0.91051
  76.  
    ## ar1 0.07050
  77.  
    ## ma1 0.06321
  78.  
    ## omega 0.70755
  79.  
    ## alpha1 0.22126
  80.  
    ## beta1 0.28137
  81.  
    ## gamma1 0.17746
  82.  
    ## skew 0.25115
  83.  
    ## shape 0.16545
  84.  
    ##
  85.  
    ## Asymptotic Critical Values (10% 5% 1%)
  86.  
    ## Joint Statistic: 2.1 2.32 2.82
  87.  
    ## Individual Statistic: 0.35 0.47 0.75
  88.  
    ##
  89.  
    ## Sign Bias Test
  90.  
    ## ------------------------------------
  91.  
    ## t-value prob sig
  92.  
    ## Sign Bias 1.1836 0.23663
  93.  
    ## Negative Sign Bias 0.7703 0.44119
  94.  
    ## Positive Sign Bias 1.8249 0.06809 *
  95.  
    ## Joint Effect 9.8802 0.01961 **
  96.  
    ##
  97.  
    ##
  98.  
    ## Adjusted Pearson Goodness-of-Fit Test:
  99.  
    ## ------------------------------------
  100.  
    ## group statistic p-value(g-1)
  101.  
    ## 1 20 27.42 0.09520
  102.  
    ## 2 30 46.32 0.02183
  103.  
    ## 3 40 58.50 0.02311
  104.  
    ## 4 50 70.37 0.02431
  105.  
    ##
  106.  
    ##
  107.  
    ## Elapsed time : 6.630391

我們可以使用 tailplot() 函數解釋結果。

  1.  
    ## p quantile sfall
  2.  
    ## [1,] 0.900 3.478474 5.110320
  3.  
    ## [2,] 0.950 4.509217 6.293461
  4.  
    ## [3,] 0.975 5.636221 7.587096
  5.  
    ## [4,] 0.990 7.289163 9.484430
  6.  
    ## [5,] 0.999 12.415553 15.368772

quantile 給出我們的風險價值(VaR)和期望損失(ES)

可以看到尾部圖。

 

  • 結果表明,使用AR-GARCH處理后,尾部更厚。

  • 我們可以回到市場和風險部分,了解平均超額價值以及VaR和ES的置信區間。

  • 對於應收帳款,緩解策略可能是通過再保險和總收益互換提供超額風險對沖。

  • 對客戶的信用風險分析至關重要:頻繁更新客戶將有助於及早發現某些解決方案的問題。


最受歡迎的見解

1.用機器學習識別不斷變化的股市狀況—隱馬爾科夫模型(HMM)的應用

2.R語言GARCH-DCC模型和DCC(MVT)建模估計

3.R語言實現 Copula 算法建模依賴性案例分析報告

4.R語言COPULAS和金融時間序列數據VaR分析

5.R語言多元COPULA GARCH 模型時間序列預測

6.用R語言實現神經網絡預測股票實例

7.r語言預測波動率的實現:ARCH模型與HAR-RV模型

8.R語言如何做馬爾科夫轉換模型markov switching model

9.matlab使用Copula仿真優化市場風險

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM