分享

R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证指数收益时间序列

 拓端数据 2023-04-04 发布于浙江

全文链接:http:///?p=31162

最近我们被客户要求撰写关于SV模型的研究报告,包括一些图形和统计输出点击文末“阅读原文”获取完整代码数据

相关视频

本文做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)) #指标一:logReturn
rets=diff(data$close)/data$close[-length(data$close)] #指标二:Daily Returns,我们选择Daily Returns
library(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) # 设定区间范围
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("核密度","正态密度"),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 )


    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约