时间序列预测模型:ARIMA模型

1. ARIMA模型原理介绍

ARIMA模型,全称为自回归积分滑动平均模型(Autoregressive Integrated Moving Average Model),是一种常用的时间序列预测方法。ARIMA模型通过对时间序列数据的差分化处理,使非平稳时间序列数据变得平稳,进而利用自回归(AR)滑动平均(MA) 模型对其进行建模和预测。ARIMA模型可以表示为ARIMA(p, d, q),其中:

p:自回归项的阶数,表示预测值与过去值之间的关系。

d:差分次数,使序列平稳所需的差分次数。

q:移动平均项的阶数,表示预测误差与过去误差之间的关系。

2. 实例分析

接下来我们使用一个销售数据来进行ARIMA预测,数据第1列为日期,第2列为销量,利用现有数据预测未来10天的销量数据。

(1)首先读取数据,如何绘制历史数据变化趋势图。

clc,clear
T = readtable('arima_data.xls');
T.Properties.VariableNames
dates=T.x__
sales=T.x___1
plot(dates, sales);
xlabel('日期');
ylabel('销量');
title('销量随时间的变化');

结果如下:

(2)进行平稳性检验、ACF检验、PACF检验,然后确定最合适的p、d、q组合。

% 使用 adftest 检查平稳性
isStationary = adftest(sales);
if ~isStationary% 如果非平稳,进行一阶差分salesDiff = diff(sales);% 重新检查差分后序列的平稳性isStationary = adftest(salesDiff);% 如果还是非平稳,可能需要进行更多的差分操作
end
% 绘制ACF和PACF图
figure;
subplot(2,1,1);
autocorr(salesDiff); % 对差分后的序列绘制ACF图
subplot(2,1,2);
parcorr(salesDiff); % 对差分后的序列绘制PACF图
% 尝试多个p和q的组合
minBIC = Inf;
bestModel = [];
for p = 0:3 % 假设测试p的范围为0到3for q = 0:3 % 假设测试q的范围为0到3model = arima(p,1,q);[fit,~,logL] = estimate(model, sales, 'Display', 'off');[aic,bic] = aicbic(logL, p+q+1, length(sales));if bic < minBICminBIC = bic;bestModel = fit;endend
end
bestModel

平稳性检验: 非平稳

ACF检验和PACF检验:


最优模型:

(3)建立模型进行预测

model = arima(1,1,0); % ARIMA(1,1,0)模型
fitModel = estimate(model, sales);
numPeriods = 10; % 预测未来10个时间点
[forecast, ~, ~] = forecast(fitModel, numPeriods, 'Y0', sales)
futureDates = dates(end) + (1:numPeriods)' % 生成未来日期
figure;
plot([dates;futureDates(1)], [sales;forecast(1)], 'b', futureDates, forecast, 'r'); % 绘制实际销量和预测销量
xlabel('日期');
ylabel('销量');
legend({'实际销量', '预测销量'}, 'Location', 'best');
title('销量预测');

ARIMA(1,1,0)模型:

ARIMA(1,1,0) Model (Gaussian Distribution):Value     StandardError    TStatistic      PValue  _______    _____________    __________    __________Constant     23.116        13.829         1.6716        0.094607
AR{1}       0.54589       0.11588          4.711       2.465e-06
Variance     5389.9        1084.4         4.9705      6.6791e-07

预测结果图:

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

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

相关文章

详解FreeRTOS:如何统计任务运行时间和CPU占有率(拓展篇—7)

FreeRTOS 可以通过函数 vTaskGetRunTimeStats()来统计每个任务使用 CPU 的时间,以及所使用的时间占总时间的比例。在调试代码的时候我们可以根据这个时间使用值来分析哪个任务的 CPU 占用率高,然后合理的分配或优化任务。 本篇博文我们就来学习如何使用 FreeRTOS 运行时间状态…

鸿蒙系统优缺点,能否作为开发者选择

凡是都有对立面&#xff0c;就直接说说鸿蒙的优缺点吧。 鸿蒙的缺点&#xff1a; 鸿蒙是从2019年开始做出来的&#xff0c;那时候是套壳Android大家都知晓。从而导致大家不看鸿蒙系统&#xff0c;套壳Android就是多次一举。现在鸿蒙星河版已经是纯血鸿蒙&#xff0c;但是它的…

点亮代码之灯,程序员的夜与电脑

在科技的海洋里&#xff0c;程序员是那些驾驶着代码船只&#xff0c;穿梭于虚拟世界的探险家。他们手中的键盘是航行的舵&#xff0c;而那台始终不愿关闭的电脑&#xff0c;便是他们眼中永不熄灭的灯塔。有人说&#xff0c;程序员不喜欢关电脑&#xff0c;这究竟是为什么呢&…

SSM框架,spring-aop的学习

代理模式 二十三种设计模式中的一种&#xff0c;属于结构型模式。它的作用就是通过提供一个代理类&#xff0c;让我们在调用目标方法的时候&#xff0c;不再是直接对目标方法进行调用&#xff0c;而是通过代理类间接调用。让不属于目标方法核心逻辑的代码从目标方法中剥离出来…

PPT导出PDF时保持图像高清的方法

问题: 我们经常会发现&#xff0c;在PPT中插入的图片非常高清&#xff0c;但是通过PPT转换为PDF之后&#xff0c;图片就会出现不同程度的失真。 问题产生的原因: 这是因为Acrobat的PDF Maker在将PPT转换为PDF的时候&#xff0c;对PPT中的图片进行了压缩 Solution: 在PPT的…

博途PLC数值积分器(矩形梯形积分自由切换)

