R语言用向量自回归(VAR)进行经济数据脉冲响应研究分析

article/2025/11/10 19:59:05

 自从Sims(1980)发表开创性的论文以来,向量自回归模型已经成为宏观经济研究中的关键工具。最近我们被客户要求撰写关于向量自回归(VAR)的研究报告,包括一些图形和统计输出。这篇文章介绍了VAR分析的基本概念,并指导了简单模型的估算过程。 

单变量自回归

VAR代表向量自回归。为了理解这意味着什么,让我们首先来看一个简单的单变量(即仅一个因变量或内生变量)自回归(AR)模型,其形式为yt=a1yt−1+et。 

视频:向量自回归VAR数学原理及R软件经济数据脉冲响应分析实例

【视频】向量自回归VAR数学原理及R语言软件经济数据脉冲响应分析实例

,时长12:01

平稳性

在估算此类模型之前,应始终检查所分析的时间序列是否稳定,即它们的均值和方差随时间变化是恒定的,并且不显示任何趋势行为。 

有一系列统计检验,例如Dickey-Fuller,KPSS或Phillips-Perron检验,以检验序列是否稳定。另一种非常常见的做法是绘制序列并检查其是否围绕恒定的平均值(即水平线)移动。如果是这种情况,它很可能是稳定的。 

自回归滞后模型

像AR(p)模型一样,仅凭其自身的滞后对宏观经济变量进行回归可能是一种限制性很大的方法。通常,更合适的假设是还有其他因素。通过包含因变量的滞后值以及其他(即,外生)变量的同期和滞后值的模型来实现这种想法。同样,这些外生变量应该是稳定的。对于内生变量yt和外生变量xt例如自回归分布滞后或ADL,模型可以写成

yt=a1yt−1+b0xt+b1xt−1+et.

这种ADL模型的预测性能可能会比简单的AR模型更好。但是,如果外生变量也依赖于内生变量的滞后值怎么办?这意味着xt也是内生的,还有进一步的空间可以改善我们的预测。

向量自回归模型

 因此,如上所述,VAR模型可以重写为一系列单独的ADL模型。实际上,可以通过分别估计每个方程来估计VAR模型。

标准VAR模型的协方差矩阵是对称的,即,对角线右上角的元素(“上三角”)将对角线左下角的元素(“下三角”)镜像。这反映了这样一种想法,即内生变量之间的关系仅反映相关性,并且不允许做出因果关系的陈述,因为在每个方向上的影响都是相同的。 

在所谓的结构化 VAR(SVAR)模型的背景下分析了同时因果关系,或更确切地说,是变量之间的结构关系,该模型对协方差矩阵施加了限制 。 

在本文中,我考虑VAR(2)过程。 

此示例的人工样本是在R中生成的

set.seed(123) # 由于可复制性的考虑,重置随机数发生器# 生成样本
t <- 200 # 时间序列观察数
k <- 2 # 内生变量数
p <- 2 # 滞后阶数# 生成系数矩阵
A.1 <- matrix(c(-.3, .6, -.4, .5), k) # 滞后系数矩阵1
A.2 <- matrix(c(-.1, -.2, .1, .05), k) # 滞后系数2
A <- cbind(A.1, A.2) # 系数矩阵# 生成序列series <- matrix(0, k, t + 2*p) # 带有0的原始序列
for (i in (p + 1):(t + 2*p)){ # 生成e ~ N(0,0.5)的序列series[, i] <- A.1%*%series[, i-1] + A.2%*%series[, i-2] + rnorm(k, 0, .5)
}series <- ts(t(series[, -(1:p)])) # 转换为时间序列格式
names <- c("V1", "V2") # 重命名变量plot.ts(series) # 绘制序列

估算值

简单VAR模型的参数和协方差矩阵的估计很简单。

为了估计VAR模型,加载并指定数据(y)和 模型。 

 比较

VAR分析中的一个中心问题是找到滞后的阶数,以产生最佳结果。模型比较通常基于信息标准,例如AIC,BIC或HQ。通常,由于是小样本预测,AIC优于其他标准。但是,BIC和HQ在大型样本中效果很好 。

可以计算标准信息标准以找到最佳模型。在此示例中,我们使用AIC:

 通过查看,summary我们可以看到AIC建议使用2的阶数。

