时间序列预测的一般步骤

article/2025/8/27 2:46:44

一、ARIMA模型概述

​​在这里插入图片描述
ARMA模型就是AR和MA的简单结合,同时包含了历史数值项和错误项。由于AR和MA模型都对时间序列有平稳性要求,ARMA模型也存在这个限制,因此我们将其拓展到ARIMA模型,其可以解决非平稳性问题。引入的差分概念是一种获得时间序列的方法。最常使用的一种差分方法是计算当前项和前项的差值,获得一组新的时间序列。

对于时间序列问题,一般可以直接考虑使用ARIMA(p,d,q)模型,p代表自回归阶数;d代表差分次数;q代表移动平均阶数。确保这三个参数尽可能的小以避免过拟合,一个可供参数的准则是:不d<=2,p和q<=5,并且p和q尽量保证一个是模型主导项,另一个相对较小。

二、确定ARMA模型参数

ARIMA参数确定方法主要有两种:手动拟合法和自动拟合法

自动拟合ARIMA模型的一般步骤:

1、观察时间序列数据

首先需要可视化观察时间序列数据,了解数据的趋势、季节性和周期性等特征,以确定是否需要进行平稳化或差分操作。

# 导入销售数据,绘制原始图像
sales_data = pd.read_csv('data/retail_sales.csv')
sales_data['date']=pd.to_datetime(sales_data['date'])
sales_data.set_index('date', inplace=True)   # 将date列作为df对象的行索引,这样在之后绘图时行列索引直接就作为折线图的行标签和图例了
sales_data.plot()# plt.plot(sales_data['date'],sales_data['sales'])  # 这样的话就不会生成图例和行索引

在这里插入图片描述

2、相关性检验 / 确定模型的阶数

使用自相关性函数(ACF)和偏自相关性函数(PACF)分析差分后的平稳时间序列数据,确定AR和MA项的阶数。
判别准则
整体相关性检验:整体性检验通常用于检验时间序列数据的整体相关性结构,以确定时间序列的总体相关性和波动。

单个时间间隔相关性:单个时间间隔相关性通常用于分析时间序列数据中的季节性变化、日内变化和周期性变化等。在股票交易领域,我们可能会分析某支股票在不同时间间隔上的表现,例如日内交易、周内交易和月度交易等。单个时间间隔相关性分析可以帮助我们确定该资产的季节性、周期性和日内波动性等特征

3、平稳性检验

如果时间序列数据存在趋势或季节性等非平稳特征,需要进行平稳化或差分操作,以得到平稳的时间序列数据。

常用的方法有:

1、使用statsmodels中的seasonal_decompose方法进行趋势项和季节项的分解,并绘制分解后的时序图像,分别显示趋势、季节性、残差和原始图像的变化)
在这里插入图片描述
2、使用ADFTest检查平稳性

adf_test = ADFTest()
adf_test.should_diff(sales_data)

4、拟合模型

根据确定的模型阶数,拟合ARIMA模型,并检查模型的拟合效果。
具体步骤:
首先划分训练集和测试集,然后进行模型的拟合

train = sales_data[:60]
test = sales_data[60:]predictions = model_fitted.predict(start=len(train_data),end=len(train_data) + len(test_data)-1,dynamic=False)  # dynamic参数表示是否用预测值动态预测下一个时刻的值

输出结果:
模型自动拟合结果

5、模型诊断

检查模型的残差序列是否为白噪声序列,如果不是,则需要重新调整模型参数

5、模型预测

pred = pd.DataFrame(arima_model.predict(n_periods=12),columns=['predicted'],index=test.index)plt.plot(train)
plt.plot(test,label='true')
plt.plot(pred,label='predict')
plt.legend();   # 添加图例

预测曲线和真实曲线

6、模型评估


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

相关文章

时间序列预测算法总结