数值积分器的相关介绍,大家可以也可以参看下面几篇文章,链接如下: PLC算法系列数值积分器 https://rxxw-control.blog.csdn.net/article/details/128562853https://rxxw-control.blog.csdn.net/article/details/128562853SMART PLC 梯形和矩形积分 https://rxxw-control.…

【数据结构】18 二叉搜索树(查找,插入,删除)

定义 二叉搜索树也叫二叉排序树或者二叉查找树。它是一种对排序和查找都很有用的特殊二叉树。 一个二叉搜索树可以为空&#xff0c;如果它不为空&#xff0c;它将满足以下性质&#xff1a; 非空左子树的所有键值小于其根节点的键值非空右子树的所有键值都大于其根结点的键值左…

CPU如何检测静默错误?

CPU检测静默数据错误&#xff08;Silent Data Errors, SDC&#xff09;通常采用以下几种方法&#xff1a; 内置ECC&#xff08;Error Correction Codes&#xff09;内存支持&#xff1a;现代服务器和部分高端工作站级的CPU会与具有ECC功能的内存协同工作。ECC内存能够在数据写入…

2.16学习总结

1.邮递员送信&#xff08;dijkstra 不只是从起到到目标点&#xff0c;还要走回去&#xff09; 2.炸铁路(并查集) 3.统计方形&#xff08;数据加强版&#xff09;&#xff08;排列组合&#xff09; 4.滑雪&#xff08;记忆化&#xff09; 5.小车问题&#xff08;数学问题&#x…

无人机系统组装与调试,多旋翼无人机组装与调试技术详解,无人机飞控系统原理

多旋翼无人机飞控系统的组装 在开始组装前&#xff0c;确保您已准备好所有必要的工具和材料。这包括螺丝刀、电烙铁、焊台、杜邦线、飞控板、GPS模块、电机、桨叶等。 飞控安装 安全开关安装&#xff0c;将安全开关固定在机架上。将安全开关的线插到飞控SWITCH插口上。 电调…

【半监督图像分割 2023 】BHPC

【半监督图像分割 2023 】BHPC 论文题目&#xff1a;Semi-supervised medical image segmentation via hard positives oriented contrastive learning 中文题目&#xff1a;通过面向硬阳性的对比学习进行半监督医学图像分割 论文链接&#xff1a; 论文代码&#xff1a;https:/…

亚马逊、国际站、速卖通新店怎么销量破冰?自养号测评爆款打造思路

亚马逊作为全球最大的电子商务平台之一&#xff0c;吸引了众多卖家进驻其平台。对于新店铺来说&#xff0c;如何在竞争激烈的市场中突破销量瓶颈&#xff0c;成为卖家们关注的焦点。 一、亚马逊新店怎么销量破冰&#xff1f; 优化商品信息&#xff1a;在亚马逊平台上&#xff…

Python学习Pytorch

一、如何查看本机是否安装了Pytorch 在Python环境中查看是否安装了PyTorch可以通过几个简单的步骤来完成。这里有一些方法&#xff1a; 使用Python命令行: 打开你的命令行工具&#xff08;比如Terminal、Command Prompt或Anaconda Prompt&#xff09;&#xff0c;然后输入Pyth…

牛客网SQL进阶128:未完成试卷数大于1的有效用户

官网链接&#xff1a; 未完成试卷数大于1的有效用户_牛客题霸_牛客网现有试卷作答记录表exam_record&#xff08;uid用户ID, exam_id试卷ID, st。题目来自【牛客题霸】https://www.nowcoder.com/practice/46cb7a33f7204f3ba7f6536d2fc04286?tpId240&tqId2183007&ru%2…

【深度学习】Pytorch 系列教程(三):PyTorch数据结构:2、张量的数学运算(1):向量运算(加减乘除、数乘、内积、外积、范数、广播机制)

文章目录 一、前言二、实验环境三、PyTorch数据结构0、分类1、Tensor&#xff08;张量&#xff09;1. 维度&#xff08;Dimensions&#xff09;2. 数据类型&#xff08;Data Types&#xff09;3. GPU加速&#xff08;GPU Acceleration&#xff09; 2、张量的数学运算1. 向量运算…

蓝桥杯真题:扑克牌移动

import java.util.*; public class Main {public static List moveCard(List src){if(srcnull) return null;List dst new Vector();for(;;){if(src.size()0) break; // 填空src.add(src.remove(0));//remove(0) 是一个 List 接口中的方法调用&#xff0c;它表示移除列表中指…

前端秘法进阶----css中那些不能说的秘密

目录 一.css属性计算过程 1.使用继承 2.使用默认值 3.面试题 二.css之包含块 一.css属性计算过程 1.使用继承 层叠冲突这一步完成后&#xff0c;解决了相同元素被声明了多条样式规则究竟应用哪一条样式规则的问题。 那么如果没有声明的属性呢&#xff1f;此时就使用默认…

【二分查找】LCR 007. 三数之和

LCR 007. 三数之和 解题思路 定义&#xff1a;定义一个名为Solution的类&#xff0c;并且在这个类中维护一个成员变量res&#xff0c;用于存储所有满足条件的三元组。主方法&#xff1a;threeSum方法是解决问题的入口点。它调用threeSumTarget方法来计算所有和为0的三元组。转…

Sentinel注解@SentinelResource详解

Sentinel注解SentinelResource详解 熔断 针对访问超过限制【sentinel中配置的限制】的资源&#xff0c;通过java代码配置&#xff0c;返回一个自定义的结果&#xff0c;需要用到 SentinelResource 注解的 blockHandlerClass 和 blockHandler 属性。 blockHandlerClass&#…

数据集合

目录 并集 union union all 区别 交集 intersect 差集 minus 错误操作 Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 常用的数学集合有&#xff1a;交集、并集、差集、补集 每一次查询实际上都会返回数据集合&#xff0c;…