区间预测 | Matlab实现GRU-Adaboost-ABKDE的集成门控循环单元自适应带宽核密度估计多变量回归区间预测
目录
- 区间预测 | Matlab实现GRU-Adaboost-ABKDE的集成门控循环单元自适应带宽核密度估计多变量回归区间预测
- 效果一览
- 基本介绍
- 程序设计
- 参考资料
效果一览
基本介绍
1.Matlab实现GRU-Adaboost-ABKDE的集成门控循环单元自适应带宽核密度估计多变量回归区间预测(完整源码和数据)
2.GRU-Adaboost-ABKDE的集成门控循环单元自适应带宽核密度估计多变量回归区间预测(点预测+概率预测+核密度估计) Matlab语言
3.多变量单输出,包括点预测+概率预测+核密度估计曲线,MatlabR2021a及以上版本运行,提供多种置信区间!评价指标包括R2、MAE、RMSE、MAPE、区间覆盖率picp、区间平均宽度百分比pinaw等。
4.算法新颖,对固定带宽核函数进行了改进。
5.直接替换Excel数据即可用,注释清晰,适合新手小白,直接运行main文件一键出图。
6.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。
程序设计
- 完整程序和数据获取方式私信博主回复Matlab实现GRU-Adaboost-ABKDE的集成门控循环单元自适应带宽核密度估计多变量回归区间预测。
%%数据反归一化T_sim1 = mapminmax('reverse', T_sim1, ps_output);T_sim2 = mapminmax('reverse', T_sim2, ps_output);%% *区间预测* (基于KDE)z = [0.975;0.95;0.875;0.75;0.625;0.55;0.525]; %分位数%% *值评估指标*[Error] = PlotError(T_sim1,T_train,N,'#3D59AB');%% *自适应带宽核密度估计figure;[y,t,optim_width,~,~,confb95] = ABKDE(Error);hold onwindow=fill([t,fliplr(t)],[confb95(1,:),fliplr(confb95(2,:))],[7 7 7]/8,'FaceAlpha',0.5);window.EdgeColor = 'none';plot(t,confb95(1,:),'Color',[7 7 7]/9,'LineWidth',1);plot(t,confb95(2,:),'Color',[7 7 7]/9,'LineWidth',1);plot(t,y,'Color',[0.9 0.2 0.2],'LineWidth',2);[f0,xi0] = ksdensity(Error,'Function','pdf');plot(xi0,f0,'LineWidth',1.5,'Color',"#7E2F8E");xlim([min(t) max(t)]);legend({'95%置信核密度估计曲线','','','优化自适应带宽核密度估计曲线','未优化固定带宽核密度估计曲线'});grid on;ylabel('概率密度');xlabel('预测误差');set(gca,'TickDir','out'); set(gcf,'color','w')for m = 1:length(z)Q1(m) = QuantSol_FUN(t,y,1-z(m)); %下界Q2(m) = QuantSol_FUN(t,y,z(m)); %上界endfor m = 1:length(z)Lower(:,m) = T_sim2 + Q1(m);Upper(:,m) = T_sim2 + Q2(m);end%% *绘图*PlotProbability(T_sim2,T_test,numel(T_test),Lower,Upper,0,N,[0 100 0]/255); %概率绘图%% *核密度估计*time_index = [25;50;75;100]; %确定采样点,注意元素不要超过预测样本的个数!!num_KD = numel(time_index);PlotKernelDensity(Lower,Upper,time_index,T_test',num_KD);set(gcf,'color','w')
参考资料
[1] https://blog.csdn.net/kjm13182345320/article/details/127931217
[2] https://blog.csdn.net/kjm13182345320/article/details/127418340