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

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(‘累计概率’)

相关文章:

  • 【单片机通信技术应用——学习笔记三】液晶屏显示技术,取模软件的应用
  • AI重构工程设计、施工、总承包行业:从智能优化到数字孪生的产业革命
  • 【C++】八大常见的设计模式的实现与实践指南
  • Flink 内存管理
  • 3.18练习
  • 实现图片多种处理需求的实用工具
  • 功能安全实战系列06-英飞凌Tricore系列SMU详解
  • cc1.日期和进制问题———选择题。
  • Hadoop 启动,发现 namenode、secondary namenodes,这两个没有启动,报错超时。
  • dify重磅升级:从0.15.3安全升级1.1.0新手避坑指南
  • 前端 | debounce 防抖 vs 节流(throttle)
  • 【人工智能-前端OpenWebUI】--图表显示
  • Oracle 19C分区表索引小结
  • 链式二叉树概念和结构
  • 【Java】Mybatis学习笔记
  • HTML5与CSS3新特性详解
  • C++回顾 day1
  • MATRIX-BREAKOUT: 2靶场
  • StarRocks中优雅处理JSON与列表字段的初步示例
  • sass介绍
  • 一季度规模以上工业企业利润由降转增,国家统计局解读
  • 保时捷中国研发中心落户上海虹桥商务区,计划下半年投入运营
  • 四川甘孜州白玉县发生4.9级地震,震源深度10千米
  • 四川省人大常委会原党组成员、副主任宋朝华接受审查调查
  • 政治局会议:创设新的结构性货币政策工具,设立新型政策性金融工具,支持科技创新、扩大消费、稳定外贸等
  • 生于1984年,马玥已任辽宁锦州北镇市代市长