首页 > 其他分享 >R语言VAR模型的不同类型的脉冲响应分析|附代码数据

R语言VAR模型的不同类型的脉冲响应分析|附代码数据

时间:2023-08-15 20:23:09浏览次数:41  
标签:变量 ## 代码 序列 脉冲响应 VAR 模型

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

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

 最近我们被客户要求撰写关于VAR模型的研究报告,包括一些图形和统计输出。


目录

模型与数据

估算值

预测误差脉冲响应

识别问题

正交脉冲响应

结构脉冲反应

广义脉冲响应

参考文献


脉冲响应分析是采用向量自回归模型的计量经济学分析中的重要一步。它们的主要目的是描述模型变量对一个或多个变量的冲击的演化。因此使它们成为评估经济时非常有用的工具。这篇文章介绍了VAR文献中常用的脉冲响应函数的概念和解释。

模型与数据

为了说明脉冲响应函数的概念,使用了Lütkepohl(2007)的示例。可以从教科书的网站上下载所需的数据集。它包含从1960年1季度到1982年4季度按季度和季节性调整的时间序列,这些序列是西德的固定投资,可支配收入和数十亿德国马克的消费支出。

  r
# 下载数据
data <- read.table("e1.dat", skip = 6, header = TRUE)

# 仅使用前76个观测值,因此有73个观测值
# 取一阶差分后,留给估计的VAR(2)模型。
data <- data[1:76, ]

# 转换为时间序列对象
data <- ts(data, start = c(1960, 1), frequency = 4)

# 取对数和差值
data <- diff(log(data))

# 绘图数据
plot(data,  main = "Dataset E1 from Lütkepohl (2007)")

 

此数据用于估计具有常数项的VAR(2)模型。

估算值

可以使用vars软件包估算VAR模型:

  r

# 查看摘要统计信息
summary(model)

代码的结果应与Lütkepohl(2007)的3.2.3节中的结果相同。

预测误差脉冲响应

由于VAR模型中的所有变量都相互依赖,因此单独的系数估计仅提供有关反应的有限信息。为了更好地了解模型的动态行为,使用了脉冲响应(IR)。线性VAR模型的每个脉冲响应函数的出发点都是其移动平均值(MA)表示,这也是预测误差脉冲响应(FEIR)函数。

在R 中,程序包可用于获取预测误差脉冲响应。

识别问题

从上图可以看出,在第一期间FEIR为零。对于使用的数据集,估计为

   
##              invest       income         cons
## invest 2.129629e-03 7.161667e-05 1.232404e-04
## income 7.161667e-05 1.373377e-04 6.145867e-05
## cons   1.232404e-04 6.145867e-05 8.920351e-05

由于估计方差-协方差矩阵的非对角线元素不为零,因此我们可以假设VAR模型中的变量之间存在同期相关性。这由与Σ相对应的相关矩阵确认:

   
##           invest    income      cons
## invest 1.0000000 0.1324242 0.2827548
## income 0.1324242 1.0000000 0.5552611
## cons   0.2827548 0.5552611 1.0000000

但是,这些矩阵仅描述了误差之间的相关性,但不清楚因果关系的方向。识别这些因果关系是任何VAR分析的主要挑战之一。

 

正交脉冲响应

识别VAR模型的冲击的常用方法是使用正交脉冲响应(OIR)。基本思想是分解方差-协方差矩阵,使∑ = PP− 1,其中P是带有正对角线元素的下三角矩阵,通常通过Choleski分解获得。给定估计方差-协方差矩阵PP,可以通过以下方法获得分解

   

##             invest      income        cons
## invest 0.046147903 0.000000000 0.000000000
## income 0.001551894 0.011615909 0.000000000
## cons   0.002670552 0.004934117 0.007597773

从这个矩阵可以看出,收入冲击对消费具有同时性的影响,反之则不然。

在R 中,vars可以通过设置参数来使用包的功能来获得OIR:

  r

plot(oir)

请注意,Choleski分解的输出是一个较低的三角矩阵,因此第一行中的变量永远不会对任何其他变量的同时冲击敏感,而系统中的最后一个变量将对所有其他变量的冲击敏感。因此,OIR的结果可能对变量的顺序很敏感,建议用不同的顺序估计上述VAR模型,以查看所产生的OIR受此影响的程度。

结构脉冲反应

在VAR模型的估计过程中,结构脉冲响应(SIR)已经考虑了识别问题。

广义脉冲响应

正交和结构响应都可以通过找到变量的正确顺序或通过识别估计的结构参数来约束。Koop等(1998)提出了一种不同类型的响应函数,即所谓的广义脉冲响应(GIR)。它们独立于变量顺序,因为它们将其他冲击的影响整合到响应之外。

对于难以识别结构关系的大型系统,GIR非常有用。

 

参考文献

Koop, G., Pesaran, M. H., Potter, S. M. (1996). Impulse response analysis in nonlinear multivariate models. Journal of Econometrics 74, 119-147. doi:10.1016/0304-4076(95)01753-4