summary(var.aic)
## 
## VAR Estimation Results:
## ========================= 
## Endogenous variables: Series.1, Series.2 
## Deterministic variables: none 
## Sample size: 200 
## Log Likelihood: -266.065 
## Roots of the characteristic polynomial:
## 0.6611 0.6611 0.4473 0.03778
## Call:
## VAR(y = series, type = "none", lag.max = 5, ic = "AIC")
## 
## 
## Estimation results for equation Series.1: 
## ========================================= 
## Series.1 = Series.1.l1 + Series.2.l1 + Series.1.l2 + Series.2.l2 
## 
##             Estimate Std. Error t value Pr(>|t|)    
## Series.1.l1 -0.19750    0.06894  -2.865  0.00463 ** 
## Series.2.l1 -0.32015    0.06601  -4.850 2.51e-06 ***
## Series.1.l2 -0.23210    0.07586  -3.060  0.00252 ** 
## Series.2.l2  0.04687    0.06478   0.724  0.47018    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 0.4638 on 196 degrees of freedom
## Multiple R-Squared: 0.2791,  Adjusted R-squared: 0.2644 
## F-statistic: 18.97 on 4 and 196 DF,  p-value: 3.351e-13 
## 
## 
## Estimation results for equation Series.2: 
## ========================================= 
## Series.2 = Series.1.l1 + Series.2.l1 + Series.1.l2 + Series.2.l2 
## 
##             Estimate Std. Error t value Pr(>|t|)    
## Series.1.l1  0.67381    0.07314   9.213  < 2e-16 ***
## Series.2.l1  0.34136    0.07004   4.874 2.25e-06 ***
## Series.1.l2 -0.18430    0.08048  -2.290   0.0231 *  
## Series.2.l2  0.06903    0.06873   1.004   0.3164    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 0.4921 on 196 degrees of freedom
## Multiple R-Squared: 0.3574,  Adjusted R-squared: 0.3443 
## F-statistic: 27.26 on 4 and 196 DF,  p-value: < 2.2e-16 
## 
## 
## 
## Covariance matrix of residuals:
##          Series.1 Series.2
## Series.1  0.21417 -0.03116
## Series.2 -0.03116  0.24154
## 
## Correlation matrix of residuals:
##          Series.1 Series.2
## Series.1    1.000   -0.137
## Series.2   -0.137    1.000

仔细观察结果,我们可以将真实值 与模型的参数估计值进行比较:

# 真实值
A
##      [,1] [,2] [,3] [,4]
## [1,] -0.3 -0.4 -0.1 0.10
## [2,]  0.6  0.5 -0.2 0.05
# Extract coefficients, standard errors etc. from the object
# produced by the VAR function
est_coefs <- coef(var.aic)# 仅提取两个因变量的系数,并将它们组合为一个矩阵# 输出四舍五入的估计值
round(est_coefs, 2)
##      Series.1.l1 Series.2.l1 Series.1.l2 Series.2.l2
## [1,]       -0.20       -0.32       -0.23        0.05
## [2,]        0.67        0.34       -0.18        0.07

所有估计值都有正确的符号,并且相对接近其真实值。 

脉冲响应

一旦我们确定了最终的VAR模型,就必须解释其估计的参数值。由于VAR模型中的所有变量都相互依赖,因此单个参数值仅提供 有限信息。为了更好地了解模型的动态行为,使用了脉冲响应(IR)。可以绘制响应变量的轨迹,产生在许多宏观论文中都可以找到的那些波浪曲线。

在下面的示例中,我们想知道受到冲击后序列2的行为。指定了我们想要脉冲响应的模型和变量后,我们将时间范围设置n.ahead为20。该图给出了序列2的响应。 

# 计算脉冲响应# 绘制脉冲响应
plot(ir.1)

请注意,正交选项很重要,因为它说明了变量之间的关系。在我们的示例中,我们已经知道不存在这样的关系,因为真正的方差-协方差矩阵(或简称协方差矩阵)在非对角元素中是对角为零的对角线。但是,由于具有200个观测值的有限时间序列数据限制了参数估计的精度,因此协方差矩阵的非对角元素具有正值,这意味着 非零同时效应。为了在IR中排除这种情况,我们设置了ortho = FALSE。结果是,脉冲响应在周期0中从零开始。 也可以尝试另一种方法并进行设置ortho = TRUE,那么绘图从零开始。 

 要了解这一点,还可以计算并绘制累积脉冲响应函数,以了解 总体长期影响:

