时间序列分析(11)

2023-11-08

上篇介绍的传递函数模型的假设是,会影响到,而不会影响到,因此称为外生变量(exogenous variable)。如果和以及更多的变量之间能够相互影响,此时它们就是内生变量(endogenous variable)。向量自回归模型(vector autoregressive model,VAR模型)研究的就是内生变量之间的相互影响作用。

1 模型形式

以双变量为例:

402 Payment Required

式中,、、、是滞后算子多项式,且阶数相同,假设其阶数为,它也称作是VAR模型的阶数。

对于每个变量来说,预测变量包括本身的阶滞后值、其他变量的阶滞后值、其他变量的当期值(或)。

和为白噪声,且彼此互不相关。

将模型形式中的当期值移到等号左侧,变成如下形式:

402 Payment Required

以矩阵形式写出,

再变换得,

使用一些符号代替上式中的矩阵,得到下式:

式中,,其余依次类推。

上式中,等号右侧不再包含变量的当期值,称为「VAR模型的标准形式」,而包含当期值的形式称为「结构性VAR模型」

变量当期值之间的相关性被隐藏在模型残差之中。因为,

显然,若变量的当期值之间存在联系,即和至少有一个不为0,则和必然相关;反之,若变量的当期值不存在相互影响,则和也不相关。

此外,模型中还可加入其他项,如截距(即)、时间趋势项、外生变量等。

2 模型估计

在R语言中,可以使用vars工具包对VAR模型进行估计。

2.1 标准形式VAR

若VAR模型中有个内生变量,则有个模型表达式。标准形式的VAR模型可以直接使用OLS方法对每个表达式进行估计,使用的函数是VAR(),语法结构如下:

VAR(y, p = 1, type = c("const", "trend", "both", "none"),
    season = NULL, exogen = NULL, 
    lag.max = NULL,
    ic = c("AIC", "HQ", "SC", "FPE"))

该函数针对的模型形式如下:

402 Payment Required

参数含义如下:

  • y:内生变量构成的矩阵,每列代表一个变量;

  • p:模型阶数;

  • type:确定成分的类型,包括截距、时间项、二者兼有、二者皆无,分别使用"const"、 "trend"、"both"、"none"表示;

  • season:居中的季节虚拟变量;

  • exogen:外生变量构成的矩阵,对应模型形式中的;

  • lag.max:若模型阶数不确定,可通过此参数设置最大阶数,再根据ic参数指定的准则确定“最优”阶数;

  • ic:确定“最优”阶数的信息准则。

官方文档示例:

library(vars)
data(Canada)
head(Canada)
##             e     prod       rw    U
## [1,] 929.6105 405.3665 386.1361 7.53
## [2,] 929.8040 404.6398 388.1358 7.70
## [3,] 930.3184 403.8149 390.5401 7.47
## [4,] 931.4277 404.2158 393.9638 7.27
## [5,] 932.6620 405.0467 396.7647 7.37
## [6,] 933.5509 404.4167 400.0217 7.13

model <- VAR(Canada, p = 2, type = "const")
summary(model)

上述代码会输出每个模型表达式的参数估计结果。以第一个变量e为例:

## Estimation results for equation e: 
## ================================== 
## e = e.l1 + prod.l1 + rw.l1 + U.l1 + e.l2 + prod.l2 + rw.l2 + U.l2 + const 
## 
##           Estimate Std. Error t value Pr(>|t|)    
## e.l1     1.638e+00  1.500e-01  10.918  < 2e-16 ***
## prod.l1  1.673e-01  6.114e-02   2.736  0.00780 ** 
## rw.l1   -6.312e-02  5.524e-02  -1.143  0.25692    
## U.l1     2.656e-01  2.028e-01   1.310  0.19444    
## e.l2    -4.971e-01  1.595e-01  -3.116  0.00262 ** 
## prod.l2 -1.017e-01  6.607e-02  -1.539  0.12824    
## rw.l2    3.844e-03  5.552e-02   0.069  0.94499    
## U.l2     1.327e-01  2.073e-01   0.640  0.52418    
## const   -1.370e+02  5.585e+01  -2.453  0.01655 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 0.3628 on 73 degrees of freedom
## Multiple R-Squared: 0.9985,  Adjusted R-squared: 0.9984 
## F-statistic:  6189 on 8 and 73 DF,  p-value: < 2.2e-16

以及残差的协方差矩阵和相关系数矩阵:

