使用R語言隨機波動模型SV處理時間序列中的隨機波動率

原文連接:http://tecdat.cn/?p=12030



準備數據

採樣函數svsample須要其輸入數據y是數值向量,並且沒有任何缺失值(NA),若是提供其餘任何內容,則會報錯。在y包含零的狀況下,會發出警告,並在進行輔助混合採樣以前,將大小爲sd(y)/ 10000的小偏移常數添加到平方收益上。算法

可是,咱們一般建議徹底避免零收益數據,例如經過預先下降零收益。下面是如何使用樣本數據集進行說明。網絡

圖1提供了該數據集中時間序列的可視化。app

R> par(mfrow = c(2, 1), mar = c(1.9, 1.9, 1.9, 0.5), mgp = c(2, 0.6, 0))
R> plot(exrates$date, exrates$USD, type = "l",
+ main = "Price of 1 EUR in USD")
R> plot(exrates$date\[-1\], ret, type = "l", main = "Demeaned log returns")

除了現實世界的數據外,還可使用內置的模擬數據生成器svsim。此函數僅對SV流程的實現,並返回svsim類的對象,該對象具備本身的print,summary和plot方法。函數

下面給出了使用svsim的示例代碼,該模擬實例顯示在圖2中。post

R> par(mfrow = c(2, 1))
R> plot(sim)

運行採樣器

函數svsample,它用做C語言中實際採樣器的R-wrapper 。此函數的示例用法在下面的代碼中提供了默認輸出。spa

Calling GIS_C MCMC sampler with 11000 iter. Series length is 3139.
0% \[+++++++++++++++++++++++++++++++++++++++++++++++++++\] 100%
Timing (elapsed): 12.92 seconds.
851 iterations per second.
Converting results to coda objects... Done!
Summarizing posterior draws... Done!

能夠看出,該函數調用主MCMC採樣器並將其輸出轉換爲與coda兼容的對象。後者的完成主要是出於兼容性的考慮,而且能夠直接訪問收斂診斷檢查。code

svsample的返回值是svdraws類型的對象,該對象是具備八個元素的命名列表,其中包含(1)參數在para中繪製,(2)潛在的對數波動率,(3)初始潛在的對數波動率繪製latent0,(4)y中提供的數據,(5)運行時中的採樣運行時,(6)先驗中的先驗超參數,(7)細化的參數值,以及(8)這些圖的彙總統計信息,以及一些常見的轉換。orm

評估輸出並顯示結果對象

按照常規作法,可以使用svdraws對象的print和summary方法。每一個參數都有兩個可選參數showpara和showlatent,用於指定應顯示的輸出。若是showpara爲TRUE(默認設置),則會顯示參數繪製的值/摘要。若是showlatent爲TRUE(默認值),則顯示潛在變量繪製的值/摘要。在下面的示例中,僅顯示參數繪製的摘要。遞歸

Summary of 10000 MCMC draws after a burn-in of 1000.
Prior distributions:
mu ~ Normal(mean = -10, sd = 1)
(phi+1)/2 ~ Beta(a0 = 20, b0 = 1.1)
sigma^2 ~ 0.1 * Chisq(df = 1)
Posterior draws of parameters (thinning = 1):
mean sd 5% 50% 95% ESS
mu -10.1366 0.22711 -10.4749 -10.1399 -9.7933 4552
phi 0.9935 0.00282 0.9886 0.9938 0.9977 397
sigma 0.0656 0.01001 0.0509 0.0649 0.0830 143
exp(mu/2) 0.0063 0.00075 0.0053 0.0063 0.0075 4552
sigma^2 0.0044 0.00139 0.0026 0.0042 0.0069 143

(1)volplot:繪製潛在波動率的分位數,以百分比表示,即隨時間變化的後驗分佈的經驗分位數。經常使用的可選參數包括n步波動率的預測,x軸上標籤的日期以及一些圖形參數。下面的代碼片斷顯示了一個典型示例,圖3顯示了其輸出。

(2)paratraceplot:顯示θ中包含的參數的軌跡圖。圖5顯示了一個示例。

 (3)paradensplot:顯示θ中包含的參數的核密度估計。爲了更快地繪製較大的後驗樣本,應將此參數設置爲FALSE。若是參數showprior爲TRUE(默認值),則先驗分佈經過虛線灰色線指示。圖6顯示了從匯率提取數據集中得到的EUR-USD匯率的示例輸出。

svdraws對象的通用繪圖方法將上述全部圖合併。可使用上述全部參數。請參見圖7。

R> plot(res, showobs = FALSE)

 爲了提取標準化殘差,能夠在給定的svdraws對象上使用殘差方法。使用可選的參數類型,能夠指定摘要統計的類型。當前,類型容許爲「平均值」或「中位數」,其中前者對應於默認值。此方法返回svresid類的實向量,其中包含每一個時間點所請求的標準化殘差的摘要統計量。還有一種繪圖方法,當參數origdata給定時,提供了將標準化殘差與原始數據進行比較的選項。請參見下面的代碼,對於相應的輸出,請參見圖8。


最受歡迎的看法

1.HAR-RV-J與遞歸神經網絡(RNN)混合模型預測和交易大型股票指數的高頻波動率

2.WinBUGS對多元隨機波動率模型:貝葉斯估計與模型比較

3.波動率的實現:ARCH模型與HAR-RV模型

4.R語言ARMA-EGARCH模型、集成預測算法對SPX實際波動率進行預測

5.使用R語言隨機波動模型SV處理時間序列中的隨機波動率

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

7.R語言基於ARMA-GARCH過程的VAR擬合和預測

8.R語言隨機搜索變量選擇SSVS估計貝葉斯向量自迴歸(BVAR)模型

9.R語言對S&P500股票指數進行ARIMA + GARCH交易策略

相關文章
相關標籤/搜索