原文链接: http://tecdat.cn/?p=3385

原文出处:拓端数据部落公众号

最近我被要求撰写关于金融时间序列的copulas的调查。 从读取数据中获得各种模型的描述,包括一些图形和统计输出。

相关视频:Copula算法原理和R语言股市收益率相依性可视化分析

Copula算法原理和R语言股市收益率相依性可视化分析

,时长16:34

> oil = read.xlsx(temp,sheetName =“DATA”,dec =“,”)

然后我们可以绘制这三个时间序列

1 1997-01-10 2.73672 2.25465 3.3673 1.54002 1997-01-17 -3.40326 -6.01433 -3.8249 -4.10763 1997-01-24 -4.09531 -1.43076 -6.6375 -4.61664 1997-01-31 -0.65789 0.34873 0.7326 -1.51225 1997-02-07 -3.14293 -1.97765 -0.7326 -1.87986 1997-02-14 -5.60321 -7.84534 -7.6372 -11.0549

这个想法是在这里使用一些多变量ARMA-GARCH过程。这里的启发式是第一部分用于模拟时间序列平均值的动态,第二部分用于模拟时间序列方差的动态。

本文考虑了两种模型

  • 关于ARMA模型残差的多变量GARCH过程(或方差矩阵动力学模型)
  • 关于ARMA-GARCH过程残差的多变量模型(基于copula)

因此,这里将考虑不同的序列,作为不同模型的残差获得。我们还可以将这些残差标准化。

ARMA模型

> fit1 = arima(x = dat [,1],order = c(2,0,1))
> fit2 = arima(x = dat [,2],order = c(1,0,1))
> fit3 = arima(x = dat [,3],order = c(1,0,1))
> m < - apply(dat_arma,2,mean)
> v < - apply(dat_arma,2,var)
> dat_arma_std < - t((t(dat_arma)-m)/ sqrt(v))

ARMA-GARCH模型

> fit1 = garchFit(formula = ~arma(2,1)+ garch(1,1),data = dat [,1],cond.dist =“std”)
> fit2 = garchFit(formula = ~arma(1,1)+ garch(1,1),data = dat [,2],cond.dist =“std”)
> fit3 = garchFit(formula = ~arma(1,1)+ garch(1,1),data = dat [,3],cond.dist =“std”)
> m_res < - apply(dat_res,2,mean)
> v_res < - apply(dat_res,2,var)
> dat_res_std = cbind((dat_res [,1] -m_res [1])/ sqrt(v_res [1]),(dat_res [,2] -m_res [2])/ sqrt(v_res [2]),(dat_res [ ,3] -m_res [3])/ SQRT(v_res [3]))

多变量GARCH模型

可以考虑的第一个模型是协方差矩阵多变量EWMA

> ewma = EWMAvol(dat_res_std,lambda = 0.96)

波动性

> emwa_series_vol = function(i = 1){
+ lines(Time,dat_arma [,i] + 40,col =“gray”)
+ j = 1
+ if(i == 2)j = 5
+ if(i == 3)j = 9

隐含相关性

> emwa_series_cor = function(i = 1,j = 2){
+ if((min(i,j)== 1)&(max(i,j)== 2)){
+ a = 1; B = 9; AB = 3}
+ r = ewma $ Sigma.t [,ab] / sqrt(ewma $ Sigma.t [,a] *
+ ewma $ Sigma.t [,b])
+ plot(Time,r,type =“l”,ylim = c(0,1))
+}

多变量GARCH,即BEKK(1,1)模型,例如使用:

> bekk = BEKK11(dat_arma)
> bekk_series_vol function(i = 1){
+ plot(Time, $ Sigma.t [,1],type =“l”,
+ ylab = (dat)[i],col =“white”,ylim = c(0,80))
+ lines(Time,dat_arma [,i] + 40,col =“gray”)
+ j = 1
+ if(i == 2)j = 5+ if(i == 3)j = 9> bekk_series_cor = function(i = 1,j = 2){
+ a = 1; B = 5; AB = 2}
+ a = 1; B = 9; AB = 3}
+ a = 5; B = 9; AB = 6}
+ r = bk $ Sigma.t [,ab] / sqrt(bk $ Sigma.t [,a] *
+ bk $ Sigma.t [,b])