## Covariance matrix of residuals:
##              e      prod       rw        U
## e     0.131635 -0.007469 -0.04210 -0.06909
## prod -0.007469  0.425711  0.06461  0.01392
## rw   -0.042099  0.064613  0.60886  0.03422
## U    -0.069087  0.013923  0.03422  0.07821
## 
## Correlation matrix of residuals:
##             e     prod      rw       U
## e     1.00000 -0.03155 -0.1487 -0.6809
## prod -0.03155  1.00000  0.1269  0.0763
## rw   -0.14870  0.12691  1.0000  0.1568
## U    -0.68090  0.07630  0.1568  1.0000

2.2 结构性VAR

从前面的标准形式转换成如下结构性VAR形式:

402 Payment Required

与标准形式相比,,其余以此类推。

虽然标准形式的VAR是从结构性VAR中推导出来的,但该过程是不可逆的。很容易理解,已知和能够得到;反之,已知并不能得到和。

对于结构性VAR模型,只有和中的部分元素已知时才能将其估计出来。

例如,假设已知不受当期值影响,即已知,也即,则此时结构性VAR的其他参数是可以被估计出来的。

估计结构性VAR使用的函数是SVAR(),语法结构如下:

SVAR(x, estmethod = c("scoring", "direct"), 
     Amat = NULL, Bmat = NULL,
     start = NULL, max.iter = 100, 
     conv.crit = 0.1e-6, maxls = 1.0,
     lrtest = TRUE, ...)

参数含义如下:

  • x:使用VAR()函数估计出的标准形式VAR;

  • Amat、Bmat:对矩阵A和B施加约束。若只对A和B其中一个施加约束,则另外一个默认为单位矩阵;对于需要施加约束的矩阵,已知的元素直接赋给相应的值,待估计的元素设置为NA。

m <- diag(4)
diag(m) <- NA
m[2, 1] <- NA
m[4, 1] <- NA
m
##      [,1] [,2] [,3] [,4]
## [1,]   NA    0    0    0
## [2,]   NA   NA    0    0
## [3,]    0    0   NA    0
## [4,]   NA    0    0   NA

smodel <- SVAR(model, Amat = m)
print(smodel)
## SVAR Estimation Results:
## ======================== 
## 
## 
## Estimated A matrix:
##          e  prod    rw     U
## e    2.756 0.000 0.000 0.000
## prod 0.087 1.533 0.000 0.000
## rw   0.000 0.000 1.282 0.000
## U    2.562 0.000 0.000 4.882
推荐阅读

e070939dad5b60330d2eaf53fd5dc6aa.png
ggplot2基础语法系列推文汇总
389bae3676edf54a78f76abcc222719b.png
胶水函数用法的几个例子
640fc92db014352390d067d1966d4980.png
空间计量经济模型的简单形式在R语言中的实现
c53e93ee246540f8546421547f6a14b3.png
使用R语言的常用工具包绘制双变量填充地图
c2b7cb0d72ed332e5e5eb1fc5985c4a3.png
R语言基础绘图系统的拼图功能

2de0b9d49297038f0f057034c539d755.png
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

时间序列分析(11) 的相关文章

