R语言有很强大的绘图和构建计量模型的功能,比一些软件如Eviews或者SPSS等更加的灵活,但实际应用中出现的一些问题出现也会跟我们带来很多困扰,需要我们不断地尝试加以解决。

近日在创作一篇论文,主要是利用SVAR模型来刻画变量之间的相互影响关系。本人比较喜欢用R语言分析,但在进行脉冲响应分析的时候遇到了一个问题:如何利用R将脉冲响应图整齐地排列起来?起初,我也认为这是一件很简单的事情,但是真正操作的时候,才发现困难重重,足足花了两天的时间才解决这个问题,所以想在这里和大家一起分享一下!

在进行VAR或者SVAR模型时,我们需要加载R语言中很经典的包‘vars’(在老版本中可能是‘VAR’)。数据的读取和模型的设定我就不再赘述,因为这会因不同的问题有很大的不同,我们这里重点讲解一下R语言如何画出脉冲响应图,并将所有脉冲响应图进行整齐地排列和保存。

首先我们需要创建一个VAR的数据类型,‘z<-VAR(SVAR,p=1)’SVAR是我们要研究的经济变量构成的矩阵,本实验包含'A','B','C','D','E'这5个变量。我们这里先构建SVAR模型p=SVAR(z, estmethod = 'scoring', Amat =NULL, Bmat =bmat,start = NULL, max.iter = 100)

P就是一个SVAR模型的结果。然后我们使用命令svec.irf <- irf(p,response = A, n.ahead = 48, boot = TRUE)时,我们可以得到A对于其余5个变量的的脉冲响应图。这个时候问题就来了:这种脉冲响应图只能按enter键一张图一张图地看,不能够一次性的观看所有的图。这很让人抓狂!而且我们将这些图保存起来的时候,也会有很大的麻烦。比如保存成PDF时,会有5页的PDF;保存成PNG或JPEG格式的时候,也得不断点击才能看下一张图,我们无法把所有的的图归并到一张图中,因此我们无法做出我们想要能够粘贴到论文中的结果图!

就像上图所示,每次只能够粘贴一个图,得按ENTER键才能看下一张!而我们希望展示的是1*5的图片,到最后为了展示各个变量的脉冲响应应该展示5*5的图片!当然我也尝试过简单的par(mfrow=c(5,5))这样的方法,然而并没有什么用!(感兴趣的小伙伴们可以试试),因为这是一个plot,不是多个plot。本人经过苦苦思索,终于探索出一套有效的解决办法!那就是模拟地画出脉冲响应图,我们需要对R语言的画图命令和图片效果有深刻地理解,话不多说,我们先附上代码:

#创建1*5的画布窗口,并得出第一个变量的脉冲响应图

par(mfrow=c(1,5))
for(i in 1:1)
{
p=SVAR(z, estmethod = 'scoring',  Amat =NULL, Bmat =bmat,start = NULL, max.iter = 100)
svec.irf <- irf(p,response=name[i], n.ahead = 48, boot = TRUE)
##利用循环语句,得出每一个脉冲响应的图,整齐地排列到画布上
for(j in 1:5)
{
p=as.vector(svec.irf$irf[[j]])
q=as.vector(svec.irf$Upper[[j]])
k=as.vector(svec.irf$Lower[[j]])
low=min(k)-0.1
high=max(q)+0.1
plot(p,type='l',main=paste(paste(svec.irf$response,'from'),svec.irf$impulse[j]),ylim=c(low,high))
lines(q,type='l',lty=2,col='red')
lines(k,type='l',lty=2,col='red')
abline(h=0,col='red')
}
}

R语言有非常强大的画图功能,同时其画图命令的繁琐有时让我们望而却步。不过我已经帮大家设定好了参数,大家可以直接运行代码就好!这个代码运行出来的图如下:

就像上图所示,每次只能够粘贴一个图,得按ENTER键才能看下一张!而我们希望展示的是1*5的图片,到最后为了展示各个变量的脉冲响应应该展示5*5的图片!当然我也尝试过简单的par(mfrow=c(5,5))这样的方法,然而并没有什么用!(感兴趣的小伙伴们可以试试),因为这是一个plot,不是多个plot。本人经过苦苦思索,终于探索出一套有效的解决办法!那就是模拟地画出脉冲响应图,我们需要对R语言的画图命令和图片效果有深刻地理解,话不多说,我们先附上代码:

