使用R語(yǔ)言隨機(jī)波動(dòng)模型SV處理時(shí)間序列中的隨機(jī)波動(dòng)率
原文鏈接:http://tecdat.cn/?p=12030
?
準(zhǔn)備數(shù)據(jù)
采樣函數(shù)svsample需要其輸入數(shù)據(jù)y是數(shù)值向量,而且沒(méi)有任何缺失值(NA),如果提供其他任何內(nèi)容,則會(huì)報(bào)錯(cuò)。在y包含零的情況下,會(huì)發(fā)出警告,并在進(jìn)行輔助混合采樣之前,將大小為sd(y)/ 10000的小偏移常數(shù)添加到平方收益上。
但是,我們通常建議完全避免零收益數(shù)據(jù),例如通過(guò)預(yù)先降低零收益。下面是如何使用樣本數(shù)據(jù)集進(jìn)行說(shuō)明。
圖1提供了該數(shù)據(jù)集中時(shí)間序列的可視化。
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")

除了現(xiàn)實(shí)世界的數(shù)據(jù)外,還可以使用內(nèi)置的模擬數(shù)據(jù)生成器svsim。此函數(shù)僅對(duì)SV流程的實(shí)現(xiàn),并返回svsim類(lèi)的對(duì)象,該對(duì)象具有自己的print,summary和plot方法。
下面給出了使用svsim的示例代碼,該模擬實(shí)例顯示在圖2中。
R> par(mfrow = c(2, 1))
R> plot(sim)

?
運(yùn)行采樣器
函數(shù)svsample,它用作C語(yǔ)言中實(shí)際采樣器的R-wrapper 。此函數(shù)的示例用法在下面的代碼中提供了默認(rèn)輸出。
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!
?
可以看出,該函數(shù)調(diào)用主MCMC采樣器并將其輸出轉(zhuǎn)換為與coda兼容的對(duì)象。后者的完成主要是出于兼容性的考慮,并且可以直接訪問(wèn)收斂診斷檢查。
svsample的返回值是svdraws類(lèi)型的對(duì)象,該對(duì)象是具有八個(gè)元素的命名列表,其中包含(1)參數(shù)在para中繪制,(2)潛在的對(duì)數(shù)波動(dòng)率,(3)初始潛在的對(duì)數(shù)波動(dòng)率繪制latent0,(4)y中提供的數(shù)據(jù),(5)運(yùn)行時(shí)中的采樣運(yùn)行時(shí),(6)先驗(yàn)中的先驗(yàn)超參數(shù),(7)細(xì)化的參數(shù)值,以及(8)這些圖的匯總統(tǒng)計(jì)信息,以及一些常見(jiàn)的轉(zhuǎn)換。
評(píng)估輸出并顯示結(jié)果
按照常規(guī)做法,可使用svdraws對(duì)象的print和summary方法。每個(gè)參數(shù)都有兩個(gè)可選參數(shù)showpara和showlatent,用于指定應(yīng)顯示的輸出。如果showpara為T(mén)RUE(默認(rèn)設(shè)置),則會(huì)顯示參數(shù)繪制的值/摘要。如果showlatent為T(mén)RUE(默認(rèn)值),則顯示潛在變量繪制的值/摘要。在下面的示例中,僅顯示參數(shù)繪制的摘要。
?
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:繪制潛在波動(dòng)率的分位數(shù),以百分比表示,即隨時(shí)間變化的后驗(yàn)分布的經(jīng)驗(yàn)分位數(shù)。常用的可選參數(shù)包括n步波動(dòng)率的預(yù)測(cè),x軸上標(biāo)簽的日期以及一些圖形參數(shù)。下面的代碼片段顯示了一個(gè)典型示例,圖3顯示了其輸出。
?

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

?
?(3)paradensplot:顯示θ中包含的參數(shù)的核密度估計(jì)。為了更快地繪制較大的后驗(yàn)樣本,應(yīng)將此參數(shù)設(shè)置為FALSE。如果參數(shù)showprior為T(mén)RUE(默認(rèn)值),則先驗(yàn)分布通過(guò)虛線灰色線指示。圖6顯示了從匯率提取數(shù)據(jù)集中獲得的EUR-USD匯率的示例輸出。
svdraws對(duì)象的通用繪圖方法將上述所有圖合并??梢允褂蒙鲜鏊袇?shù)。請(qǐng)參見(jiàn)圖7。
?
R> plot(res, showobs = FALSE)

?為了提取標(biāo)準(zhǔn)化殘差,可以在給定的svdraws對(duì)象上使用殘差方法。使用可選的參數(shù)類(lèi)型,可以指定摘要統(tǒng)計(jì)的類(lèi)型。當(dāng)前,類(lèi)型允許為“平均值”或“中位數(shù)”,其中前者對(duì)應(yīng)于默認(rèn)值。此方法返回svresid類(lèi)的實(shí)向量,其中包含每個(gè)時(shí)間點(diǎn)所請(qǐng)求的標(biāo)準(zhǔn)化殘差的摘要統(tǒng)計(jì)量。還有一種繪圖方法,當(dāng)參數(shù)origdata給定時(shí),提供了將標(biāo)準(zhǔn)化殘差與原始數(shù)據(jù)進(jìn)行比較的選項(xiàng)。請(qǐng)參見(jiàn)下面的代碼,對(duì)于相應(yīng)的輸出,請(qǐng)參見(jiàn)圖8。

最受歡迎的見(jiàn)解
1.HAR-RV-J與遞歸神經(jīng)網(wǎng)絡(luò)(RNN)混合模型預(yù)測(cè)和交易大型股票指數(shù)的高頻波動(dòng)率
2.WinBUGS對(duì)多元隨機(jī)波動(dòng)率模型:貝葉斯估計(jì)與模型比較
3.波動(dòng)率的實(shí)現(xiàn):ARCH模型與HAR-RV模型
4.R語(yǔ)言ARMA-EGARCH模型、集成預(yù)測(cè)算法對(duì)SPX實(shí)際波動(dòng)率進(jìn)行預(yù)測(cè)
5.使用R語(yǔ)言隨機(jī)波動(dòng)模型SV處理時(shí)間序列中的隨機(jī)波動(dòng)率
6.R語(yǔ)言多元COPULA GARCH 模型時(shí)間序列預(yù)測(cè)
7.R語(yǔ)言基于ARMA-GARCH過(guò)程的VAR擬合和預(yù)測(cè)
8.R語(yǔ)言隨機(jī)搜索變量選擇SSVS估計(jì)貝葉斯向量自回歸(BVAR)模型
9.R語(yǔ)言對(duì)S&P500股票指數(shù)進(jìn)行ARIMA + GARCH交易策略