随机推荐

  • 【Web基础入门】一文搞懂HTML + CSS + JavaScript 简单了解

    html html是什么 超文本标记语言 运行在浏览器上 超文本 超级文本 如流媒体 声音 视频 标记语言 由大量的标签组成 标签 任何一个标签都有开始标签和结束标签 html不是编程语言 没有变量 数据类型 控制语句等 只能算一种浏览器的
  • Dubbo使用nacos作为注册中心原理剖析

    Nacos是阿里自研的 一个更易于构建云原生应用的动态服务发现 配置管理和服务管理平台 作为微服务注册中心 它的目标是淘汰目前流行的eureka zookeeper consul等组件 现在学习它真的很有必要 这里就还是从源码的角度出发 看
  • 客观面试题--31.springmvc的运行流程

    Spring工作流程描述 1 用户向服务器发送请求 请求被Spring 前端控制Servelt DispatcherServlet捕获 2 DispatcherServlet对请求URL进行解析 得到请求资源标识符 URI 根据映射判断该u
  • SpringBoot yml中list、map填写和使用

    在 yml 中填写不同类型结构的数据 并在容器启动时 加载到变量中 即内存中 方便使用 应用场景 1 配置不想放库中了 2 有些复杂 不常改变的数据 临时需求 简单使用 yml myCode list topic1 topic2 topic
  • Python.密码本生成

    import itertools import string import os import time def get words 生成字符 return print string digits print string ascii lo
  • 第1关:实现一个顺序存储的线性表

    任务描述 本关任务 实现 step1 Seqlist cpp 中的SL InsAt SL DelAt和SL DelValue三个操作函数 以实现线性表中数据的插入 删除与查找等功能 相关知识 线性表是最基本 最简单 也是最常用的一种数据结构
  • centos7离线安装nginx【亲测有效】

    离线安装Nginx所需要的所有文件都在这 点击下载 提取码 1111 一 准备阶段 查看 操作系统是否安装 gcc gcc c 下载Nginx需要依赖的离线安装包 openssl pcre zlib 安装Nginx 二 安装步骤 1 验证安
  • 【BEV Camera-based】View Transformations 论文之FB-BEV,BEV Representation from Forward-Backward。

    在之前的BEV Survey中 提到过 BEV Camera表示仅用视觉或者主要用视觉的算法来实现3D物体检测或者分割 这些cameras来自车身周边 View Transform Module VTM 的主要功能是将多视角相机的特征投射到
  • AttributeError: ‘NoneType‘ object has no attribute ‘flush‘

    问题描述 当你的项目中使用了transformers库 并且使用 pyinstaller 打包无控制台窗口的程序时就会报这个错 Traceback most recent call last File main py line 4 in
  • 【python】关于_tkinter.TclError: image “pyimage1“ doesn‘t exist 问题的解决办法

    最近用tkinter写界面 一个界面一个按钮 打开电脑连接的两个相机 相机的原图以及经过onnx推理的结果 都显示在界面的四个框内 但是新加的放大按钮 在取这个框内图像时 新建个界面放大显示这个图 总报错 报错如下 tkinter TclE
  • Unity3D Shader之路 Shader错误、解决方法和重要内容汇总

    版本 unity 5 4 1 语言 Unity Shader 总起 今天使用Shader的时候遇到了问题 知道是哪边错了 却不知道怎么改 书又放到家里了 最后还是查到解决的代码 但是这类东西还是记录下来比较好 因为也没人会把那些宏命令背下来
  • 获取股票的数据

    if code is 6xxxxxx then add 0 as prefix Otherewise use 1 as prefix for example 600149 it will be 0600149 000001 it will
  • 软件调试的艺术读书笔记

    1 预备知识 1 1 调试工具 GDB Unix程序员最常用的调试工具是GDB 这是由Richard Stallman 开源软件运动的领路人 开 发的GNU项目调试器 GNU Project Debugger 该工具在Linux开发中扮演了
  • 【论文阅读】【yolo系列】YOLOV7的论文阅读

    摘要 YOLOv7在速度和精度方面都超过了所有已知的目标检测器 在GPU V100上的速度为5 FPS到160 FPS的范围内 并且在所有已知的实时对象检测器中具有最高的56 8 的AP 速度为30 FPS或更高 YOLOv7 E6目标检测
  • 深度学习网络篇——VGGNet(Part1 网络结构&训练环节)

    我们上篇文章了解了一下NIN 接下来我们来了解一下VGGNet 可以说是另一波的跪舔和膜拜 VGGNet主要是分为两篇文章 第一篇文章来分享一下VGGNet的网络结构还有训练环节 第二篇文章是分享VGGNet做的分类实验和总结 此为第一篇
  • java性能检测工具:jvisualvm

    前戏 安装JDK并配置好环境变量 1 win R 输入cmd进入命令行界面 2 输入 jvisualvm 可以看到本地的java进程 3 查看CPU 内存使用情况 右下角 运行 运行的线程 休眠 调用sleep 方法的线程 等待 调用wai
  • Spring boot配置多个Redis数据源操作实例

    0 前言 平时都是使用本地环境的单Redis情况比较多 在集群环境的情况下连接多个Redis数据库是很正常的情况 最近小强遇到了一个问题 在SpringBoot项目中整合了两个Redis的操作实例 今天的数据产生后 需要完成离线数据和实时数
  • Mac上通过Pyenv安装python

    Mac上通过Pyenv安装python 前言 1 安装Pyenv 1 1A 使用Homebrew安装 1 1A 1 安装Homebrew 1 1A 2 安装pyenv 1 1B 使用git安装 1 2 配置环境变量 2 安装Python 3
  • 【ACCV2022】论文阅读笔记Lightweight Alpha Matting Network Using Distillation-Based Channel Pruning

    Lightweight Alpha Matting Network Using Distillation Based Channel Pruning 使用基于蒸馏通道裁剪的轻量Alpha抠图网络 https arxiv org pdf 22
  • 时间序列分析(11)

    上篇介绍的传递函数模型的假设是 会影响到 而不会影响到 因此称为外生变量 exogenous variable 如果和以及更多的变量之间能够相互影响 此时它们就是内生变量 endogenous variable 向量自回归模型 vector