#创建1*5的画布窗口,并得出第一个变量的脉冲响应图

par(mfrow=c(1,5))
for(i in 1:1)
{
p=SVAR(z, estmethod = 'scoring',  Amat =NULL, Bmat =bmat,start = NULL, max.iter = 100)
svec.irf <- irf(p,response=name[i], n.ahead = 48, boot = TRUE)
##利用循环语句,得出每一个脉冲响应的图,整齐地排列到画布上
for(j in 1:5)
{
p=as.vector(svec.irf$irf[[j]])
q=as.vector(svec.irf$Upper[[j]])
k=as.vector(svec.irf$Lower[[j]])
low=min(k)-0.1
high=max(q)+0.1
plot(p,type='l',main=paste(paste(svec.irf$response,'from'),svec.irf$impulse[j]),ylim=c(low,high))
lines(q,type='l',lty=2,col='red')
lines(k,type='l',lty=2,col='red')
abline(h=0,col='red')
}
}

R语言有非常强大的画图功能,同时其画图命令的繁琐有时让我们望而却步。不过我已经帮大家设定好了参数,大家可以直接运行代码就好!这个代码运行出来的图如下:

就像上图所示,每次只能够粘贴一个图,得按ENTER键才能看下一张!而我们希望展示的是1*5的图片,到最后为了展示各个变量的脉冲响应应该展示5*5的图片!当然我也尝试过简单的par(mfrow=c(5,5))这样的方法,然而并没有什么用!(感兴趣的小伙伴们可以试试),因为这是一个plot,不是多个plot。本人经过苦苦思索,终于探索出一套有效的解决办法!那就是模拟地画出脉冲响应图,我们需要对R语言的画图命令和图片效果有深刻地理解,话不多说,我们先附上代码:

#创建1*5的画布窗口,并得出第一个变量的脉冲响应图

par(mfrow=c(1,5))
for(i in 1:1)
{
p=SVAR(z, estmethod = 'scoring',  Amat =NULL, Bmat =bmat,start = NULL, max.iter = 100)
svec.irf <- irf(p,response=name[i], n.ahead = 48, boot = TRUE)
##利用循环语句,得出每一个脉冲响应的图,整齐地排列到画布上
for(j in 1:5)
{
p=as.vector(svec.irf$irf[[j]])
q=as.vector(svec.irf$Upper[[j]])
k=as.vector(svec.irf$Lower[[j]])
low=min(k)-0.1
high=max(q)+0.1
plot(p,type='l',main=paste(paste(svec.irf$response,'from'),svec.irf$impulse[j]),ylim=c(low,high))
lines(q,type='l',lty=2,col='red')
lines(k,type='l',lty=2,col='red')
abline(h=0,col='red')
}
}

R语言有非常强大的画图功能,同时其画图命令的繁琐有时让我们望而却步。不过我已经帮大家设定好了参数,大家可以直接运行代码就好!这个代码运行出来的图如下:

这样我们就很完美的得到了关于A的脉冲响应的5张图的整齐排列!!!本人做出来的时候非常地激动!那么如何得到所有变量5*5的图呢?聪明的读者已经想到,我们只需要修改上述代码的两个参数即可

par(mfrow=c(5,5))
for(i in 1:5)
{
p=SVAR(z, estmethod = 'scoring',  Amat =NULL, Bmat =bmat,start = NULL, max.iter = 100)
svec.irf <- irf(p,response=name[i], n.ahead = 48, boot = TRUE)
##利用循环语句,得出每一个脉冲响应的图,整齐地排列到画布上
for(j in 1:5)
{
p=as.vector(svec.irf$irf[[j]])
q=as.vector(svec.irf$Upper[[j]])
k=as.vector(svec.irf$Lower[[j]])
low=min(k)-0.1
high=max(q)+0.1
plot(p,type='l',main=paste(paste(svec.irf$response,'from'),svec.irf$impulse[j]),ylim=c(low,high))
lines(q,type='l',lty=2,col='red')
lines(k,type='l',lty=2,col='red')
abline(h=0,col='red')
}
}

