R语言实现向量自回归和误差修正模型——附实战代码

      大家好,我是带我去滑雪!

      向量自回归(VAR)模型和误差修正模型(ECM)是时间序列分析中常用的两种模型,它们用于研究多个变量之间的动态关系。VAR 模型适用于研究多个相关变量之间的相互影响和动态关系,特别是在没有明确的因果关系方向时。ECM 是基于向量自回归模型的一种扩展,旨在处理协整关系。协整关系表示变量之间存在长期均衡关系。在实践中,研究人员通常使用单位根检验(如ADF检验)来检查时间序列是否平稳,然后使用协整检验来确定是否存在协整关系。如果存在协整关系,就可以考虑使用 VAR 模型和 ECM 模型来分析变量之间的关系。这些模型在经济学、金融学和其他领域中广泛应用,以揭示变量之间的动态性质和长期均衡关系。

一、向量自回归模型

(1)平稳VAR多变量原理

       平稳向量自回归(VAR)模型是一种多变量时间序列分析方法,用于研究变量之间的动态关系。在VAR模型中,所有的变量被同时建模,每一个变量都被其它所有变量的滞后值所影响。这种模型假设所有的变量都是平稳的,也就是说,它们的均值和方差在时间上是稳定的。总的来说,VAR模型的核心思想是将多个变量之间的关系纳入一个系统方程中,通过时间序列的历史数据来估计这些关系,从而实现对未来变量值的预测和分析。VAR模型的基本原理可以总结如下:

  1. 平稳性假设: VAR模型假设所涉及的所有变量都是平稳的。平稳性是指变量的统计特性,如均值和方差,在时间上保持不变。如果变量不是平稳的,通常需要进行差分操作,直到得到平稳的数据。

  2. 滞后阶数选择: 在构建VAR模型时,需要选择滞后阶数(lag order),表示当前时刻的变量值受多少时期之前的变量值影响。选择适当的滞后阶数通常需要借助信息准则(如AIC或BIC)来进行。

  3. 模型参数估计: 一旦选择了滞后阶数,就可以用最小二乘法(OLS)或极大似然法来估计VAR模型的参数。这些参数代表了各个变量之间的线性关系。

  4. 脉冲响应函数和方差分解: 通过VAR模型,可以得到系统中各个变量对于其它变量脉冲(冲击)的响应模式。脉冲响应函数显示了一个变量在受到一个单位冲击时的反应情况。方差分解则能够量化各个变量在系统变动中所占的比重。

  5. 预测和融合: 一旦VAR模型被估计出来,就可以用来进行未来数值的预测。此外,VAR模型还可以与其他模型或分析方法融合,以提高预测的准确性。

