区间预测 | MATLAB实现基于QRCNN-GRU卷积门控循环单元多变量时间序列区间预测

区间预测 | MATLAB实现基于QRCNN-GRU卷积门控循环单元多变量时间序列区间预测

目录

    • 区间预测 | MATLAB实现基于QRCNN-GRU卷积门控循环单元多变量时间序列区间预测
      • 效果一览
      • 基本介绍
      • 模型描述
      • 程序设计
      • 参考资料

效果一览

区间预测 | MATLAB实现基于QRCNN-GRU卷积门控循环单元多变量时间序列区间预测_第1张图片
区间预测 | MATLAB实现基于QRCNN-GRU卷积门控循环单元多变量时间序列区间预测_第2张图片
区间预测 | MATLAB实现基于QRCNN-GRU卷积门控循环单元多变量时间序列区间预测_第3张图片
区间预测 | MATLAB实现基于QRCNN-GRU卷积门控循环单元多变量时间序列区间预测_第4张图片
区间预测 | MATLAB实现基于QRCNN-GRU卷积门控循环单元多变量时间序列区间预测_第5张图片
区间预测 | MATLAB实现基于QRCNN-GRU卷积门控循环单元多变量时间序列区间预测_第6张图片
区间预测 | MATLAB实现基于QRCNN-GRU卷积门控循环单元多变量时间序列区间预测_第7张图片

基本介绍

1.Matlab实现基于QRCNN-GRU卷积神经网络结合门控循环单元多变量时间序列区间预测;
2.多图输出、点预测多指标输出(MAE、MAPE、RMSE、MSE、R2),区间预测多指比输出(区间覆盖率PICP、区间平均宽度百分比PINAW),多输入单输出,含点预测图、不同置信区间预测图、误差分析图、核密度估计概率密度图;
3.data为数据集,功率数据集,用多个关联变量,预测最后一列功率数据,也可适用于负荷预测、风速预测;MainQRCNN_GRUNTS为主程序,其余为函数文件,无需运行;
4.代码质量高,注释清楚,含数据预处理部分,处理缺失值,如果为nan,则删除,也含核密度估计;
5.运行环境Matlab2021及以上。

模型描述

QRCNN-GRU是一种利用卷积门控循环单元(Convolutional Gated Recurrent Unit)进行多变量时间序列区间预测的模型。
该模型使用卷积神经网络(CNN)对多维时间序列数据进行特征提取。然后,提取的特征被输入到门控循环单元(GRU)中,以捕捉时间序列数据中的长期依赖关系。
总的来说,QRCNN-GRU模型结合了卷积神经网络和门控循环单元的优点,可以有效地处理多变量时间序列数据,并且具有较好的区间预测能力。

程序设计

  • 完整程序和数据获取方式:私信博主。
ntrain=round(nwhole*num_size);
	ntest =nwhole-ntrain;
	% 准备输入和输出训练数据
	input_train =input(:,temp(1:ntrain));
	output_train=output(:,temp(1:ntrain));
	% 准备测试数据
	input_test =input(:, temp(ntrain+1:ntrain+ntest));
	output_test=output(:,temp(ntrain+1:ntrain+ntest));
	%% 数据归一化
	method=@mapminmax;
	[inputn_train,inputps]=method(input_train);
	inputn_test=method('apply',input_test,inputps);
	[outputn_train,outputps]=method(output_train);
	outputn_test=method('apply',output_test,outputps);
	% 创建元胞或向量,长度为训练集大小;
	XrTrain = cell(size(inputn_train,2),1);
	YrTrain = zeros(size(outputn_train,2),1);
	for i=1:size(inputn_train,2)
		XrTrain{i,1} = inputn_train(:,i);
		YrTrain(i,1) = outputn_train(:,i);
	end
	% 创建元胞或向量,长度为测试集大小;
	XrTest = cell(size(inputn_test,2),1);
	YrTest = zeros(size(outputn_test,2),1);
	for i=1:size(input_test,2)
		XrTest{i,1} = inputn_test(:,i);
		YrTest(i,1) = outputn_test(:,i);
	end

	%% 创建混合网络架构
%%  区间覆盖率
RangeForm = [T_sim(:, 1), T_sim(:, end)];
Num = 0;

for i = 1 : length(T_train)
    Num = Num +  (T_train(i) >= RangeForm(i, 1) && T_train(i) <= RangeForm(i, 2));
end

picp = Num / length(T_train);     


    S = cumtrapz(X,Y);
    Index = find(abs(m-S)<=1e-2);
    Q = X(max(Index));



参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/127931217
[2] https://blog.csdn.net/kjm13182345320/article/details/127418340

你可能感兴趣的:(区间预测,区间预测,QRCNN-GRU,CNN-GRU,卷积门控循环单元,多变量时间序列区间预测)