时间序列算法 time series data mining 主要包括decompose&#xff08;分析数据的各个成分&#xff0c;例如趋势&#xff0c;周期性&#xff09;&#xff0c;prediction&#xff08;预测未来的值&#xff09;&#xff0c;classification&#xff08;对有序数据序列的feature提…

基于深度学习的时间序列预测

# 技术黑板报 # 第十一期 推荐阅读时长&#xff1a;15min 前言 时间序列建模历来是学术和工业界的关键领域&#xff0c;比如用于气候建模、生物科学和医学等主题应用&#xff0c;零售业的商业决策和金融等。虽然传统的统计方法侧重于从领域专业知识层面提供参数模型&#xff0…

预测类问题中的时间序列预测模型

前言&#xff1a;时间序列预测模型适用于含有时间变量的模型预测&#xff0c;对中短期的预测有着较好的结果&#xff0c;对长期预测不适用。本文重点介绍ARIMA模型的原理及代码实现。 其他模型总结&#xff1a;​【Python】Python中的经典时间序列预测模型总结_风度78的博客-C…

Transformer 在时间序列预测中的应用

2017年&#xff0c;Google的一篇 Attention Is All You Need 为我们带来了Transformer&#xff0c;其在NLP领域的重大成功展示了它对时序数据的强大建模能力&#xff0c;自然有人想要把Transformer应用到时序数据预测上。在Transformer的基础上构建时序预测能力可以突破以往的诸…

【推荐收藏】11种比较常用的时间序列预测模型

时间序列及其预测是日常工作中建模&#xff0c;分析&#xff0c;预测的重要组成部分。 本文我们将从0开始介绍时间序列的含义&#xff0c;模型及其分析及其常用的预测模型。 文章目录 交流时间序列定义时间序列预测模型与方法原始数据朴素法简单平均法移动平均法指数平滑法一次…

时间序列预测的20个基本概念总结

1、时间序列 时间序列是一组按时间顺序排列的数据点 比如&#xff1a; 每小时的气压每年的医院急诊按分钟计算的股票价格 2、时间序列的组成部分 时间序列数据有三个主要组成部分。 趋势季节性残差或白噪声 3、趋势 在时间序列中记录的长期缓慢变化/方向。 4、季节性 …

时间序列-预测(Forcasting):时间序列预测算法总结

一、背景介绍 绝大部分行业场景,尤其是互联网、量化行业,每天都会产生大量的数据。金融领域股票价格随时间的走势;电商行业每日的销售额;旅游行业随着节假日周期变化的机票酒店价格等; 我们称这种不同时间收到的,描述一个或多种特征随着时间发生变化的数据,为时间序列…

时间序列预测 | ARMA应用指南

ARMA可谓是时间序列最为经典常用的预测方法&#xff0c;广泛应有于涉及时间序列的各个领域。ARMA模型自出道以来&#xff0c;出场次数不可胜数。想必大家也都不陌生&#xff0c;常学常新&#xff0c;我们今天不妨再来回顾一遍&#xff5e;。 ARMA全称Autoregressive moving ave…

时间序列预测的7种方法

import pandas as pd#取数 #dfpd.read_csv(jetrail.csv) #print(df.head()) ID Datetime Count 0 0 25-08-2012 00:00 8 1 1 25-08-2012 01:00 2 2 2 25-08-2012 02:00 6 3 3 25-08-2012 03:00 2 4 4 25-08-2012 04:00 2#pr…

Transformer时间序列预测

介绍&#xff1a; 提示&#xff1a;Transformer-decoder 总体介绍 本文将介绍一个 Transformer-decoder 架构&#xff0c;用于预测Woodsense提供的湿度时间序列数据集。该项目是先前项目的后续项目&#xff0c;该项目涉及在同一数据集上训练一个简单的 LSTM。人们认为 LSTM 在…

时间序列预测的8种常用方法简介

