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

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

时间:2023-11-01 11:33:18浏览次数:30  
标签:变量 ## invest 代码 脉冲响应 VAR 模型

 最近我们被客户要求撰写关于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)")

 

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

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

估算值

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

 

r

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

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

预测误差脉冲响应

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

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

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

识别问题

从上图可以看出,在第一期间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)

R语言VAR模型的不同类型的脉冲响应分析|附代码数据_时间序列_03

请注意,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





标签:变量,##,invest,代码,脉冲响应,VAR,模型
From: https://blog.51cto.com/u_14293657/8120337

相关文章

  • R语言实现MCMC中的Metropolis–Hastings算法与吉布斯采样|附代码数据
     最近我们被客户要求撰写关于MCMC的研究报告,包括一些图形和统计输出。创建测试数据第一步,我们创建一些测试数据,用来拟合我们的模型。我们假设预测变量和因变量之间存在线性关系,所以我们用线性模型并添加一些噪音。  trueA<-5trueB<-0trueSd<-10sampleSize<-31......
  • 马尔可夫转换模型研究交通伤亡人数事故时间序列预测|附代码数据
    最近我们被客户要求撰写关于马尔可夫转换模型的研究报告,包括一些图形和统计输出。本文描述了R语言中马尔克夫转换模型的分析过程首先,对模拟数据集进行详细建模。接下来,将马尔可夫转换模型拟合到具有离散响应变量的真实数据集。用于验证对这些数据集建模的不同方法。模拟实例示例数......
  • Android自动化测试框架:UiAutomator和UiAutomator2的区别与示例代码
    UiAutomator和UiAutomator2是两种常用的Android自动化测试框架,它们都是由Google开发的。然而,它们之间存在一些关键的区别:API级别:UiAutomator框架在Android4.3(API级别18)中引入,而UiAutomator2在Android5.0(API级别21)中引入。测试能力:UiAutomator只能测试Android系统应用......
  • 代码雨
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title>......
  • YzmCMS代码审计
    YzmCMS代码审计代码审计#CMS0x01通读index.php里面有很多的define,用这个代码运行下foreach(get_defined_constants(true)['user']as$k=>$v){echo$k.'---'.$v."\r\n";}APP_DEBUG---URL_MODEL---3YZMPHP_PATH---x:\cms\yzmcms-master\I......
  • 前端面试题之代码输出(十七)
    书接之前代码输出题目,异步&事件循环前端面试题之代码输出前端面试题之代码输出二前端面试题之代码输出三前端面试题之代码输出四前端面试题之代码输出五前端面试题之代码输出六前端面试题之代码输出七前端面试题之代码输出八前端面试题之代码输出九前端面试题之代码输出十前端面试题......
  • Linux时间校准、时间同步(ntpdate及C代码NTP客户端代码校准示例)
    背景机器每次机启后时间就会出现异常,因为机器无法访问外网,只能访问局域网的ntp服务,所以需要保证局域网内部有ntp服务,如何安装ntp服务,参考Ubuntu20.04Ntp服务安装及验证。网络时间协议NetworkTimeProtocol(NTP)是一种确保时钟保持准确的方法。如果可以访问互联网,只需安装ntp......
  • 代码
    `#include <stdio.h>include<stdlib.h>include<string.h>include<sys/types.h>include<sys/wait.h>include<unistd.h>include <signal.h>define MAXARGS 20define ARGLEN 100char*makestring(cha......
  • Ardour 8.0 开放源代码 DAW 发布
    导读Ardour8.0近日发布了,这是一款功能强大、免费、开源、跨平台的DAW(数字音频工作站),适用于GNU/Linux、macOS和Windows系统。Ardour8.0的亮点包括:全面支持NovationLaunchpadPro控制器、可对区域进行分组以一起移动或修剪、新的自动化绘图风格、重新设计的MI......
  • 开源 2 年、打磨 13 年、300 万行代码的开源项目
    从刻在石壁上的甲骨文,再到写在纸上的汉字,每一次信息载体的变更都是文化进步的重要标志。在如今这个信息数字化的时代,我们在享受着数字化便利的同时,数据也在我们看不见的地方飞速增长着,数据的重要性不言而喻。那应该如何将海量数据完整、有序、持久化地保存下来呢?程序员小伙伴看......