R語言隨機波動模型SV:馬爾可夫蒙特卡羅法MCMC、正則化廣義矩估計和準最大似然估計上
全文鏈接:http://tecdat.cn/?p=31162
最近我們被客戶要求撰寫關于SV模型的研究報告,包括一些圖形和統(tǒng)計輸出
本文做SV模型,選取馬爾可夫蒙特卡羅法(MCMC)、正則化廣義矩估計法和準最大似然估計法估計。
模擬SV模型的估計方法:
sim <- svsim(1000,mu=-9, phi = 0.97, sigma = 0.15)print(sim)summary(sim)

plot(sim)

繪制上證指數收益時間序列圖、散點圖、自相關圖與偏自相關圖
我們選取上證指數5分鐘高頻數據:
data=read.csv("上證指數-5min.csv",header=TRUE)#open:開盤價 ?close:收盤價 vol:成交量 amount:成交額head(data,5) ?#觀察數據的頭5行tail(data,5) ?#觀察數據的最后5行Close.ptd<-data$close
Close.rtd<-diff(log(Close.ptd)) ?#指標一:logReturnrets=diff(data$close)/data$close[-length(data$close)] ?#指標二:Daily Returns,我們選擇Daily Returnslibrary(tseries)
adf.test(rets)## 繪制上證指數收益時間序列圖、散點圖、自相關圖與偏自相關圖Close.ptd.ts<-ts(Close.ptd,start=c(2005,1,4),freq=242) ?
plot(Close.ptd.ts, type="l",main="(a) 上證指數日收盤價序列圖",
acf(Close.rtd,main='',xlab='Lag',ylab='ACF',las=1) ? ?
title(main='(b) 上證指數收益率自相關檢驗',cex.main=0.95)
pacf(Close.rtd,main='',xlab='Lag',ylab='PACF',las=1) ? ? ? ? ? ? ?
title(main='(c) 上證指數收益率偏自相關檢驗',cex.main=0.95)
def.off## Q-Q圖、經驗累積分布ecdf圖、密度圖、直方圖 qqnorm(Close.rtd,main="(a) 上證指數收益率Q-Q圖",cex.main=0.95, ? ? ? xlab='理論分位數',ylab='樣本分位數') ? ? ? ? ? ?
qqline(Close.rtd) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
#經驗累積分布ecdf圖plot(ECD,lwd = 2,main="(b) 上證指數收益率累積分布函數圖",cex.main=0.95,las=1)
xx <- unique(sort(c(seq(-3, 2, length=24), knots(ECD)))) ? ? ? ?
abline(v = knots(ECD), lty=2, col='gray70') ? ? ? ? ? ? ? ? ? ? ? ? ?
x1 <- c((-4):3) ? ? ? ? ? ? # 設定區(qū)間范圍lines(x1,pnorm(x1,mean(Close.rtdC[1:10]),sd(Close.rtd[1:10]))) ?#密度圖plot(D, main="(c) 上證指數核密度曲線圖 ",xlab="收益", ylab='密度', ? ? xlim = c(-7,7), ylim=c(0,0.5),cex.main=0.95) ? ? ?
polygon(D, col="gray", border="black") ? ? ? ? ? ? ? ?
curve(dnorm,lty = 2, add = TRUE) ? ? ? ? ? ? ? ? ? ? ? ?
lines(x2,dnorm(x2,mean=0,sd=1)) ? ? ?
abline(v=0,lty = 3) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
legend("topright", legend=c("核密度","正態(tài)密度"),lty=c(1,2),cex=0.5)#直方圖hist(Close.rtd[1:100],xaxt='n',main='(d) 上證指數收益率直方圖', ? ? xlab='收益/100',ylab='密度', freq=F,cex.main=0.95,las=1) ? ? ? ?
lines(x2,dnorm(x2,mean(Close.rtd[1:100]),sd(Close.rtd[1:100])))
axis(1,at=axTicks(1),labels = as.integer(axTicks(1))/100 )



點擊標題查閱往期內容

【視頻】隨機波動率SV模型原理和Python對標普SP500股票指數預測|數據分享

左右滑動查看更多

01

02

03

04

SV模型
{
?N <- length(logReturn)
?mu <- (1/N)*sum(logReturn) ?sqrt((1/N) * sum((logReturn - mu)^2))
}
?return=-1.5*log(h)-y^2/(2*h)-(log(h)-mu)^2/(2*sigma2)
}
馬爾可夫鏈蒙特卡羅估計
該模型使用了Kastner和Fruhwirth-Schnatter所描述的算法。使用的R代碼是:
###Markov Chain Monte Carlosummary(mcmc)

