区间预测 | MATLAB实现QGPR高斯过程分位数回归多变量时间序列区间预测

news2024/10/5 14:30:35

区间预测 | MATLAB实现QGPR高斯过程分位数回归多变量时间序列区间预测

目录

    • 区间预测 | MATLAB实现QGPR高斯过程分位数回归多变量时间序列区间预测
      • 效果一览
      • 基本介绍
      • 模型描述
      • 程序设计
      • 参考资料

效果一览

1

1
3

基本介绍

MATLAB实现QGPR高斯过程分位数回归多变量时间序列区间预测
1.基于高斯过程回归(QGPR)分位数多变量时间序列区间预测,Matlab代码,多变量输入单变量输出时间序列预测模型。
2.评价指标包括:R2、MAE、MSE、RMsE和区间覆盖率和区间平均宽度百分比等,代码质量极高,方便学习和替换数据。

高斯过程分位数回归是一种基于高斯过程的统计学习方法,用于对时间序列进行预测。在时间序列区间预测中,GPR可以用于预测一系列未来时间点的分位数,从而提供关于未来趋势的一些信息。
具体来说,GPR可以用于估计某个时间点的观测值在给定分位数水平下的概率分布。这个分布可以用来计算区间预测。GPR 的预测结果可以提供一些关于未来时间序列的不确定性信息,这对于决策者和风险管理者来说非常有用。

在应用 GPR进行时间序列区间预测时,需要首先选择合适的高斯过程模型,然后基于历史数据进行参数估计和模型训练。一旦模型训练完成,就可以用它来对时间序列进行预测和区间估计。

需要注意的是,GPR是一种复杂的统计学习方法,需要一定的数学和计算机技能才能进行有效的应用。此外,预测结果也受到历史数据的限制,因此在进行时间序列区间预测时需要谨慎选择样本数据,并且需要不断更新模型以反映新的数据和趋势。

模型描述

  • QGPR 的原理和基本思想与传统的高斯过程回归(GPR)类似,但是在预测分位数时,QGPR引入了一个分位数损失函数,来惩罚预测结果与真实观测值之间的偏差。QGPR 的预测结果是一个概率分布,可以用来计算区间预测。

  • 下面是 QGPR的主要公式:

  • 假设我们有一个时间序列数据集 ( X , y ) (\mathbf{X}, \mathbf{y}) (X,y),其中 X \mathbf{X} X n × d n \times d n×d 的矩阵,表示 n n n 个时间点的 d d d 个特征值, y \mathbf{y} y n × 1 n \times 1 n×1 的向量,表示相应的观测值。我们的目标是预测未来时间点 t ∗ t^* t 的观测值在给定分位数水平 τ \tau τ 下的概率分布。

  • QGPR 的预测结果是一个高斯分布,其均值和方差分别由以下公式给出:

y ^ t ∗ , τ = k T ( K + σ 2 I ) − 1 y \hat{y}_{t^*, \tau} = \mathbf{k}^T (\mathbf{K} + \sigma^2 \mathbf{I})^{-1} \mathbf{y} y^t,τ=kT(K+σ2I)1y

σ ^ t ∗ , τ 2 = k t ∗ t ∗ − k T ( K + σ 2 I ) − 1 k \hat{\sigma}^2_{t^*, \tau} = k_{t^* t^*} - \mathbf{k}^T (\mathbf{K} + \sigma^2 \mathbf{I})^{-1} \mathbf{k} σ^t,τ2=kttkT(K+σ2I)1k

  • 其中, k \mathbf{k} k t ∗ t^* t 与历史时间点的核函数向量, K \mathbf{K} K 是历史时间点之间的核函数矩阵, σ 2 \sigma^2 σ2 是噪声方差, I \mathbf{I} I 是单位矩阵。在 GPR-Q 中,核函数的选择通常使用径向基函数(RBF)核函数,其形式为:

k ( x i , x j ) = σ f 2 exp ⁡ ( − 1 2 l 2 ∣ ∣ x i − x j ∣ ∣ 2 ) k(x_i, x_j) = \sigma_f^2 \exp\left(-\frac{1}{2l^2}||x_i - x_j||^2\right) k(xi,xj)=σf2exp(2l21∣∣xixj2)

  • 其中, σ f 2 \sigma_f^2 σf2 是核函数的方差, l l l 是核函数的长度尺度。

  • QGPR引入了一个分位数损失函数,来惩罚预测结果与真实观测值之间的偏差。假设 y t ∗ y_{t^*} yt 是真实观测值, F τ ( y t ∗ ) F_{\tau}(y_{t^*}) Fτ(yt) 是给定分位数水平 τ \tau τ 下的累积分布函数, q τ ( y t ∗ ) q_{\tau}(y_{t^*}) qτ(yt) 是给定分位数水平 τ \tau τ 下的分位数点,分位数损失函数可以表示为:

L τ ( y t ∗ , y ^ t ∗ , τ ) = { τ ∣ y t ∗ − y ^ t ∗ , τ ∣ y t ∗ < q τ ( y ^ t ∗ , τ ) ( 1 − τ ) ∣ y t ∗ − y ^ t ∗ , τ ∣ y t ∗ ≥ q τ ( y ^ t ∗ , τ ) L_{\tau}(y_{t^*}, \hat{y}_{t^*, \tau}) = \begin{cases} \tau |y_{t^*} - \hat{y}_{t^*, \tau}| & y_{t^*} < q_{\tau}(\hat{y}_{t^*, \tau}) \\ (1-\tau) |y_{t^*} - \hat{y}_{t^*, \tau}| & y_{t^*} \geq q_{\tau}(\hat{y}_{t^*, \tau}) \end{cases} Lτ(yt,y^t,τ)={τyty^t,τ(1τ)yty^t,τyt<qτ(y^t,τ)ytqτ(y^t,τ)

  • 其中 q τ ( y ^ t ∗ , τ ) q_{\tau}(\hat{y}_{t^*, \tau}) qτ(y^t,τ) 表示在给定分位数水平 τ \tau τ 下,均值预测值的分位数点。QGPR 的目标是最小化预测结果的分位数损失函数,从而得到最优的预测结果。

程序设计

  • 完整程序和数据获取方式:私信博主,或同等价值程序兑换;
%%  数据集分析
outdim = 1;                                  % 最后一列为输出
num_size = 0.7;                              % 训练集占数据集比例
num_train_s = round(num_size * num_samples); % 训练集样本个数
f_ = size(res, 2) - outdim;                  % 输入特征维度

%%  划分训练集和测试集
P_train = res(1: num_train_s, 1: f_)';
T_train = res(1: num_train_s, f_ + 1: end)';
M = size(P_train, 2);

P_test = res(num_train_s + 1: end, 1: f_)';
T_test = res(num_train_s + 1: end, f_ + 1: end)';
N = size(P_test, 2);

%%  数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);

[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);

%%  转置以适应模型
p_train = p_train'; p_test = p_test';
t_train = t_train'; t_test = t_test';

%%  模型创建
alpha = 0.10;
net = fitrgp(p_train, t_train);

%%  仿真测试


%%  数据反归一化
L_sim1 = mapminmax('reverse', l_sim1, ps_output);
L_sim2 = mapminmax('reverse', l_sim2, ps_output);

T_sim1 = mapminmax('reverse', t_sim1, ps_output);
T_sim2 = mapminmax('reverse', t_sim2, ps_output);

参考资料

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/570613.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

可用于Stable Diffusion免费的AI绘画标签生成器

这是一个开源项目&#xff0c;借花献佛&#xff0c;基于原作者的基础上进行了微调还有以及修改内容。 支持中英文&#xff0c;权重以及xxxx词汇&#xff0c;老司机都懂。 直接可在右侧根据需求进行点选操作&#xff0c;然后复制到自己的Stable Diffusion中进行AI绘画。 下载…

【产品经理】移动手机区别于PC端的10点特性

众所周知&#xff0c;当今时代已经是移动互联网时代。相比以前大家热衷于在电脑上浏览网页、玩游戏的情形&#xff0c;现在大家都喜欢通过移动手机去满足个人方方面面的需求&#xff0c;无论是购物、吃饭、求职、阅读、聊天、游戏等等。也就是说&#xff0c;在日常的生活中&…

ChatGPT变现赚钱 第二篇

前面我们已经介绍了一些利用ChatGPT做变现的一些玩法&#xff0c;比如做微信问一问的回答&#xff0c;做AI剪映的一键生成视频的(星球里面有详细的指南和视频)。 现在我们会员群在玩百度问一问答题&#xff0c;这个项目蛮好的&#xff0c;成本很低&#xff0c;现在又有苹果手机…

利用视听短片从自然刺激中获得开放的多模式iEEG-fMRI数据集

在认知神经科学领域&#xff0c;数据共享和开放科学变得越来越重要。虽然许多参与认知神经科学实验的志愿者的数据集现在是公开可用的&#xff0c;但颅内脑电图&#xff08;iEEG&#xff09;数据的共享相对较少。iEEG是一种高时间和空间分辨率的记录技术&#xff0c;通过在患者…

组长给组员派活,把组长自己的需求和要改的bug派给组员,合理吗?

组长把自己的工作派给手下&#xff0c;合理吗&#xff1f; 一位程序员问&#xff1a; 组长给他派活&#xff0c;把组长自己的需求或者要改的bug派给他。组长分派完需求之后&#xff0c;他一个人干两个项目&#xff0c;组长却无所事事&#xff0c;这样合理吗&#xff1f; 有人说…

微服务开发系列 第七篇:RocketMQ

总概 A、技术栈 开发语言&#xff1a;Java 1.8数据库&#xff1a;MySQL、Redis、MongoDB、Elasticsearch微服务框架&#xff1a;Spring Cloud Alibaba微服务网关&#xff1a;Spring Cloud Gateway服务注册和配置中心&#xff1a;Nacos分布式事务&#xff1a;Seata链路追踪框架…

华为OD机试真题 Java 实现【打印文件】【2023Q1 100分】

一、题目描述 有 5 台打印机打印文件&#xff0c;每台打印机有自己的待打印队列。 因为打印的文件内容有轻重缓急之分&#xff0c;所以队列中的文件有1~10不同的优先级&#xff0c;其中数字越大优先级越高。 打印机会从自己的待打印队列中选择优先级最高的文件来打印。 如果…

Linux常用命令——help命令

在线Linux命令查询工具 help 显示帮助信息 补充说明 help命令用于显示shell内部命令的帮助信息。help命令只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或者info命令查看。 语法 help(选项)(参数)选项 -s&#xff1a;输出短格式的帮助信息。仅…

冯斌:突破认知临界点,打造自驱型团队 | 开发者说

熟悉冯斌的人&#xff0c;大都直接称呼其网名 Kid&#xff0c;包括他在 ONES 的同事。人如其名&#xff0c;Kid 的寓意就是「用孩子的眼光看世界」&#xff0c;返璞归真的思维方式才能发现新大陆。正如毕加索说的&#xff1a;「我一生都在向孩子学习。」 在 ONES 联合创始人兼 …

设计师解放双手之作!3秒生成风景园林效果图,AIGC赋能景观设计

‍ 项目简介 在过去几十年&#xff0c;风景园林经历了从“刀耕火种”的完全手绘设计时代到当下比较流行的参数化设计时代&#xff0c;过去的每一轮技术革新都让风景园林作品的表现形式产生了巨大的改变。随着计算机图像技术的发展&#xff0c;我们有更多的建模和渲染软件辅助提…

Python中深拷贝与浅拷贝介绍

用赋值的时候的一些注意事项 a "< meta name“Keywords” content“小博测试成长之路” />" b a c bprint(id("< meta name“Keywords” content“小博测试成长之路” />")) print(id(a)) print(id(b)) print(id(c)) print(a is b) # a和b…

面试题百日百刷-java基础篇(九)

锁屏面试题百日百刷&#xff0c;每个工作日坚持更新面试题。请看到最后就能获取你想要的,接下来的是今日的面试题&#xff1a; 1.Java 中IO 流分为几种? 按照流的流向分&#xff0c;可以分为输入流和输出流&#xff1b; 按照操作单元划分&#xff0c;可以划分为字节流和字符…

BGP 基础知识学习笔记

今天海翎光电的小编为大家介绍一下BGP的相关基础知识&#xff0c;文章浅显易懂&#xff0c;适合对BGP完全没有了解的同学。 BGP&#xff08;边界网关协议&#xff09;是将互联网联合在一起的路由协议&#xff0c;海翎光电的小编将解释在哪些情况下我们需要 BGP 以及它是如何工作…

为什么你工作很努力却没有晋升?分析晋升的关键点!

见字如面&#xff0c;我是军哥&#xff01; 昨天有一位二线大厂的程序员读者和我吐槽&#xff0c;说马上公司一波人晋升&#xff0c;可是晋升名额并么有他&#xff0c;但是他在这家公司已经干了三年了&#xff0c;工作也很努力&#xff0c;996 更是家常便饭&#xff0c;难道是大…

C语言小游戏的实现——扫雷(使用C语言基础语法)

前言 结合前边我们所学的C语言知识&#xff0c;本期我们将使用C语言实现一个简单的小游戏——扫雷 目录 前言 总体框架设计 多文件分装程序 各功能模块化实现 初始化棋盘 棋盘打印 埋雷 判赢与排雷 游戏逻辑安排 总结 总体框架设计 和三子棋相同&#xff0c;游戏开始时…

109.(cesium篇)cesium椎体上下跳动+旋转

地图之家总目录(订阅之前请先查看该博客) 地图之家:cesium+leaflet+echart+地图数据+地图工具等相关内容的介绍 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <html lang="en…

python+django高校疫情防控管理系统vue

随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;高校疫情防控管理系统也不例外&#xff0c;但目前国内的有些学校仍都使用人工管理&#xff0c;学校规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人工管理显然已无法应对时代的变化…

屏幕挂灯是不是智商税?明基ScreenBar Halo屏幕挂灯初体验

目录 一、屏幕挂灯是不是智商税&#xff1f;二、文心一言眼里的屏幕挂灯1、明基ScreenBar Halo屏幕挂灯2、屏幕挂灯和普通台灯哪个好&#xff1f; 三、屏幕挂灯初体验四、使用体验五、无线控制器六、专业角度分析1、屏幕工作照明&#xff0c;不是随便一盏灯就可以2、引导光线照…

记录--超长溢出头部省略打点,坑这么大,技巧这么多?

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 在业务中&#xff0c;有这么一种场景&#xff0c;表格下的某一列 ID 值&#xff0c;文本超长了&#xff0c;正常而言会是这样&#xff1a; 通常&#xff0c;这种情况都需要超长省略溢出打点&#xff0…

2023网络安全工程师面试宝典(附答案)

2023年即将过去一半&#xff0c;先来灵魂三连问&#xff1a; 年初定的目标完成多少了&#xff1f;薪资涨了吗&#xff1f;女朋友找到了吗&#xff1f; ​好了&#xff0c;不扎大家的心了&#xff0c;接下来进入正文。 1、SQL注入的原理是什么&#xff1f; SQL注入攻击是通过将…