从单变量GARCH模型中模拟残差

第一步可能是考虑残差的一些静态(联合)分布。单变量边缘分布是

边缘密度的轮廓(使用双变量核估计器获得)

也可以将copula密度可视化(上面有一些非参数估计,下面是参数copula)

> copula_NP = function(i = 1,j = 2){
+ n = nrow(uv)
+ s = 0.3+ norm.cop < - normalCopula(0.5)
+ norm.cop < - normalCopula(fitCopula(norm.cop,uv)@estimate)
+ dc = function(x,y)dCopula(cbind(x,y),norm.cop)+ ylab = names(dat)[j],zlab =“copule Gaussienne”,ticktype =“detailed”,zlim = zl)
+
+ t.cop < - tCopula(0.5,df = 3)
+ t.cop < - tCopula(t.fit [1],df = t.fit [2])+ ylab = names(dat)[j],zlab =“copule de Student”,ticktype =“detailed”,zlim = zl)
+}

可以考虑这个函数,

计算三个序列的的经验版本,并将其与一些参数版本进行比较,

>> lambda = function(C){
+ l = function(u)pcopula(C,cbind(u,u))/ u
+ v = Vectorize(l)(u)
+ return(c(v,rev(v)))
+}
>> graph_lambda = function(i,j){
+ X = dat_res
+ U = rank(X [,i])/(nrow(X)+1)
+ V = rank(X [,j])/(nrow(X)+1)+ normal.cop < - normalCopula(.5,dim = 2)
+ t.cop < - tCopula(.5,dim = 2,df = 3)
+ fit1 = fitCopula(normal.cop,cbind(U,V),method =“ml”)
d(U,V),method =“ml”)
+ C1 = normalCopula(fit1 @ copula @ parameters,dim = 2)
+ C2 = tCopula(fit2 @ copula @ parameters [1],dim = 2,df = trunc(fit2 @ copula @ parameters [2]))
+

但人们可能想知道相关性是否随时间稳定。

> time_varying_correl_2 = function(i = 1,j = 2,
+ nom_arg =“Pearson”){
+ uv = dat_arma [,c(i,j)]
nom_arg))[1,2]
+}
> time_varying_correl_2(1,2)> time_varying_correl_2(1,2,“spearman”)> time_varying_correl_2(1,2,“kendall”)

斯皮尔曼与时变排名相关系数

或肯德尔 相关系数

为了模型的相关性,考虑DCC模型(S)

> m2 = dccFit(dat_res_std)
> m3 = dccFit(dat_res_std,type =“Engle”)
> R2 = m2 $ rho.t
> R3 = m3 $ rho.t

要获得一些预测, 使用例如

> garch11.spec = ugarchspec(mean.model = list(armaOrder = c(2,1)),variance.model = list(garchOrder = c(1,1),model =“GARCH”))
> dcc.garch11.spec = dccspec(uspec = multispec(replicate(3,garch11.spec)),dccOrder = c(1,1),
distribution =“mvnorm”)
> dcc.fit = dccfit(dcc.garch11.spec,data = dat)
> fcst = dccforecast(dcc.fit,n.ahead = 200)

 


最受欢迎的见解

1.HAR-RV-J与递归神经网络(RNN)混合模型预测和交易大型股票指数的高频波动率

2.R语言中基于混合数据抽样(MIDAS)回归的HAR-RV模型预测GDP增长

3.波动率的实现:ARCH模型与HAR-RV模型

4.R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测

5.GARCH(1,1),MA以及历史模拟法的VaR比较

6.R语言多元COPULA GARCH 模型时间序列预测

7.R语言基于ARMA-GARCH过程的VAR拟合和预测

8.matlab预测ARMA-GARCH 条件均值和方差模型