準最大似然估計
SV模型可以用QML方法在R中用許多不同的狀態(tài)空間和Kalman濾波包來估計。
? a0=c(parm[1])
? P0=matrix(parm[3]^2/(1-parm[2]^2))
? dt=matrix(parm[1]*(1-parm[2]))
? ct=matrix(-1.27)
? Tt=matrix(parm[2])
? Zt=matrix(1)
? HHt=matrix(parm[3]^2)
? GGt=matrix(pi^2/2)
? ans<-fkf(a0=sp$a0,P0=sp$P0,dt=sp$dt,ct=sp$ct,Tt=sp$Tt,Zt=sp$Zt,HHt=sp$HHt,GG

正則化廣義矩陣
在R函數中定義矩條件,然后估計參數0。
moments <- c (??? m1 = sqrt(2/pi)*exp(mu/2 + sig2h/8),??? m2 = exp(mu +? sig2h/2 ) ,??? m3 = 2*sqrt ( 2/pi ) * exp( 3*mu/2 + 9*sig2h/8 ) ,
? ?gmm(g = sv.moments , x =rets , t0=c(mu=-10, phi=0.9,sigmaeta= 0.2),


點擊文末?“閱讀原文”
獲取全文完整代碼數據資料。
本文選自《R語言隨機波動模型SV:馬爾可夫蒙特卡羅法MCMC、正則化廣義矩估計和準最大似然估計上證指數收益時間序列》。
點擊標題查閱往期內容
HAR-RV-J與遞歸神經網絡(RNN)混合模型預測和交易大型股票指數的高頻波動率
Matlab馬爾可夫鏈蒙特卡羅法(MCMC)估計隨機波動率(SV,Stochastic Volatility) 模型
R語言隱馬爾可夫模型HMM連續(xù)序列重要性重抽樣CSIR估計隨機波動率模型SV分析股票收益率時間序列
馬爾可夫Markov區(qū)制轉移模型分析基金利率
馬爾可夫區(qū)制轉移模型Markov regime switching
時變馬爾可夫區(qū)制轉換MRS自回歸模型分析經濟時間序列
馬爾可夫轉換模型研究交通傷亡人數事故時間序列預測
如何實現(xiàn)馬爾可夫鏈蒙特卡羅MCMC模型、Metropolis算法?
Matlab用BUGS馬爾可夫區(qū)制轉換Markov switching隨機波動率模型、序列蒙特卡羅SMC、M H采樣分析時間序列
R語言BUGS序列蒙特卡羅SMC、馬爾可夫轉換隨機波動率SV模型、粒子濾波、Metropolis Hasting采樣時間序列分析
matlab用馬爾可夫鏈蒙特卡羅 (MCMC) 的Logistic邏輯回歸模型分析汽車實驗數據
stata馬爾可夫Markov區(qū)制轉移模型分析基金利率
PYTHON用時變馬爾可夫區(qū)制轉換(MRS)自回歸模型分析經濟時間序列
R語言使用馬爾可夫鏈對營銷中的渠道歸因建模
matlab實現(xiàn)MCMC的馬爾可夫轉換ARMA - GARCH模型估計
R語言隱馬爾可夫模型HMM識別不斷變化的股票市場條件
R語言中的隱馬爾可夫HMM模型實例
用機器學習識別不斷變化的股市狀況—隱馬爾科夫模型(HMM)
Matlab馬爾可夫鏈蒙特卡羅法(MCMC)估計隨機波動率(SV,Stochastic Volatility) 模型
MATLAB中的馬爾可夫區(qū)制轉移(Markov regime switching)模型
Matlab馬爾可夫區(qū)制轉換動態(tài)回歸模型估計GDP增長率
R語言馬爾可夫區(qū)制轉移模型Markov regime switching
stata馬爾可夫Markov區(qū)制轉移模型分析基金利率
R語言如何做馬爾可夫轉換模型markov switching model
R語言隱馬爾可夫模型HMM識別股市變化分析報告
R語言中實現(xiàn)馬爾可夫鏈蒙特卡羅MCMC模型