# 计算脉冲响应# 绘图
plot(ir.2)

我们看到,尽管序列2对序列1中的 反应在某些时期是负面的,但总体效果却是显着正面。



http://chatgpt.dhexx.cn/article/MEUQTyPg.shtml

相关文章

matlab单位阶跃响应与单位脉冲响应,python 已知响应函数求单位阶跃响应或脉冲响应...

最近学习自动控制原理,关于控制系统的一些,老师用布置了一些作业说要用matlab画,我试试python 首先介绍一下所使用的库:control matplotlib sympy 1.control库:用来计算脉冲响应与阶跃响应 Paste_Image.png 2.sympy:用以化简多项式为和的形式方便写参数 比如我们使用 sym…

使用扫频信号测量房间脉冲响应

使用指数扫频正弦信号&#xff0c;信号生成方法如下&#xff1a; 其中: &#xff0c;是扫频信号的起始频率和结束频率 是扫频信号的时长 是扫频率 逆信号是通过缩放时间翻转的信号计算&#xff0c;计算方法如下&#xff1a; 其中 信号的脉冲响应 扫频信号、逆信号、IR&#xf…

matlab一直系统函数画脉冲响应,【 MATLAB 】使用 impz 函数计算并画出脉冲响应

这篇博文在于讨论 impz 函数的使用。 我在 MATLAB 中查看 impz 的帮助文档时,始终看的不是太明白这个函数的使用,于是我根据一个例子,对这个函数做了一点分析,解决了一些我的疑惑,记录于此。 帮助文档上对这个函数的概括是数字滤波器的脉冲响应。 所谓的数字滤波器不就是一…

相关分析法辨识系统脉冲响应

背景介绍 在实际工程中&#xff0c;由于系统的测量都是载噪的&#xff0c;而且噪声对观测数据的影响常常达到不可忽略的地步&#xff0c;因此当噪声影响足以使得要求的精度不足时&#xff0c;就必须考虑噪声的影响。实际中&#xff0c;系统噪声存在各种难以精确描述的因素&…

脉冲响应

使用MATLAB中的系统建模工具对热风枪Chirp激励和输出数据建立三阶模型&#xff0c;并输出该模型的离散系统传递函数&#xff1a;tf2 。 基于Chirp信号激励下系统数据数据建模响应曲线 在MATLAB中显示 tf2 的数据。可以得到该离散时间系统函数有理多项式对应的分子和分母的系…

使用Stata做脉冲响应分析

Source: Rizaudin Sahlan → Impulse Response Function with Stata (time series) 在这篇推文中&#xff0c;我们讨论 VAR 模型中的脉冲响应函数(IRFs)。 脉冲响应函数反映了当 VAR 模型某个变量受到"外生冲击"时&#xff0c;模型中其他变量受到的动态影响。我们会…

matlab 单位脉冲响应,滤波器系数、单位脉冲响应、频率响应等概念笔记

单位脉冲响应&#xff1a;单位脉冲和滤波器系数的卷积。 对于FIR滤波器来说&#xff0c;单位脉冲响应就是滤波器系数。对于IIR滤波器&#xff0c;应该是需要用matlab中的filter函数&#xff0c;得到单位脉冲响应。 频率响应&#xff1a;幅度和相位随频率的变化关系。具体地&…

单位脉冲(冲激)响应与频率响应

1.线性时不变系统 &#xff08;1&#xff09;线性系统&#xff1a;满足可加性和比例性&#xff08;齐次性&#xff09;的系统。 令y(t)为系统对输入x(t)的响应&#xff1a; 比例性&#xff1a;ay(t)为该系统对ax(t)的响应&#xff0c;其中a为复常数。 可加性&#xff1a;为…

房间脉冲响应测量与模拟方法

本文是作者投稿到“21dB声学人”公众号的文章&#xff0c;现经有允许转载到自己的博客&#xff0c;技术交流可以联系593170280qq.com 房间脉冲响应&#xff08;Room Impulse Response, RIR&#xff09;表征了房间系统的系统响应&#xff0c;可以用于房间均衡和计算房间声学参数…

时间序列分析(12)| 脉冲响应函数、格兰杰因果检验

上篇介绍到&#xff0c;VAR模型研究的是多个时间序列变量之间的相互影响关系&#xff0c;但是模型估计出的参数结果及其显著水平似乎并不能直观地反映这种影响关系&#xff0c;而要想直观地呈现这种关系&#xff0c;就需要使用本篇介绍的「脉冲响应函数」&#xff08;impulse r…

