1、LASSO

LASSO回归的特点是在拟合广义线性模型的同时进行变量筛选(variable selection)和复杂度调整(regularization)。因此,不论因变量是连续的(continuous),还是二元或者多元离散的(discrete),都可以用 LASSO 回归建模然后预测。算法中的复杂度调整是指通过一系列参数控制模型的复杂度,从而避免过度拟合(overfitting)。对于线性模型来说,复杂度与模型的变量数有直接关系,变量数越多,模型复杂度就越高。更多的变量在拟合时往往可以给出一个看似更好的模型,但是同时也面临过度拟合的危险。此时如果用全新的数据去验证模型(validation),通常效果很差。一般来说,变量数大于数据点数量很多,或者某一个离散变量有太多独特值时,都有可能过度拟合。LASSO 回归复杂度调整的程度由参数 λ 来控制,λ越大对变量较多的线性模型的惩罚力度就越大,从而最终获得一个变量较少,而且比较有代表性的变量组合。

LASSO可以有效的避免过拟合,什么是过拟合,让我们看看下图,从左往右依次是欠拟合,拟合效果良好和过拟合。建模的过程就是模型对数据的普遍规律的总结,例如在线性模型中,输入自变量的数值,通过线性公式的转换,让最终得到的因变量的值和实际的因变量的值相差尽量小,这就是模型的拟合过程。欠拟合情况下,模型没有正确认识到数据体现的普遍规律,无法对作出良好的预测。过拟合情况下,模型将数据中的全部信息都当做普遍规律,在训练集样本可以达到完美的效果,但用于样本外的测试情况就不行了,因为它可能将一些片面的、只体现于小部分样本的规律误认为是复合总体样本的普遍规律了,这种的模型最终效果也是不好的,我们要避免这两种情况,一般来说,欠拟合可以用复杂的算法来避免,但随着模型复杂度增大,其学习率也增强,很容易出现过拟合现象。LASSO回归加入了正则项,对不蕴含有用信息的特征进行减小权重的操作,从而达到减小过拟合的目的。

2、代码实战

% 变量选择算法
clc
close all
clear
data = load('load24.mat').x;
%%
% 参数说明
percent = 0.8;         % 数据比列
mse =[];
% 取两个月数据
data = data(2:15*4*60,:);                                                  % 两个月数据
%%
norm = 0;                                                                  % 是否归一化预测
count = 1;
FileWrite = 4;
FeatureMean = 3;
for k = 10:-1:1                                                            % 不同特征预测figure(1)for i =1:4% 采样间隔Data = SampleData(data,i);                                          % 数据采样[Train,Test] = DataDivide(Data,percent,k,FeatureMean);              % 不同特征子集数据集[Train,Test,Xopt,Yopt] = Norm(Train,Test);                          % 数据集归一化划分    if norm == 0                                                       % 两种方式预测 归一化或者不归一化model = LinearModel.fit(Train.x,Train.y);Ypre = model.predict(Test.x);QuanYpre = Quantile(Train,Test,model,norm);else                                                               % 归一化预测model = LinearModel.fit(Train.xnorm,Train.ynorm);Ypre = model.predict(Test.xnorm);QuanYpre = Quantile(Train,Test,model,norm);endsubplot(2,2,i)x =1:length(Test.y);fill([x,x(end:-1:1)],[QuanYpre{1}',...QuanYpre{end}(end:-1:1)'],'r','FaceColor',[1 0.8 0.8],'EdgeColor','none')hold on plot(Ypre)if norm == 0 Yactual = Test.y;plot(Yactual)elseYactual = Test.ynorm;plot(Yactual)endhold off%plot(Test.ynorm);title(['采样间隔',num2str(i*15),'分钟'])legend('预测80%间隔','预测均值','实际值')xlabel(['归一化',num2str(norm)]);mse(i,count) = model.MSE;Loss(i,count) = Mse(Ypre,Yactual)*100;endcount = count + 1;pause(0.5)end

3、结果展示

完整代码

