【VAR | 时间序列】以美国 GDP 和通货膨胀数据为例的VAR模型简单实战(含Python源代码)

news2025/2/23 14:22:32

以美国 GDP 和通货膨胀数据为例:

1. 数据集

下载数据我们需要从 FRED 数据库下载美国 GDP 和通货膨胀数据,并将它们存储在 CSV 文件中。可以在 FRED 网站(https://fred.stlouisfed.org/)搜索并下载需要的数据。在这里,并且将它们命名为 ‘gdp.csv’ 和 ‘inflation.csv’。

在这里插入图片描述
网站为:

https://fred.stlouisfed.org/

在这里插入图片描述

  • 在搜索栏中输入 ‘GDP’ 并按下回车键,在结果列表中选择 ‘Gross Domestic Product’。
  • 在搜索栏中输入 ‘CPIAUCSL’ 并按下回车键,在结果列表中选择 ‘Consumer Price Index for All
    Urban Consumers: All Items in U.S. City Average’.

注意数据保存为csv格式:

在这里插入图片描述

2. 合并数据集

需要使用 pandas 读取这些 CSV 文件并合并它们。以下是示例代码:

import pandas as pd
# 读取 GDP 和通货膨胀数据
gdp = pd.read_csv('./data/gdp.csv', index_col = 'DATE', parse_dates = True)
inflation = pd.read_csv('./data/inflation.csv', index_col = 'DATE', parse_dates = True)

# 合并数据
data = pd.concat([gdp, inflation], axis=1, join='inner')
data.columns = ['GDP', 'Inflation']

在这里,我们使用 pd.read_csv() 方法读取 GDP 和通货膨胀数据。

我们将它们存储在 gdp 和 inflation 变量中,并使用 pd.concat() 方法将它们合并为一个数据框。

我们还使用 join=‘inner’ 参数来确保只包括同一时间段中的数据,并使用 data.columns 属性为列指定新的名称。

3. 模型使用

接下来,需要使用 VAR() 方法创建 VAR 模型对象。以下是示例代码:

from statsmodels.tsa.api import VAR
model = VAR(data)

在这里,我们使用 Statsmodels 库的 VAR() 方法来创建 VAR 模型对象。我们将合并的数据传递给 VAR() 方法。

然后,我们需要使用 fit() 方法拟合 VAR 模型。以下是示例代码:

results = model.fit(maxlags=2, ic='aic')
results.summary()

在这里,我们使用 fit() 方法拟合 VAR 模型,并指定最大滞后阶数为 2。我们还使用 ic=‘aic’ 参数选择 AIC 准则进行模型选择。最后,我们使用 summary() 方法输出模型参数。

4. 预测

最后,我们可以使用 forecast() 方法进行预测,并使用 plot() 方法将预测结果可视化。以下是示例代码:

import matplotlib.pyplot as plt
import warnings
warnings.simplefilter(action='ignore', category=FutureWarning)

lag_order = results.k_ar
forecast_input = data.values[-lag_order:]
forecast = results.forecast(forecast_input, steps=12*3)
# 将预测结果可视化
forecast_index = pd.date_range(data.index[-1], periods=12*3, freq='M')
forecast_df = pd.DataFrame(forecast, index=forecast_index, columns=['GDP', 'Inflation'])
data.plot(figsize=(12, 6), legend=True)
forecast_df.plot(figsize=(12, 6), legend=True)
plt.xlabel('Time')
plt.ylabel('percent')
plt.show()

在这里插入图片描述
在这里插入图片描述
在这里,我们使用 forecast() 方法预测未来三年(36个月)的 GDP 和通货膨胀。然后,我们使用 plot() 方法将实际数据和预测结果可视化。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

非静压模型SWASH学习(7)——自制算例Lock-Exchange

自制算例Lock-Exchange 算例简介模型配置网格及参数设置网格与地形初始条件与边界条件物理参数设置数值求解方法模型输出计算时间 模拟结果 SWASH是由Delft大学开发,用于模拟非静压条件下的水动力/波浪运动的数值模型。 与模型原理相关的内容详见以下论文&#xff1…

Centos系统安装RabbitMQ消息中间件

记录一下在centos7.x下面安装RabbitMQ消息中间件 RabbitMQ是一个开源而且遵循 AMQP协议实现的基于 Erlang语言编写,因此安装RabbitMQ之前是需要部署安装Erlang环境的 先安装Erlang https://packagecloud.io/rabbitmq/ 点进去可以看到 因为使用的centos是7.x版本的…

内网渗透(六十二)之 NTLM Realy 攻击

NTLM Realy 攻击 NTLM Realy 攻击其实应该称为Net-NTLM Realy 攻击,它发生在NTLM认证的第三步,在Response 消息中存在Net-NTLM Hash,当攻击者获得了 Net-NTLM Hash 后,可以重放Net-NTLM Hash 进行中间人攻击。 NTLM Realy 流程如图所示,攻击者作为中间人在客户端和服务器…

asp.net基于web的音乐管理网站dzkf17A9程序

本系统主要包含了等系统用户管理、公告信息管理、音乐资讯管理、音乐类型管理多个功能模块。下面分别简单阐述一下这几个功能模块需求。 管理员的登录模块:管理员登录系统对本系统其他管理模块进行管理。 用户的登录模块:用户登录本系统,对个…

如何免费使用ChatGPT进行学术润色?你需要这些指令...

目录 1 ChatGPT4.0上线2 中科院ChatGPT学术版3 学术润色Prompts 1 ChatGPT4.0上线 2023年3月14日,OpenAI发布ChatGPT4.0。ChatGPT4.0比3.5更大,拥有更多的参数。这意味着它可以更好地捕捉和理解语言的复杂性和细微差别,而且ChatGPT4.0是多模…

【五一创作】《嵌入式系统》知识总结6:GPIO的结构和功能

GPIO的结构和功能 1.STM32提供通用的输入输出引脚(GPIO) • 输出高低电平控制外设 • 输入0、1检测外设状态 2.可配置为复用的输入输出引脚(AFIO) • 大多数GPIO都有默认的复用功能: 可作为片上外设(如…

基于MobileNet的人脸表情识别系统(MATLAB GUI版+原理详解)

摘要:本篇博客介绍了基于MobileNet的人脸表情识别系统,支持图片识别、视频识别、摄像头识别等多种形式,通过GUI界面实现表情识别可视化展示。首先介绍了表情识别任务的背景与意义,总结近年来利用深度学习进行表情识别的相关技术和…

android基础知识

架构: 应用框架层(Java API Framework)所提供的主要组件: 名称功能描述Activity Manager(活动管理器)管理各个应用程序生命周期,以及常用的导航回退功能Location Manager(位置管理器…

智能是逻辑吗?

智能是指人或机器能够理解、学习、推理、解决问题和适应环境的能力。而逻辑是一种推理方式,它是智能中的一部分,帮助我们正确地推理和理解信息。逻辑能够提高我们的思考能力、解决问题的能力和决策能力,但智能还包括其他方面,如感…

数据结构课程——第一次作业

T1:Gram_ham实现凸包算法&#xff1a; &#xff08;1&#xff09;思路&#xff1a; &#xff08;2&#xff09;代码&#xff1a; #include<iostream> #include<string> #include<vector> #include<algorithm> #include<stack>using namespace …

存储网络架构——DAS、NAS、SAN、分布式组网架构

目录 DAS直连式存储 NAS网络附加存储 SAN存储 存储区域网络 分布式存储组网 DAS直连式存储 DAS遇到的挑战 NAS网络附加存储 向主机提供文件服务&#xff1b;文件系统由存储设备维护&#xff0c;用户访问文件系统&#xff0c;不直接访问底层存储 拥有所有主机上文件与底层存储空…

图像复原与重建

文章目录 一、实验目的二、实验内容1. 噪声图像及其直方图。2. 空间噪声滤波器。3. 逆滤波。 一、实验目的 了解一些常用随机噪声的生成方法。掌握根据指定退化函数对图像进行退化的方法。掌握当模糊图像只存在噪声时的几种滤波复原方法。掌握当模糊图像同时存在线性退化和噪声…

OpenCV C++案例实战三十一《动态时钟》

OpenCV C案例实战三十一《动态时钟》 前言一、绘制表盘二、绘制刻线三、获取系统时间四、结果展示五、源码总结 前言 本案例将使用OpenCV C实现动态时钟效果。原理也很简单&#xff0c;主要分为绘制表盘、以及获取系统时间两步。 一、绘制表盘 首先为了效果显示美观一点&…

数据驱动测试、结果报告生成,Python接口自动化测试全方位解析

B站首推&#xff01;2023最详细自动化测试合集&#xff0c;小白皆可掌握&#xff0c;让测试变得简单、快捷、可靠https://www.bilibili.com/video/BV1ua4y1V7Db 目录 一、背景 二、准备工作 三、编写测试脚本 四、数据驱动测试 五、结果报告生成 六、总结 七、参考链接 …

线性表,顺序表,链表

线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列 线性表是一种在实际中广泛使 用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构&#xff0c;也就说是连续的一条直线 …

阿里云对象存储OSS使用 HTTPS访问

阿里云对象存储OSS使用 HTTPS ​ 在部署项目的时候遇到了一个问题&#xff0c;就是https页面访问http资源报错的问题。 问题&#xff1a; 写了一个前端项目在云服务器部署&#xff0c;我的域名申请了ssl证书并在云服务器nginx部署&#xff0c;所以页面是https页面&#xff0c;但…

Ansible的脚本-playbook 剧本

目录 1.剧本&#xff08;playbook&#xff09; 1.playbook介绍 2. playbooks 的组成 3.案例&#xff1a;编写httpd的playbook 4.定义、引用变量 5.指定远程主机sudo切换用户 6.when条件判断 7.迭代 2.playbook的模块 1.Templates 模块 2.tags 模块 3.Roles 模块 1.…

TCP协议——这篇文章GET全

TCP协议文章目录 1. UDP和TCP协议的比较1.1 UDP协议1.2 TCP协议1.3 特点比较 2. TCP协议建立连接的三次握手3. TCP协议断开连接的四次挥手4. TCP协议的几个特性4.1 确认应答4.2 超时重传4.3 连接管理4.4 滑动窗口4.5 流量控制4.6 拥塞控制 1. UDP和TCP协议的比较 UDP和TCP作为…

多维时序 | MATLAB实现BP神经网络多变量时间序列预测(考虑历史特征的影响,多指标、多图输出)

多维时序 | MATLAB实现BP神经网络多变量时间序列预测(考虑历史特征的影响,多指标、多图输出) 目录 多维时序 | MATLAB实现BP神经网络多变量时间序列预测(考虑历史特征的影响,多指标、多图输出)预测效果基本介绍程序设计学习总结参考资料预测效果 基本介绍 MATLAB实现BP神经网…

Java中的Reflection(反射)、暴力反射

文章目录 1. 反射(Reflection)的概念1.1 反射的出现背景1.2 反射概述1.3 Java反射机制研究及应用1.4 反射相关的主要API1.5 反射的优缺点 2. Class类并获取Class实例2.1 理解Class2.1.1 理论上2.1.2 内存结构上 2.2 获取Class类的实例(四种方法)2.3 哪些类型可以有Class对象2.4…