鸢尾花数据集可视化

Iris数据集 Iris数据集包含有四个属性一个标签 四个属性分别是 花萼&#xff08;Sepall&#xff09;长度花萼宽度花瓣(Petal)长度花瓣宽度 一个标签&#xff0c;用来说明是哪一种鸢尾花 山鸢尾(Setosa)变色鸢尾(versicolor)维吉尼亚鸢尾(virginica) 目标 任意两个不同的…

鸢尾花数据集分类--神经网络

1.1 鸢尾花数据集介绍 iris数据集是用来给莺尾花做分类的数据集&#xff0c;每个样本包含了花萼长度、花萼宽度、花瓣长度、花瓣宽度四个特征&#xff0c;我们需要建立一个分类器&#xff0c;该分类器可通过样本的四个特征来来判断样本属于山鸢尾&#xff08;Setosa&#xff0…

机器学习鸢尾花数据集分析

目录 1 sklearn数据集的使用2 sklearn数据集返回值介绍3 查看数据分布4 数据集的划分5 总结 1 sklearn数据集的使用 鸢尾属&#xff08;拉丁学名&#xff1a;Iris L.&#xff09;是单子叶植物纲&#xff0c;鸢尾科多年生草本植物&#xff0c;有块茎或匍匐状根茎&#xff1b;叶…

决策树可视化:鸢尾花数据集分类(附代码数据集)

决策树 数据集实战可视化评价 决策树是什么&#xff1f;决策树(decision tree)是一种基本的分类与回归方法。举个通俗易懂的例子&#xff0c;流程图就是一种决策树。 有没有车&#xff0c;没车的话有没有房&#xff0c;没房的话有没有存款&#xff0c;没存款pass。这个流程就是…

机器学习算法:基于鸢尾花(iris)数据集的数据可视化 (200+收藏)

文章目录 基于鸢尾花(iris)数据集的数据可视化1、数据导入2、查看样本数据3、特征与标签组合的散点可视化3.1、 散点图3.2、 箱型图3.2、 三维散点图想要看更加舒服的排版、更加准时的推送 关注公众号“不太灵光的程序员” 干货推送,微信随时解答你的疑问 😃😃😃 基于…

鸢尾花数据集的可视化

#TensorFlow实战 鸢尾花数据集的可视化化展示 文章目录 前言一、介绍二、步骤1.引入库2.读入数据 前言 数据可视化展示能在实验中可视化展出实验结果&#xff0c;是基础部分 一、介绍 鸢尾花数据集是公开的数据集&#xff0c;可通过URL从TensorFlow的Keras连接下载。 二、步…

探索sklearn | 鸢尾花数据集

1 鸢尾花数据集背景 鸢尾花数据集是原则20世纪30年代的经典数据集。它是用统计进行分类的鼻祖。 sklearn包不仅囊括很多机器学习的算法&#xff0c;也自带了许多经典的数据集&#xff0c;鸢尾花数据集就是其中之一。 导入的方法很简单&#xff0c;不过我比较好奇它是如何来存…

线性回归实例-鸢尾花数据集

文章目录 一、具体实现步骤1. 导入Iris鸢尾花数据集2. 提取花瓣数据3. 拆分数据4. 训练模型 二、可视化结果展示1. 训练集2. 测试集 三、相关知识点讲解1. train_test_split()函数2. LinearRegression()函数3. 散点图与折线统计图的绘制 这篇文章中&#xff0c;我们要通过鸢尾花…

基于朴素贝叶斯的鸢尾花数据集分类

目录 1.作者介绍2.理论知识介绍2.1算法介绍2.2数据集介绍 3.实验代码及结果3.1 数据集下载3.2实验代码3.2实验结果 1.作者介绍 王炜鑫&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;2021级研究生 研究方向&#xff1a;小型无人直升机模型辨识 电子邮件&…

鸢尾花数据集的数据可视化

鸢尾花数据集的数据显示 一、鸢尾花数据集介绍1.历史2.数据集 二、鸢尾花数据集可视化1.普通读取数据方法2.运行结果3.普通读取数据方法4.运行结果5.未使用mglearn库的代码6.运行结果7.使用mglearn库的代码8.运行结果 一、鸢尾花数据集介绍 1.历史 安德森鸢尾花卉数据集&#…