(2)下载并整理数据,为构建VAR模型做准备

       下载数据可以查看前面的博客(http://t.csdnimg.cn/tdjvG),本期使用getSymbls函数从网络上下载IBM从2015年1月1日到2017年1月18日的股票数据,数据包含IBM的开盘价、收盘价、成交量等数据。

install.packages("TTR")
library(quantmod)
IBM.dat = getSymbols("IBM", from="2015-01-01",to="2017-01-18", adjust = T, auto.assign = FALSE)
head(IBM.dat)
tail(IBM.dat)
Return = diff(log(IBM.dat[, 4]))*100
volume = log(IBM.dat[, 5])
plot(Return, xlab = "dates", main = "Time series of IBM returns")
plot(volume, xlab = "dates", main = "Time series of IBM volume")
dat0=cbind(Return, volume)
head(dat0)
dat=na.omit(dat0)

输出结果:

(3)估计VAR(p)

library(vars)
out.var=VAR(dat, p=1, type="const", season=NULL, exogen=NULL, lag.max=NULL)
options(digits=4)
coef(out.var)

输出结果:

$Return
               Estimate Std. Error         t value  Pr(>|t|)
Return.l    1  0.08745    0.04399   1.988    0.04737
volume.l   1 -1.11633    0.66518  -1.678    0.09391
const        5.59278        3.32232   1.683    0.09291

$volume
                   Estimate      Std. Error    t value      Pr(>|t|)
Return.l    1 0.007989   0.0002939    27.186   2.904e-101
volume.l   1 0.992436   0.0044435   223.347  0.000e+00
const         0.037821     0.0221934    1.704      8.896e-02

(4)Granger因果关系检验

causality(out.var, cause="Return", boot=TRUE, boot.runs=5000)

输出结果:

$Granger

    Granger causality H0: Return do not Granger-cause volume

data:  VAR object out.var
F-Test = 739, boot.runs = 5000, p-value <2e-16


$Instant

    H0: No instantaneous causality between: Return and volume

data:  VAR object out.var
Chi-squared = 76, df = 1, p-value <2e-16

       结果显示,拒绝原假设,认为报酬率是交易量的格兰杰原因。

(5)脉冲响应分析

output.irf=irf(out.var, impulse = "Vol", response = c("Ret","Vol"),boot=TRUE, boot.runs=1000)
output.irf
plot(output.irf) 

二、误差修正模型

      完整代码如下:

library(tsDyn)
lags <- vars::VARselect(dat, lag.max=25)$selection 
vecm.eg<-VECM(dat, lag=lags[3],include ="const", estim = "2OLS")
summary(vecm.eg)
summary(vecm.eg)$coefMat 
vecm.eg$model.specific$beta
vecm.jo<-VECM(dat, lag=lags[3], include ="const", estim = "ML")
summary(vecm.jo)
summary(vecm.jo)$coefMat
vecm.jo$model.specific$beta
library(urca)
cointest_eigen <- ca.jo(dat, K=lags[3], type="eigen", ecdet="const",spec="transitory")
summary(cointest_eigen)
cointest_trace <- ca.jo(dat, K=lags[3], type="trace", ecdet="const",spec="transitory")
summary(cointest_trace)

需要数据集的家人们可以去百度网盘(永久有效)获取:

链接:https://pan.baidu.com/s/1E59qYZuGhwlrx6gn4JJZTg?pwd=2138
提取码:2138 


更多优质内容持续发布中,请移步主页查看。

   点赞+关注,下次不迷路!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/155101.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二叉搜索树--验证二叉搜索树

验证二叉搜索树-力扣 98 题 解题思路&#xff1a;利用二叉树中序遍历的特性&#xff1a;遍历出来的结果是升序的即符合二叉搜索树 对于二叉树中序遍历不是太理解的&#xff0c;作者推荐的小白书&#xff1a;二叉树的初步认识_加瓦不加班的博客-CSDN博客 中序非递归实现 // 解…

剖析伦敦银最新价格走势图

国际金融市场瞬息万变&#xff0c;伦敦银的价格走势会受到诸多因素的影响&#xff0c;比如重要经济数据的公布&#xff0c;国际间的政治博弈&#xff0c;突发的政经大事&#xff0c;都可以令白银价格的走势&#xff0c;在短时间内暴涨暴跌的情况。 要在伦敦银市场实现良好的收益…

CCF CSP认证 历年题目自练Day27

题目一 试题编号&#xff1a; 202104-1 试题名称&#xff1a; 灰度直方图 时间限制&#xff1a; 1.0s 内存限制&#xff1a; 512.0MB 样例输入 7 11 8 0 7 0 0 0 7 0 0 7 7 0 7 0 7 0 7 0 7 0 7 0 7 7 0 0 0 7 0 0 0 7 0 7 7 0 0 0 0 7 0 0 7 7 0 7 0 0 0 0 0 7 0 7 0 0 7 0 …

Apache Doris (三十九):Doris数据导出 - MySQL dump导出

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录

解决Opencv dnn模块无法使用onnx模型的问题(将onnx的动态输入改成静态)

一、问题来源 最近做人脸识别项目&#xff0c;想只用OpenCV自带的人脸检测和识别模块实现&#xff0c;使用OpenCV传统方法&#xff1a;Haar级联分类器人脸检测LBPH算法人脸识别的教程已经有了&#xff0c;于是想着用OpenCV中的dnn模块来实现&#xff0c;dnn实现人脸检测也有&a…

在 centos7 上安装Docker

1、检查linux内核 Docker 运行在 CentOS 7 上&#xff0c;要求系统为64位、系统内核版本为 3.10 以上。 Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上&#xff0c;要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。 uname -r 2、使用 root 权限登录 Centos…

vue-5

一、文章内容概括 1.自定义指令 基本语法&#xff08;全局、局部注册&#xff09;指令的值v-loading的指令封装 2.插槽 默认插槽具名插槽作用域插槽 3.综合案例&#xff1a;商品列表 MyTag组件封装MyTable组件封装 4.路由入门 单页应用程序路由VueRouter的基本使用 二…

JavaScript Web APIs第六天笔记

Web APIs - 第6天笔记 目标&#xff1a;能够利用正则表达式完成小兔鲜注册页面的表单验证&#xff0c;具备常见的表单验证能力 正则表达式综合案例阶段案例 正则表达式 正则表达式&#xff08;Regular Expression&#xff09;是一种字符串匹配的模式&#xff08;规则&#xf…

33 WEB漏洞-逻辑越权之水平垂直越权全解

目录 前言水平&#xff0c;垂直越权&#xff0c;未授权访问Pikachu-本地水平垂直越权演示(漏洞成因)墨者水平-身份认证失效漏洞实战(漏洞成因)原理越权检测-Burpsuite插件Authz安装测试(插件使用)修复防御方案 前言 越权漏洞文章分享&#xff1a;https://www.cnblogs.com/zhen…

零基础Linux_14(基础IO_文件)缓冲区+文件系统inode等

目录 1. 缓冲区 1.1 缓冲区的存在 1.2 缓冲区的刷新策略 1.3 模拟C标准库中的文件操作 完整代码及验证&#xff1a; 1.4 重看缓冲区 1.5 stdout和stderr的区别 2. 文件系统 2.1 磁盘的物理结构CHS等 2.2 磁盘的抽象结构LBA等 2.3 文件管理inode等 2.4 对文件的操作…

QT5 WebCapture 页面定时截图工具

QT5 WebCapture 网页定时截图工具 1.设置启动时间&#xff0c;程序会到启动时间后开始对网页依次进行截图 2.根据所需截图的页面加载速度&#xff0c;设置页面等待时间&#xff0c;尽量达到等页面加载完成后&#xff0c;再执行截图 3.根据需求&#xff0c;设置截图周期 4.程序…

理解http中cookie!C/C++实现网络的HTTP cookie

HTTP嗅探&#xff08;HTTP Sniffing&#xff09;是一种网络监控技术&#xff0c;通过截获并分析网络上传输的HTTP数据包来获取敏感信息或进行攻击。其中&#xff0c;嗅探器&#xff08;Sniffer&#xff09;是一种用于嗅探HTTP流量的工具。 在HTTP嗅探中&#xff0c;cookie是一…

集成内部高端电源开关LTC3637HMSE、LTC3637MPMSE稳压器,TJA1443AT汽车CAN FD收发器。

一、LTC3637 76V、1A 降压型稳压器 &#xff08;简介&#xff09;LTC3637是一款高效率降压DC/DC稳压器&#xff0c;集成内部高端电源开关&#xff0c;功耗仅12μA DC&#xff0c;空载时可保持稳定的输出电压。LTC3637可提供高达1A的负载电流&#xff0c;并具有可编程峰值电流限…

php+html+js+ajax实现文件上传

phphtmljsajax实现文件上传 目录 一、表单单文件上传 1、上传页面 2、接受文件上传php 二、表单多文件上传 1、上传页面 2、接受文件上传php 三、表单异步xhr文件上传 1、上传页面 2、接受文件上传php 四、表单异步ajax文件上传 1、上传页面 2、接受文件上传ph…

PCL点云处理之点云重建为Mesh模型并保存到PLY文件 ---方法二 (二百一十一)

PCL点云处理之点云重建为Mesh模型并保存到PLY文件 ---方法二 (二百一十一) 一、算法介绍二、算法实现1.代码2.效果一、算法介绍 离散点云重建为mesh网格模型,并保存到PLY文件中,用于其他软件打开查看,代码非常简短,复制粘贴即可迅速上手使用,具体参数根据自己的点云数据…

【STM32单片机】防盗报警器设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用STM32F103C8T6单片机控制器&#xff0c;使用按键、动态数码管、蜂鸣器、指示灯、热释电人体红外传感器等。 主要功能&#xff1a; 系统运行后&#xff0c;默认处于布防状态&#xff0c;D1指示灯…

Web3 新手攻略:9 个不可或缺的 APP 助力你踏入加密领域

Web3世界充满了无限机遇&#xff0c;但要掌握它&#xff0c;您需要合适的工具&#xfffd;&#xfffd;&#xfffd;。今天&#xff0c;我将为您介绍9款Web3必备APP&#xff0c;涵盖钱包、DEX、和工具三大类别。而且&#xff0c;我要特别强烈推荐一个强大的钱包——Bitget Wall…

CAN 通信-底层

本文主要以rockchip的rk3568平台基础&#xff0c;介绍can 控制器、硬件电路和底层驱动。 rk3568 CAN 控制器 概览 CAN(控制器区域网络)总线是一种稳健的车载总线标准,它允许微控制器和设备在没有主机计算机的应用中相互通信。它是一个基于消息的协议,最初是为了在汽车中多路…

网工内推 | 实施工程师,有软考证书优先,上市公司,最高14薪

01 新点软件 招聘岗位&#xff1a;实施工程师 职责描述&#xff1a; 1、负责一线项目组对接&#xff0c;完成项目前期信息、需求收集&#xff1b; 2、负责需求验证、管控、上线专项跟进工作&#xff1b; 3、负责在推进过程中总结与沉淀&#xff0c;提升优化对接规范/效率&…

蓝桥杯每日一题2023.10.11

子串分值和 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 以下为50分方法&#xff08;暴力枚举&#xff09; 第一层循环枚举其长度&#xff0c;第二层循环枚举其左端点&#xff0c;k代表右端点&#xff0c;&#xff08;将每一种子串一一枚举出来&#xff09;算出从左端点到右…