时间序列预测的7种方法 1. 朴素预测法&#xff08;Naive Forecast) 如果数据集在一段时间内都很稳定&#xff0c;我们想预测第二天的价格&#xff0c;可以取前面一天的价格&#xff0c;预测第二天的值。这种假设第一个预测点和上一个观察点相等的预测方法就叫朴素法&#xff…

常见的时间序列预测模型python实战汇总

最完整的时间序列分析和预测&#xff08;含实例及代码&#xff09;&#xff1a;https://mp.weixin.qq.com/s/D7v7tfSGnoAqJNvfqGpTQA 1 时间序列与时间序列分析 在生产和科学研究中&#xff0c;对某一个或者一组变量 x(t)x(t) ARIMA 模型对时间序列的要求是平稳型。因此&#…

时间序列预测模型

时间序列数据一般有以下几种特点&#xff1a;1.趋势(Trend) 2. 季节性(Seasonality)。 趋势描述的是时间序列的整体走势&#xff0c;比如总体上升或者总体下降。下图所示的时间序列是总体上升的&#xff1a; 季节性描述的是数据的周期性波动&#xff0c;比如以年或者周为周期&…

【数据分析】基于时间序列的预测方法

时间序列预测 目录 时间序列预测1.时间序列介绍2.原始数据集3.导入数据4.检测时间序列的平稳性5.如何使时间序列平稳5.1 估计和消除趋势5.1.1 对数转换5.1.2 移动平均 5.2 消除趋势和季节性5.2.1 差异化5.2.2 分解 6.预测时间序列6.1 AR Model6.2 MA Model6.3 Combined Model6.…

Matlab实现时间序列预测

文章目录 一、数据准备二、时间序列预测分类1、输入为xt&#xff0c;输出是yt2、有x值&#xff0c;有y值&#xff1a;NARX(1)选择模型类型(2)选择输出&#xff0c;只有y_t(3)选择70%用来作为训练数据&#xff0c;15%用来作为验证使用&#xff0c;15%用来测试(4)选择delay(5)开始…

【时序预测】Transformer模型在时间序列预测领域的应用

今天又是一篇Transformer梳理文章&#xff0c;这次应用场景是时间序列预测。Transformer的序列建模能力&#xff0c;让其天然就比较适合时间序列这种也是序列类型的数据结构。但是&#xff0c;时间序列相比文本序列也有很多特点&#xff0c;例如时间序列具有自相关性或周期性、…

11种常见的时间序列预测方法

参考内容&#xff1a;4大类11种常见的时间序列预测方法总结和代码示例 代码地址&#xff1a; https://github.com/SeafyLiang/machine_learning_study/blob/master/time_series 11种常见的时间序列预测方法 1、指数平滑Exponential Smoothing2、Holt-Winters 法3、自回归 (AR)…

时间序列预测方法最全总结!

时间序列预测就是利用过去一段时间的数据来预测未来一段时间内的信息&#xff0c;包括连续型预测&#xff08;数值预测&#xff0c;范围估计&#xff09;与离散型预测&#xff08;事件预测&#xff09;等&#xff0c;具有非常高的商业价值。 需要明确一点的是&#xff0c;与回归…

时间序列(一):时间序列数据与时间序列预测模型

时间序列系列文章&#xff1a; 时间序列&#xff08;一&#xff09;&#xff1a;时间序列数据与时间序列预测模型 时间序列&#xff08;二&#xff09;&#xff1a;时间序列平稳性检测 时间序列&#xff08;三&#xff09;&#xff1a;ARIMA模型实战 时间序列及其预测是日常工…

组合预测模型 | ARIMA-LSTM时间序列预测(Python)

组合预测模型 | ARIMA-LSTM时间序列预测&#xff08;Python&#xff09; 目录 组合预测模型 | ARIMA-LSTM时间序列预测&#xff08;Python&#xff09;预测结果基本介绍程序设计参考资料 预测结果 基本介绍 ARIMA-LSTM时间序列预测&#xff08;Python完整源码和数据&#xff09…