区间预测 | MATLAB实现QRBiLSTM双向长短期记忆神经网络分位数回归时间序列区间预测

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 区间预测 | MATLAB实现QRBiLSTM双向长短期记忆神经网络分位数回归时间序列区间预测

区间预测 | MATLAB实现QRBiLSTM双向长短期记忆神经网络分位数回归时间序列区间预测

效果一览

image.png
image.png
image.png

基本介绍

区间预测 | MATLAB实现QRBiLSTM双向长短期记忆神经网络分位数回归时间序列区间预测

QRBiLSTM是一种双向长短期记忆(QR-LSTM)神经网络的变体,用于分位数回归时间序列区间预测。该模型可以预测时间序列的不同分位数的值,并且可以提供置信区间和风险评估等信息。
QR-LSTM是一种基于LSTM模型的分位数回归方法,可以通过学习分位数回归损失函数来预测不同分位数的值。而QRBiLSTM则是在QR-LSTM的基础上加入了双向传输的结构,可以捕捉更多的时间序列信息。

模型描述

QRBiLSTM模型的输入包括历史数据,输出为分位数值和置信区间。通常情况下,可以使用训练数据来拟合模型参数,并使用测试数据来评估模型的预测性能。
总之,QRBiLSTM是一种非常有用的时间序列预测模型,可以应用于许多领域,如金融、股票、气象学等,可以提供更全面的时间序列预测信息,有助于提高决策的准确性。
  • 下面给出QRBiLSTM模型的具体公式,其中$\textbf{X}$表示输入序列,$\textbf{Y}$表示输出序列,$\textbf{H}$表示隐藏状态,$\textbf{C}$表示记忆状态,$f_{\theta}$表示神经网络模型,$q$表示分位数:
  • 正向传播:

$$\textbf{H}^{f}_{t},\textbf{C}^{f}_{t} = LSTM_{\theta}(\textbf{X}_{t},\textbf{H}^{f}_{t-1},\textbf{C}^{f}_{t-1})$$

$$\textbf{H}^{b}_{t},\textbf{C}^{b}_{t} = LSTM_{\theta}(\textbf{X}_{t},\textbf{H}^{b}_{t+1},\textbf{C}^{b}_{t+1})$$

$$\hat{Y}^{q}_{t} = f_{\theta}([\textbf{H}^{f}_{t},\textbf{H}^{b}_{t}])$$

$$\hat{\epsilon}^{q}_{t} = Y^{q}_{t} - \hat{Y}^{q}_{t}$$

$$\hat{\sigma}^{q}_{t} = \text{median}\{|\hat{\epsilon}^{q}_{t-\tau}|:\tau \leq \text{lag}\} \cdot c_{\alpha}(\text{lag},n)$$

  • 其中,$\textbf{H}^{f}_{t}$和$\textbf{C}^{f}_{t}$分别表示正向传播的隐藏状态和记忆状态;$\textbf{H}^{b}_{t}$和$\textbf{C}^{b}_{t}$分别表示反向传播的隐藏状态和记忆状态;$\hat{Y}^{q}_{t}$表示时间$t$处分位数为$q$的预测值;$f_{\theta}$表示神经网络模型;$\hat{\epsilon}^{q}_{t}$表示时间$t$处分位数为$q$的预测误差;$\hat{\sigma}^{q}_{t}$表示时间$t$处分位数为$q$的预测误差的置信区间,其中$c_{\alpha}(\text{lag},n)$表示置信系数。
  • QRBiLSTM模型的训练目标是最小化分位数损失函数:

$$\text{Loss}_{\theta}=\sum_{t=1}^{T}\sum_{q\in Q}\rho_{q}(|\epsilon^{q}_{t}|)-\frac{1}{|Q|}\sum_{q\in Q}\text{log}(\hat{\sigma}^{q}_{t})$$

  • 其中,$\rho_{q}(x)$表示分位数损失函数:

$$\rho_{q}(x)=\begin{cases}qx&x\geq 0\\(q-1)x&x<0\end{cases}$$

  • QRBiLSTM模型的预测目标是预测分位数值和置信区间,即$\hat{Y}^{q}_{t}$和$\hat{\sigma}^{q}_{t}$。

程序设计

% 构建模型
numFeatures = size(XTrain,1); % 输入特征数
numHiddenUnits = 200; % 隐藏单元数
numQuantiles = 1; % 分位数数目
layers = [ ...
    sequenceInputLayer(numFeatures)
    bilstmLayer(numHiddenUnits,'OutputMode','last')
    dropoutLayer(0.2)
    fullyConnectedLayer(numQuantiles)
    regressionLayer];
options = trainingOptions('adam', ...
    'MaxEpochs',50, ...
    'MiniBatchSize',64, ...
    'GradientThreshold',1, ...
    'Shuffle','every-epoch', ...
    'Verbose',false);
net = trainNetwork(XTrain,YTrain,layers,options); % 训练模型

% 测试模型
YPred = predict(net,XTest); % 预测输出
quantiles = [0.1,0.5,0.9]; % 分位数
for i = 1:length(quantiles)
    q = quantiles(i);
    epsilon = YTest - YPred(:,i); % 预测误差
    lag = 10; % 滞后期数
    sigma = median(abs(epsilon(max(1,end-lag+1):end))) * 1.483; % 置信区间
    lb = YPred(:,i) - sigma * norminv(1-q/2,0,1); % 置信区间下限
    ub = YPred(:,i) + sigma * norminv(1-q/2,0,1); % 置信区间上限
    disp(['Quantile:',num2str(q),' MAE:',num2str(mean(abs(epsilon))),' Width:',num2str(mean(ub-lb))]);
end

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/127931217
[2] https://blog.csdn.net/kjm13182345320/article/details/127418340
相关文章
|
7月前
|
传感器 机器学习/深度学习 算法
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
192 0
|
7月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
565 0
|
7月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
481 2
|
7月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
179 8
|
6月前
|
机器学习/深度学习 数据采集 存储
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
972 0
|
6月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
277 0
|
7月前
|
算法 数据挖掘 区块链
基于遗传算法的多式联运车辆路径网络优优化研究(Matlab代码实现)
基于遗传算法的多式联运车辆路径网络优优化研究(Matlab代码实现)
207 2
|
6月前
|
传感器 机器学习/深度学习 数据采集
【航空发动机寿命预测】基于SE-ResNet网络的发动机寿命预测,C-MAPSS航空发动机寿命预测研究(Matlab代码实现)
【航空发动机寿命预测】基于SE-ResNet网络的发动机寿命预测,C-MAPSS航空发动机寿命预测研究(Matlab代码实现)
450 0
|
6月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
600 0
|
6月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
714 0
下一篇
开通oss服务