news 2026/11/1 13:35:14

今天咱们聊聊用MATLAB玩时间序列预测的野路子。别被那些AR、ARIMA之类的缩写吓到,说白了就是找规律猜未来的游戏。直接上代码更实在,咱边写边唠

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
今天咱们聊聊用MATLAB玩时间序列预测的野路子。别被那些AR、ARIMA之类的缩写吓到,说白了就是找规律猜未来的游戏。直接上代码更实在,咱边写边唠

几种时间序列预测方法(MATLAB R2021B) 算法运行环境为MATLAB R2021B,执行几种时间序列预测方法,包括: 1) Autoregression (AR) 2) Moving Average 3) Autoregressive Moving Average 4) Autoregressive Integrated Moving Average (ARIMA) 5) Seasonal Autoregressive Integrated Moving-Average (SARIMA) 6) Seasonal Autoregressive Integrated Moving Average with Exogenous Regressors (SARIMAX) 7) Vector Autoregression (VAR) 8) GARCH Model 9) Glostan, Jagannathan and Runkle GARCH Model

先整点数据热身。假设手头有个股票收盘价序列,长度500天:

data = cumsum(randn(500,1)*0.5 + 0.01) + 50; % 带趋势的随机游走 plot(data) title('假装这是股票价格')

这串随机数生成器造的数据有微弱正趋势,标准差0.5,初始值50。cumsum让数据有持续性特征,符合金融时间序列特性。

AR模型实战

自回归的核心就是拿历史数据当预测依据。比如用前3天的数据预测明天:

Mdl = arima('ARLags',1:3); EstMdl = estimate(Mdl, data); [YF, YMSE] = forecast(EstMdl, 5, data); % 预测未来5天

这里'ARLags'参数指定滞后阶数,1:3表示用t-1,t-2,t-3时刻的值。estimate函数会返回模型参数估计值,注意MATLAB自动做了标准化处理。预测时YMSE是预测方差,可以画置信区间。

ARIMA进阶版

加上差分处理非平稳数据更带劲:

Mdl = arima(2,1,1); % AR阶2,差分阶1,MA阶1 EstMdl = estimate(Mdl, data); [YF, YMSE] = forecast(EstMdl, 5, 'Y0', data);

差分阶数1表示做一阶差分消除趋势。模型训练时注意看命令行输出的参数显著性,p值小于0.05的项才有保留价值。如果MA项系数不显著,可以降阶试试。

GARCH家族玩波动

搞金融预测必须处理波动聚集现象:

Mdl = garch('GARCHLags',1,'ARCHLags',1); EstMdl = estimate(Mdl, diff(data)); % 对收益率建模 condVar = infer(EstMdl, diff(data)); % 提取条件方差 plot([diff(data), condVar]) legend('收益率','波动率')

这里用差分后的收益率数据,infer函数能提取波动率估计。GARCH(1,1)模型里,ARCH项反映新息冲击,GARCH项体现波动持续性。如果发现杠杆效应(跌的时候波动更大),可以升级到GJR-GARCH:

Mdl = gjr('GARCHLags',1,'ARCHLags',1,'LeverageLags',1); EstMdl = estimate(Mdl, diff(data));

多了个LeverageLags参数来捕捉不对称效应。回测时要注意,这类模型对参数初值敏感,可能需要多试几次初值设定。

多变量搞事情——VAR模型

当多个时间序列互相影响时:

data_multi = [data, randn(500,1)*2 + 5]; % 伪造第二个变量 Mdl = varm(2,2); % 两个变量,滞后2阶 EstMdl = estimate(Mdl, data_multi); [YF, YMSE] = forecast(EstMdl, 5, data_multi);

varm模型会自动估计变量间的交叉影响。注意数据要先做平稳性检验,可以用MATLAB的adftest做单位根检验。预测时输出的YF是矩阵,每列对应一个变量的预测值。

季节杀器SARIMA

处理像销售额这种有季节波动的:

Mdl = arima('ARLags',1:2,'D',1,'Seasonality',12,... 'MALags',1,'SMALags',12); EstMdl = estimate(Mdl, data);

这里设置季节周期为12(比如月度数据),Seasonality参数自动创建季节性差分。实际操作中要先用季节图判断周期长度,别瞎猜参数。可以用x13as工具做季节调整,再喂给模型。

代码跑完别急着收工,几个避坑指南:

  1. 预测前务必做残差诊断:用lbqtest检验自相关性
  2. 模型对比用AIC/BIC指标,别光看拟合误差
  3. 样本外预测要用滚动窗口验证,防止过拟合
  4. 用parfor加速参数寻优,特别是SARIMAX这种参数多的模型

说到底,时间序列预测就是平衡bias和variance的艺术。没有通吃所有场景的银弹,多备几把刷子,根据数据特征选兵器才是王道。下次遇到震荡市,不妨试试GARCH系模型;要是数据有明显周期规律,SARIMA可能更香。代码只是工具,理解数据内在逻辑才是真功夫。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/1 17:22:07

SC6D10170H-JSM 碳化硅肖特基二极管

在新能源、工业控制等高端电力电子领域,碳化硅(SiC)肖特基二极管凭借高效、耐高温、高频的核心优势,成为提升系统性能的关键器件。杰盛微半导体深耕宽禁带半导体领域,重磅推出SC6D10170H 碳化硅肖特基二极管&#xff0…

作者头像 李华
网站建设 2026/11/2 8:16:36

探索三相光伏并网仿真模型:从原理到实现

三相光伏并网仿真模型 Boost+三相逆变器 PLL锁相环 MPPT最大功率点跟踪控制(扰动观察法) dq解耦控制 电流内环电压外环的并网控制策略在可再生能源领域,光伏发电因其清洁、可持续的特点备受瞩目。而三相光伏并网系统作为高效利用太阳能并接入电网的关键技…

作者头像 李华
网站建设 2026/11/1 8:26:35

引领测试创新:领导力在软件质量保障中的核心作用

在快速演进的软件开发生态系统中,测试不再仅仅是缺陷检测的后期环节,而是贯穿全生命周期的质量保障活动。随着敏捷开发、持续集成和人工智能技术的普及,测试创新已成为提升交付效率与产品可靠性的关键驱动力。然而,创新的落地并非…

作者头像 李华
网站建设 2026/11/2 8:16:37

29、认证与虚拟专用网络协议配置及故障排除指南

认证与虚拟专用网络协议配置及故障排除指南 在当今数字化办公的大环境下,远程网络连接变得愈发重要。企业需要确保外勤人员能及时接收邮件、访问内部应用和数据,同时也要为商业伙伴提供合适的访问途径,以提升沟通效率和业务协同效果。虚拟专用网络(VPN)技术应运而生,它能…

作者头像 李华
网站建设 2026/11/2 8:16:37

深度学习初学者指南

在当今人工智能飞速发展的时代,深度学习无疑是其中最耀眼的技术之一。无论是语音助手、人脸识别,还是自动驾驶、智能推荐系统,背后都离不开深度学习的强大支持。对于许多刚接触这一领域的学习者来说,深度学习既充满吸引力&#xf…

作者头像 李华
网站建设 2026/11/1 20:33:55

基于PLC的蔬菜大棚温湿度环境控制系统设计

基于PLC的蔬菜大棚内部温湿度环境控制系统的设计 基于西门子S7-1200PLC设计实现,Wincc组态软件TP-700触摸屏动画。 博图V15.1以上版本软件可打开。 设计可以实现蔬菜大棚内部的温湿度参数调控,在蔬菜大棚内部放置多个传感器实现对温度、湿度、二氧化碳浓…

作者头像 李华