区间预测 | 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 
    %移动平均对应ACF
    for q = 0:5
        if(p + q ~= 0) 
            m = armax(TempData,[p q]);
            %armax(p,q),计算AIC
            AIC = aic(m);  
            test = [test;p q AIC];
        end
    end
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)~=0
    for 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器学习之心

谢谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值