金融大数据分析——VAR的脉冲响应图的整齐排列相关推荐

  1. python金融大数据分析笔记----第十章 2(风险测量)

    10.4 风险测量 VaR CVaR 10.4.1. 风险价值(Var) VaR(Value at Risk,风险价值或风险溢价)是度量一项投资或投资组合可能产生的下跌风险的方法,它描述的是在一定的概 ...

  2. python金融大数据分析视频_Python金融大数据分析 PDF 全书超清版

    给大家带来的一篇关于Python相关的电子书资源,介绍了关于Python金融.大数据分析方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小47.8 MB,希尔皮斯科编写,目前豆瓣.亚马逊. ...

  3. python金融数据分析电子版_python 金融大数据分析 pdf

    书籍:Python金融大数据分析 Python for Finance_ Mastering Data-Driven Finance 2nd - 2019.pdf 简介 金融业最近以极高的速度采用了P ...

  4. 金融科技、算法交易、量化金融必读书:Python金融大数据分析第2版

    银行本质上是技术公司. --胡戈•班齐格 近来,Python无疑是金融业的重要策略性技术平台之一.到2018年底,这已经不再是个问题:全世界的金融机构现在都尽最大努力利用Python及其强大的数据分析 ...

  5. python for finance pdf_python金融大数据分析 pdf

    书籍:Python金融大数据分析 Python for Finance_ Mastering Data-Driven Finance 2nd - 2019.pdf 简介 金融业最近以极高的速度采用了P ...

  6. Python金融大数据分析:用pandas处理金融时间序列数据的基础知识

    时间是阻止所有事情同时发生的力量.--雷•卡明斯 本节使用的是以CSV文件形式在本地存储的金融数据集形式为本地存储的CSV文件.从技术上讲,CSV文件是包含数据行结构的文本文件,其特征是以逗号分隔单个 ...

  7. 计算机编程书籍-Python金融大数据分析

    Python金融大数据分析 [德] 伊夫·希尔皮斯科(Yves Hilpisch) 著,姚军 译 ISBN:9787115521330 包装:平装 开本:16开 正文语种:中文 出版社:人民邮电出版社 ...

  8. python与金融数据分析论文_python 金融大数据分析 pdf

    python 金融大数据分析 pdf相关的博客 查看更多 写博客 作者: skin778 966人浏览 评论数:0 6个月前 ![5_6_3](https://yqfile.alicdn.com/b5 ...

  9. python统计分析pdf下载_Python金融大数据分析PDF高清文档下载

    Python凭借其简单.易读.可扩展性以及拥有巨大而活跃的科学计算社区,在需要分析.处理大量数据的金融行业得到了广泛而迅速的应用,并且成为该行业开发核心应用的shouxuan编程语言.<Pyth ...

最新文章

  1. latex常见编译错误和细节
  2. webpack [记录]
  3. oracle中偏移,怎么对相同的坐标点偏移?
  4. Cesium调用Geoserver发布的 WMS、WFS服务
  5. 智能关机软件 c语言,智能关机软件
  6. IO流练习题 实现图片的加密解密操作
  7. 硬件工程师的基本技能
  8. Python-----包和日志的使用
  9. 华为诺亚方舟 | 构建1亿组图文对中文多模态数据集
  10. idea javafx添加maven_IntelliJ IDEA使用之JavaFX
  11. canvas width/height和style.width/style.height
  12. 还在搭建传统IT架构的你,正在慢慢被行业淘汰
  13. 北京航空航天大学计算机科学与技术考研科目,2022北京航空航天大学计算机科学与技术考研备考指导-参考书、分数线...
  14. php获取图片格式(图片后缀)
  15. 读取excel标题、内容
  16. pythong小知识列表
  17. javascript之DOM简介
  18. 转行程序员日记---2020-10-12【不是孤独一人】
  19. 麻省理工计算机专业,麻省理工学院计算机专业介绍_托普仕留学
  20. 对角矩阵的性质(diagonal matrix)

热门文章

  1. seo概念深入的理解
  2. 公务员计算机专业包括哪些专业,公务员计算机类及相关专业有哪些
  3. linux 解压 -zxvf 与-xvf解压方式的区别
  4. JAVA_(面向对象)
  5. 公交线路换乘代码PHP,微信公众平台开发--公交换乘
  6. 自动化设备应用之样本手册
  7. 你为什么进入游戏业?
  8. python语言中mod_mod在python中怎么用
  9. skynet服务端_skynet服务的缺陷 lua死循环
  10. python itertools的使用