当前位置: 首页 > article >正文

Matlab概率区间预测全家桶更新了,新增光伏出力区间预测,4种分布可供预测

基本介绍

适用于matlab2020及以上。可任意选择置信区间,区间覆盖率picp、区间平均宽度百分比等等,可用于预测不确定性,效果如图所示,采用KDE,4种分布进行预测,有对比,可以替换成自己的数据。

完整代码私信回复Matlab概率区间预测全家桶更新了,新增光伏出力区间预测,4种分布可供预测

代码详细解释如下:

int_val.m 文件功能详解
int_val.m 是一个用于风电功率预测区间可视化的 MATLAB 脚本,主要功能是通过核密度估计(Kernel Distribution)对预测误差建模,并基于不同置信度生成多层次的预测区间。以下是具体实现步骤:

数据读取与预处理

脚本从 Excel 文件(如“晴天.xlsx”“多云.xlsx”“雷阵雨.xlsx”)中读取实际风电功率数据(actually)和预测值(forcast),数据范围为 a1:a10000 和 b1:b10000。

计算预测误差 x = forcast - actually,表示预测值与实际值的偏差。

核密度估计拟合

使用 fitdist(x, ‘Kernel’) 对误差分布进行非参数拟合,生成概率分布对象 pd。核密度估计无需假设数据分布形式,适合复杂误差模式。

置信区间优化计算

对四个置信度(0.95、0.9、0.85、0.8),通过 fmincon 优化函数求解置信区间。目标函数为最小化 icdf(pd, t) - icdf(pd, t-zz),确保区间宽度在给定置信度下最优。

计算上下限:up = forcast + icdf(pd, t) 和 down = forcast + icdf(pd, t-zz),并将负值截断为0(因功率非负)。多层级区间可视化

使用 fill 函数绘制多个置信区间(如红色、绿色、蓝色、黄色),覆盖不同置信水平。通过叠加填充区域,形成从高置信度(窄区间)到低置信度(宽区间)的渐变效果。
在三个子图(subplot(3,1,1) 至 subplot(3,1,3))中分别展示“晴天”“多云”“雷阵雨”三种天气下的预测区间与实际功率曲线对比,横轴为时间(1-48小时),纵轴为功率(MW)。
技术亮点:

通过非参数方法适应复杂误差分布,避免参数假设偏差。
优化置信区间宽度,平衡覆盖概率与区间精度。
多层颜色填充直观展示不同置信水平,增强结果可解释性。
nihe.m 文件功能详解
nihe.m 是一个用于风电功率预测误差分布拟合与评价的 MATLAB 脚本,核心功能是通过多种概率分布模型拟合误差,并基于统计指标(相对熵、SSE)评估模型优劣。以下是具体实现步骤:

数据读取与误差计算

从 Excel 文件读取实际值与预测值,计算误差 x = forcast - actually。

多分布拟合与可视化

使用五种分布模型拟合误差:

参数模型:正态分布(Normal)、Logistic 分布、t 位置尺度分布(tLocationScale)、极值分布(ExtremeValue)。

非参数模型:核密度估计(Kernel)。

绘制经验分布直方图(ecdfhist)与各分布的概率密度函数(PDF)、累积分布函数(CDF),直观比较拟合效果。

统计评价指标计算

相对熵(Kullback-Leibler Divergence):衡量经验分布与拟合分布间的差异,值越小表示拟合越好。

SSE(误差平方和):计算经验概率与拟合概率的平方差,值越小表示拟合越优。

区间覆盖率(PICP):统计实际值落在预测区间内的比例,评估区间预测的可靠性。

多天气类型对比分析

对“晴天”“多云”“雷阵雨”数据分别重复上述步骤,生成子图展示不同天气下的拟合效果和评价结果。

技术亮点:

综合参数与非参数方法,全面探索误差分布特性。

通过相对熵和 SSE 定量比较模型,避免主观判断偏差。

多天气场景分析揭示气象条件对预测误差的影响,增强模型适用性。

总结
int_val.m 侧重于预测区间的生成与可视化,适用于工程应用中的不确定性展示。

nihe.m 侧重于统计建模与模型评价,为算法改进提供理论依据。两者结合,完整覆盖了从误差分析到区间预测的全流程。

数据集

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

部分源码

.rtcContent { padding: 30px; } .lineNode {font-size: 10pt; font-family: Menlo, Monaco, Consolas, “Courier New”, monospace; font-style: normal; font-weight: normal; }
%% 画图
%% 概率密度函数
plot(x_values,y1,‘LineWidth’,2)
hold on
plot(x_values,y2,‘LineWidth’,2)
hold on
plot(x_values,y3,‘LineWidth’,2)
hold on
plot(x_values,y4,‘LineWidth’,2)
hold on
plot(x_values,y5,‘LineWidth’,2)
hold on
legend(‘频率直方图’,‘正态分布’,‘Logistic’,‘t分布’,‘ExtremeValue’)%,‘非参数核密度估计’ 第五个未知
xlabel(‘预测误差(MW)’),ylabel(‘概率密度’)
%% 累计分布函数
figure(15)
subplot(3,1,1)
cdfplot(x);hold on
plot(x_value,p1,‘LineWidth’,2)
hold on
plot(x_value,p2,‘LineWidth’,2)
hold on
plot(x_value,p3,‘LineWidth’,2)
hold on
% plot(x_value,p4,‘LineWidth’,2)
% hold on
plot(x_value,p5,‘LineWidth’,2)
hold on
legend(‘正态分布’,‘Logistic’,‘t分布’,‘非参数核密度估计’,‘ExtremeValue’)
xlabel(‘预测误差(MW)’),ylabel(‘累计概率’)


http://www.kler.cn/a/593071.html

相关文章:

  • node-ddk,electron 组件, 系统基上下文菜单(右键菜单)
  • 在麒麟系统(基于Ubuntu或Debuntu)的离线环境中创建本地APT仓库
  • Certd自动化申请和部署SSL证书并配置https
  • MySQL(事物下)
  • C#通过SignalR直接返回流式响应内容
  • git创建一个本地仓库与远程仓库关联并推送文件到远程仓库
  • 十八、实战开发 uni-app x 项目(仿京东)- 后端生成API文档
  • 再探C语言(1)
  • 4.1-4 SadTalker数字人 语音和嘴唇对应的方案
  • 【Go语言圣经2.6】
  • 【责任链模式的多种实现方式及其应用】
  • docker需要sudo才能使用
  • 【canvas】一键自动布局:如何让流程图节点自动找到最佳位置
  • 目标检测YOLO实战应用案例100讲-基于毫米波雷达与摄像头协同的道路目标检测与识别(续)
  • 【Linux笔记】动态库与静态库的理解与加载
  • 轻量级模块化前端框架:快速构建强大的Web界面
  • Grounding DINO: 将DINO与接地预训练结合用于开放集目标检测
  • OPPO手机怎么更改照片天空?照片换天空软件推荐
  • 【开源宝藏】30天学会CSS - DAY2 第二课 Loader Ring Demo
  • 洛谷 P3986 斐波那契数列