9.R语言对S&P500股票指数进行ARIMA + GARCH交易策略

拓端tecdat|R语言ARMA-GARCH-COPULA模型和金融时间序列案例相关推荐

  1. 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险

    最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...

  2. 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测

    最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...

  3. 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系

    最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...

  4. 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例

    最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...

  5. R语言用Garch模型和回归模型对股票价格分析

    原文链接:http://tecdat.cn/?p=18310 为了找出影响价格波动的主要因素,我们使用逐步回归法来剔除一些对于应变量即价格影响很小的自变量剔除出我们的模型(点击文末"阅读原文 ...

  6. 【视频】什么是梯度下降?用线性回归解释和R语言估计GARCH实例

    全文链接:http://tecdat.cn/?p=23606 梯度下降是一种优化算法,能够为各种问题找到最佳解决方案(点击文末"阅读原文"获取完整代码数据). 梯度下降是什么? 梯 ...

  7. R语言用GARCH模型波动率建模和预测、回测风险价值 (VaR)分析股市收益率时间序列...

    原文链接:http://tecdat.cn/?p=26897 风险价值 (VaR) 是金融风险管理中使用最广泛的市场风险度量,也被投资组合经理等从业者用来解释未来市场风险(点击文末"阅读原文 ...

  8. 使用r语言做garch模型_使用GARCH估计货币波动率

    使用r语言做garch模型 Asset prices have a high degree of stochastic trends inherent in the time series. In o ...

  9. 拓端tecdat荣获掘金社区入驻新人奖

    2021年7月,由掘金发起了"入驻成长礼"颁奖活动.本次活动邀请到知名开发者.服务机构代表等业界人士. 据了解,掘金社区"新入驻创作者礼"主要对已经积累了一定历 ...

  10. 拓端tecdat荣获2022年度51CTO博主之星

    相信技术,传递价值,这是51CTO每一个技术创作者的动力与信念,2022 年度,拓端tecdat 作为新锐的数据分析咨询公司,在51CTO平台上,不断的输出优质的技术文章,分享前沿创新技术,输出最佳生 ...

最新文章

  1. js中如何得到循环中的点击的这个id_Js篇面试题9请说一下Js中的事件循环机制
  2. 独家 | 改善AI性别偏见的4种方法
  3. fiddler设置抓取https请求后打开网页总是报“你的连接不是私密链接”的解决办法
  4. oracle database 9i/10g/11g 编程艺术 源代码下载
  5. 找出占用磁盘空间最大的前10个文件或文件夹
  6. php转盘抽奖源码yii2,yii2实现 上一篇,下一篇 功能的代码实例
  7. 双网卡服务器SOCKET编程指定客户端通信网卡
  8. 数据结构-图及其遍历
  9. android如何获取电视的存储空间,Android TV (二)(处理电视硬件)
  10. TP使用unlink删除文件报错:Resource temporarily unavailable
  11. 翻译: 3.线性神经网络 概览 深入神经网络 pytorch
  12. java版我的世界MITE怎么下_我的世界mite振金版
  13. 淘思精灵-网赚菜鸟的福音
  14. imdb数据集电影评论分类
  15. 360杀毒软件无视宏病毒!
  16. 银行对公业务数字化迎来新机遇
  17. 人人都可以成为记忆高手--罗马室记忆法则
  18. 谈谈你对ThreadLocal的理解
  19. 对几款网络抓包工具的评测
  20. iOS编译cURL库并链接darwinssl,zlib,c-ares库操作步骤

热门文章

  1. javascript中replace的正则表达式语法
  2. MVC中使用编辑器提交内容时出错的解决方法
  3. python tornade 模板扩展
  4. 第四季-专题19-I2C驱动程序设计
  5. PHP学习思维导图--小树好久没长大了,给它加点枝叶
  6. qa qc qm的区别
  7. 2D空间中求线段与圆的交点
  8. 浏览器兼容性检查从5.5到11的Internet Explorer版本_IETester
  9. UI_UISlider控件
  10. cocos2d Labels and Fonts 标签和字体