基于LASSO分位数回归时间序列区间预测相关推荐

  1. 基于分位数回归的长短期记忆网络QRLSTM时间序列区间预测。(主要应用于风速,负荷,功率)包含评价指标R2,MAE,MBE,区间覆盖率,区间平均宽度。

    %%  清空环境变量 warning off             % 关闭报警信息 close all               % 关闭开启的图窗 clear                 ...

  2. 2022年数模国赛C题(岭回归、区间预测、矩阵热力图、Fisher判别分类模型)——总结心得(附最后一次数模经历,Matlab\SPSS\Lingo的理解综合)

    文章目录 一.国赛 二.国赛代码展示 1.1 问题一 1.2 问题二 1.3 问题三 1.4 问题四 三.对于软件的理解 3.1 Matlab 3.1.1 表格的读取 3.1.2 元胞数组的相关函数的 ...

  3. 基于分位数回归的动态CoVaR计算 案例与代码

    关注公众号卧新实验室,并回复关键数字获取本文帮助文档.例如:20003 原文链接:基于分位数回归的动态CoVaR模型计算与操作 报名已结束:CCtalk 实时互动教育平台-专业的知识分享与在线教育平台 ...

  4. 分位数回归、GAM样条曲线、指数平滑和SARIMA对电力负荷时间序列预测

    原文链接:http://tecdat.cn/?p=18359 电力负荷预测是电网规划的基础,其水平的高低将直接影响电网规划质量的优劣.为了准确预测电力负荷,有必要进行建模(点击文末"阅读原文 ...

  5. 电气论文实现:深度学习分位数回归实现电力负荷区间预测

    个人电气博文目录链接:学好电气全靠它,个人电气博文目录(持续更新中-) 之前写过一版电力负荷区间预测:电气论文:负荷区间预测(机器学习简单实现) 这版区间负荷预测思维和上一版不一样. 核心代码见图(无 ...

  6. 计量经济学之回归分析学习笔记(均值回归、分位数回归、岭回归、Lasso回归、ENet回归)——基于R(一)

    [笔记前言] 最近在进行计量经济学的课程学习,本文对部分回归方法进行了整理,恳请大家对其中出现的错误进行指正,不胜感激. 此外,由于种种原因,在均值回归时,我们将涉及到模型建立后的后续检验,而在其他回 ...

  7. 时间序列预测之区间预测方法(PIs:MVEDeltaBayesianBootstrapLUBE)

    文章目录 前言 一.预测区间的评价指标 1.PICP(PI coverage probability) 2.PINAW(PI normalized averaged width) 3.CWC(cove ...

  8. 贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据...

    原文链接:http://tecdat.cn/?p=22702 贝叶斯回归分位数在最近的文献中受到广泛关注,本文实现了贝叶斯系数估计和回归分位数(RQ)中的变量选择,带有lasso和自适应lasso惩罚 ...

  9. 基于泰尔森回归的股票预测研究

    基于泰尔森回归的股票预测研究 绪论 背景 目的 流程 主要内容 数据获取与数据存储 数据调取以及案例数据分析 模型比较分析 2.3.1 模型初始化 2.3.2模型创建 2.3.3 模型可视化 2.3. ...

最新文章

  1. 深拷贝(deep clone)与浅拷贝(shallow clone)
  2. centos 安装配置ftp服务器
  3. 网络工程师之广域网必胜篇一
  4. 「mysql优化专题」90%程序员面试都用得上的索引优化手册(5)
  5. 解决oracle11g连接失败 ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist
  6. IBM Racetrack内存为移动设备带来1TB容量
  7. 使用spring ioc基于纯xml配置模拟crud
  8. 【CSON原创】javascript图片滚动效果发布
  9. SLAM专题(8)卡尔曼滤波和扩展卡尔曼滤波 原理与应用
  10. 转 我奋斗了18年,不是为了和你一起喝咖啡!
  11. C语言双人贪吃蛇游戏瘦身版本
  12. photoshop 安装和使用 蓝湖上传设计图
  13. Ubuntu 搭建opengrok 流程
  14. OSChina 周二乱弹 —— 糟糕 是喵动的感觉
  15. 两天碾转两个学校办卡地推
  16. 图像超分算法SRLUT: Practical Single-Image Super-Resolution Using Look-Up Table图像超分辨率重建
  17. Linux下vi编译器用C语言写九九乘法表
  18. Join Strings with join(连接字符串)freeCodeCamp上边的项目
  19. 实战|用Python制作邮箱自动回复机器人
  20. vos3000手机区号添加

热门文章

  1. 光纤接口卡学习资料第705篇:基于PCIe的24路光纤接口卡
  2. 如何通过蒲公英实现iOS版本自动提示更新,省去频繁打内测版本发链接给同事老板
  3. 2015华为机试题整理
  4. UESTC_方老师的分身 II CDOJ 915
  5. 分享两种主流的win10系统重装方法,手把手教你重装win10系统
  6. 2022年中国互联网广告行业市场规模及发展前景分析 2027年中国互联网广告规模或将接近9000亿元
  7. Windows PowerShell™ 用户手册
  8. java 海鲜超市项目_基于jsp的海鲜超市管理-JavaEE实现海鲜超市管理 - java项目源码...
  9. Python写入文件发现漏数据
  10. struts2获得所有actionlist