当前位置: 首页 > news >正文

区间预测 | Matlab实现ARIMA-KDE的时间序列结合核密度估计区间预测

目录

      • 效果一览
      • 基本介绍
      • 程序设计
      • 参考资料

效果一览

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

基本介绍

1.Matlab实现ARIMA-KDE的时间序列结合核密度估计区间预测,ARIMA的核密度估计下置信区间预测。
2.含点预测图、置信区间预测图、核密度估计图,区间预测(区间覆盖率PICP、区间平均宽度百分比PINAW),点预测多指标输出(MAE、MAPE、RMSE、 MBE、R2),单个变量时间序列区间预测。
3.运行环境为Matlab2018b及以上;
4.单个变量时间序列区间预测;
5.data为数据集,ARIMA_KDE.m为主程序,运行即可,所有文件放在一个文件夹。

在这里插入图片描述

程序设计

  • 完整程序和数据获取方式:私信博主回复Matlab实现ARIMA-KDE的时间序列结合核密度估计区间预测

%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行
%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行clc;clear;
warning off all
data=xlsread('data.xlsx');
%预报步长
step=6;
TempData=data;output=data;
%去趋势线
TempData=detrend(TempData);  
%趋势函数
TrendData=data-TempData;
%差分,平稳化时间序列
[H,PValue,TestStat,CriticalValue] = adftest(TempData);
difftime=0;
SaveDiffData=[];
while ~H%差分,平稳化时间序列SaveDiffData=[SaveDiffData,TempData(1,1)];TempData=diff(TempData);%差分次数difftime=difftime+1;%adf检验,判断时间序列是否平稳化[H,PValue,TestStat,CriticalValue] = adftest(TempData);
end
%模型定阶或识别
test = [];
%自回归对应PACF,给定滞后长度上限p和q
for p = 0:5 %移动平均对应ACFfor q = 0:5if(p + q ~= 0) m = armax(TempData,[p q]);%armax(p,q),计算AICAIC = aic(m);  test = [test;p q AIC];endend
end
for k = 1:size(test,1)%选择AIC值最小的模型if test(k,3) == min(test(:,3)) p_test = test(k,1);q_test = test(k,2);break;end
end
%armax(p,q),[p_test q_test]对应AIC值最小
m   = armax(TempData,[p_test q_test]);       
ARIMA_Predict   = predict(m,TempData,step);
ARIMA_Forcast   = forecast(m,TempData,step);
PreR=[ARIMA_Predict' ARIMA_Forcast'];
%还原差分
if size(SaveDiffData,2)~=0for index=size(SaveDiffData,2):-1:1%差分还原PreR=cumsum([SaveDiffData(index),PreR]);end
end

参考资料

[1] http://t.csdn.cn/pCWSp
[2] https://download.csdn.net/download/kjm13182345320/87568090?spm=1001.2014.3001.5501
[3] https://blog.csdn.net/kjm13182345320/article/details/129433463?spm=1001.2014.3001.5501


http://www.mrgr.cn/news/39396.html

相关文章:

  • 【RocketMQ】消费失败重试与死信消息
  • Windows 7 和 Windows 7 sp 的区别
  • 25基于python的文本冒险岛游戏(源码+游戏简介+python代码学习攻略)校园招聘面试
  • 0926-27,元对象模型,信号和槽函数,connect函数,事件处理的详细过程,widgets模块
  • 全网最全软件测试面试题(含答案解析+文档)
  • SprinbBoot 文件上传
  • 【重学 MySQL】四十二、单行子查询
  • 中间件技术
  • 树的概念简记
  • page-break系列属性与分页的控制
  • 02-指针代码示例
  • rabbitMQ 简单使用
  • CUDA 参考文章
  • 网络爬虫自动化Selenium浏览器操作
  • Quill Editor 富文本编辑器的高度问题
  • vue 项目中的配置文件(.env)的用法
  • 理解Python闭包概念
  • 在Python中实现多目标优化问题(1)
  • Object Pascal 过程与函数
  • 三元祖表的定义