最受欢迎的见解

1.在python中使用lstm和pytorch进行时间序列预测

2.python中利用长短期记忆模型lstm进行时间序列预测分析

3.使用r语言进行时间序列(arima,指数平滑)分析

4.r语言多元copula-garch-模型时间序列预测

5.r语言copulas和金融时间序列案例

6.使用r语言随机波动模型sv处理时间序列中的随机波动

7.r语言时间序列tar阈值自回归模型

8.r语言k-shape时间序列聚类方法对股票价格时间序列聚类

9.python3用arima模型进行时间序列预测

标签:变量,##,代码,序列,脉冲响应,VAR,模型
From: https://www.cnblogs.com/tecdat/p/17632337.html

相关文章

  • [代码随想录]Day18-二叉树part07
    题目:530.二叉搜索树的最小绝对差思路:一个关键问题——BST的中序遍历是由小到大的顺序,也就是说记录遍历的前一个节点,每次比较当前节点-前一个节点的值即可(因为由小到大所以当前>前一个)代码:/***Definitionforabinarytreenode.*typeTreeNodestruct{*Val......
  • 机器人编程教程5使用Git和SD卡副本备份代码
    5使用Git和SD卡副本备份代码在本章中,您将学习到以下内容:代码是如何破坏或丢失的策略1-将代码保存在电脑上并上传策略2:使用Git回溯历史策略3-制作SD卡备份5.1代码是如何破坏或丢失的代码和它的近亲--配置,都需要时间和艰苦的努力。代码需要配置才能运行,例如Ra......
  • 代码随想录算法训练营第十一天|力扣20.有效的括号、力扣1047.删除字符串中所有相邻重
    有效的括号(力扣20.)括号匹配时使用栈解决的经典问题题意其实就像我们在写代码的过程中,要求括号的顺序是一样的有左括号,那么在对应位置则必须有右括号第一种情况:已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以returnfalse第二种情况:遍历字......
  • 用低代码实现企业敏捷运营
    对于敏捷这个词汇,所有人都理解,在快速发展,高强度竞争的商业环境中,只有求变才是生存之道。但是对于一个动辄成百上千的企业来说,并不是愿意变就能够变的。从市场端来看,需要敏锐地发现市场的变化的征兆,基于分析和研判,制定和修正产品战略。缩短从研发到生产的产品闭环。从人力资源角度......
  • 用低代码实现企业敏捷运营
    对于敏捷这个词汇,所有人都理解,在快速发展,高强度竞争的商业环境中,只有求变才是生存之道。但是对于一个动辄成百上千的企业来说,并不是愿意变就能够变的。从市场端来看,需要敏锐地发现市场的变化的征兆,基于分析和研判,制定和修正产品战略。缩短从研发到生产的产品闭环。从人力资源角度,需......
  • 兼职APP源代码软件需求
      兼职APP源代码软件需求  在网络上通过APP软件实现拉新赚钱,做任务,这个也算是一份工作,作为一种新型的做任务模式,已经成为了众多的副业用户的平台。开发一款这样的APP任务软件,都有哪些功能需求呢。  第一、用户体验:用户使用软件时要操作简单,没有太多的功能选项,所有的......
  • 神经网络算法如何用代码实现
    神经网络是一种模仿人类神经系统结构的机器学习算法,用于解决各种任务,如图像分类、自然语言处理等。以下是使用Python中的tensorflow库实现一个简单的神经网络的基本示例,以图像分类为例:importtensorflowastffromtensorflow.keras.datasetsimportmnistfromtensorflow.keras.......
  • 某公司笔试题 - 密码验证合格程序(附python代码)
    #密码要求#1.长度超过8位;2.包括大小写字母,数字,其它符号,以上四种至少三种;3.不能有长度大于2的包含公共元素的字串重复(其他符号不含空格或换行)#数据范围:输入的字符串长度满足1<=n<=100#检测输入密码defcheckpassword(psw):iflen(psw)<=8orlen(psw)>100:r......
  • 创新驱动,星云座低代码二开平台引领智能装备行业变革
    引言:在当今智能装备行业中,随着技术的不断革新,提升管理效率和客户体验已经成为了企业不可忽视的挑战。针对这一挑战,我们引以为傲地推出了一款革命性的软件开发工具——低代码二开平台,助力您的WMS系统迎接新时代的变革。创新驱动,低代码可视化方式在传统的WMS系统开发过程中,繁琐的代码......
  • 警惕网络个人技术人员:隐藏代码风险的启示
    在当今数字化时代,我们对网络上个人技术人员的需求日益增加,这使得技术服务成为一项不可或缺的资源。然而,我最近的经历却引发了我对这种服务可靠性的怀疑,特别是当这些个人技术人员没有正式公司背景,缺乏可信的运营保障时。我之前在网络上寻找了一位个人技术人员,他声称能够提供JS解密服......