GM(1,1)预测模型的残差检验、关联度检验、后验差检验代码

2023-11-10

      在建立好灰色模型后,首先要进行模型的检验,以检验模型的效果。一般有三种检验方法:相对残差检验、关联度检验、后验差检验。当三种检验全部通过时,表明模型的效果较好,才可以使用模型进行后续的预测;否则,将要对模型进行残差修正,直到三种检验均通过为止。

     这篇文章就着重阐述一下三种检验~

一、检验准则

     下面就不详细阐述各检验的基本原理了,重点说一下各检验的评判准则。

1.相对残差检验(根据自己的要求与题意任选一个要求进行衡量即可)

 (1)最严格的要求:\o(i)<0.005      其中\o(i)为相对误差序列,这个不等式表示当相对误差序列中的元素应都小于0.005时,通过相对残差检验。

(2)较宽泛的要求:     其中表示相对误差序列中元素的均值。

        给定a,当,当不等式成立时,称模型为合理模型。

        一般a取0.01、0.05、0.1,分别对应优秀、合格、勉强通过。

2.关联度检验

      其中 当,关联度大于0.6时,检验通过。

3.后验误差

        方差比C、小误差概率:

       根据P与C的取值,有对应好、合格、勉强合格、不合格的模型评价结果。

 二、例题

    题目:利用GM(1,1) 对以下数据进行预测,并对得到的模型进行三种检验。

     利用GM(1,1)进行预测得到对应的结果:

      分别对预测进行上述三种检验:(注:此处的结果与下方代码的输出结果对应)

1.相对残差检验

         此处输出的为相对残差序列,发现相对残差序列都小于0.5%,因此认为模型的精确度高。

         若每个序列都小于0.5%,就不用考虑相对平均误差了,因为当严格检验通过时,较宽泛的检验一定也通过。(因此此题只看严格检验的结果就足够了,下面的较宽泛检验可删去,但是为了让大家可以将这个检验应用到不同的情况,进行了宽泛检验的讲解)。

        当严格检验不通过时,可以考虑较宽泛的检验,从而对模型进行检验(这里的思想类似于假设检验里a的选取,如果对模型的要求高就对其进行严格检验,若要求不是太高,可降低标准,以使模型通过检验。),得到如下结果:

         可以得到相对平均误差为0.0018,小于0.01.因此通过相对残差检验。

2.关联度分析

        得到平均关联系数:

       R大于0.6,因此表明预测序列与原始序列的关联度较强,通过关联度检验。

3.后验差检验 

      得到方差比为1.8879%,小误差概率为100%,根据判断准则发现,C<0.35,同时P>0.95,因此说明模型较好,认为通过后验差检验。 

       综上,三种检验均通过,因此可以使用此模型进行后续的预测与操作。

       以上就是这次分享的内容,后期会陆续更新统计算法、机器学习、R软件等相关内容,感兴趣的小可爱,关注一波~

 

       残差检验、关联度检验、后验差检验matlab代码如下:

CA=abs(XY-X0) ;    %残差数列,X0为原始序列,XY为预测序列
Theta=CA    ;   %残差检验 绝对误差序列
XD_Theta= CA ./ X0  %残差检验 相对误差序列
AV=mean(XD_Theta)      % 残差数列平均值
R_k=(min(Theta)+0.5*max(Theta))./(Theta+0.5*max(Theta)) ;% P=0.5
R=sum(R_k)/length(R_k)  %关联度
GD=mean(CA); %绝对残差均值
Temp0=(CA-GD).^2 ;
Temp1=sum(Temp0)/length(CA);
S2=sqrt(Temp1) ;    %绝对误差序列的标准差
%----------
AV_0=mean(X0);     % 原始序列平均值
Temp_0=(X0-AV_0).^2 ;
Temp_1=sum(Temp_0)/length(CA);
S1=sqrt(Temp_1)   ;     %原始序列的标准差
TempC=S2/S1*100;      %方差比
C=strcat(num2str(TempC),'%')   %后验差检验  %方差比
%----------
Delta=abs(CA-AV);
SS=0.675*S1 ;
elta=abs(CA-AV) ;
TempN=find(Delta<=SS);
N1=length(TempN);
N2=length(CA);
TempP=N1/N2*100;
P=strcat(num2str(TempP),'%')   %后验差检验    %计算小误差概率

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GM(1,1)预测模型的残差检验、关联度检验、后验差检验代码 的相关文章

  • Kali环境下渗透目标(win7)虚拟机

    Kali环境下渗透目标 win7 虚拟机 注 此文章 是我看了CSDN上另一位博主的文章 我在自己在电脑上实验了一遍的结果 另外 本文仅供学习交流 用来做非法之事 本人概不负责 准备 1 在电脑上安装VMware 并下载安装虚拟机kali
  • pycharm运行YOLOv5 (一)

    登录github com search yolov5 查看选择各个版本 查看发布各个版本 点击下载版本 下载zip文件 解压之后导入pycharm 先看这个文件requirements txt 这是启动yolov5需要的各个库 pip in
  • docker启动rabbitmq后无法访问15672端口

    docker启动rabbitmq后无法访问15672端口 经查找资料得知 rabbitmq默认web界面管理插件是关闭的 只要通过命令开启就行 1 docker ps查看rabbitmq的id fb7a78201d31 2 命令进入容器do

随机推荐

  • vivado下载

    vitis vivado 2019 2百度网盘 链接 https pan baidu com s 11CvUL05o2NTRqN4PpnFG5Q 提取码 n82v vivado2018 2百度网盘 链接 https pan baidu co
  • javaEE 2019 10 24关于运算符 键盘录入数据

    运算符 对变量和常量的操作过程称为运算 对变量和常量进行操作的符号 运算符 算术运算符 加 减 乘 除 自增 自减 取模 字符串连接 赋值运算符
  • WEB前端 期末复习 2018.11

    WEB前端 期末复习 2018 11 名词解释部分 API Application Programming Interface 应用程序编程接口 是一些预先定义的函数 目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力 而又
  • kafka不同的topic使用相同的group的问题

    前几天为了省事 在申请group的时候 就使用了原来的group 本来以为group从属于某一个topic topic不同 group之间相互不会影响 但实际情况不是这样的 kafka不同topic的consumer如果用的groupid名
  • android 下拉刷新 组件,Android实现简单的下拉刷新控件

    背景 列表控件在Android App开发中用到的场景很多 在以前我们用ListView GradView 现在应该大多数开发者都已经在选择使用RecyclerView了 谷歌给我们提供了这些方便的列表控件 我们可以很容易的使用它们 但是在
  • maven跳过单元测试-maven.test.skip和skipTests的区别以及部分常用命令

    DskipTests 不执行测试用例 但编译测试用例类生成相应的class文件至target test classes下 Dmaven test skip true 不执行测试用例 也不编译测试用例类 不执行测试用例 但编译测试用例类生成相
  • poll, select, epoll

    随着2 6内核对epoll的完全支持 网络上很多的文章和示例代码都提供了这样一个信息 使用epoll代替传统的poll能给网络服务应用带来性能上的提升 但大多文章里关于性能提升的原因解释的较少 这里我将试分析一下内核 2 6 21 1 代码
  • HDU - 1312 Red and Black(DFS)

    There is a rectangular room covered with square tiles Each tile is colored either red or black A man is standing on a bl
  • 微信小程序导出当前画布指定区域的内容并生成图片保存到本地相册(canvas)

    最近在学小程序 在把当前画布指定区域的内容导出并生成图片保存到本地这个知识点上踩坑了 这里用到的方法是 wx canvasToTempFilePath 该方法作用是把当前画布指定区域的内容导出生成指定大小的图片 并返回文件路径 详情 看文档
  • Idea快捷键大全(Windows)

    转载 Idea快捷键大全 Windows Lymanyu的博客 CSDN博客 idea快捷键
  • spring+shiro多节点session共享

    shiro我就不多介绍了 我的方案是重写 shiro的sessionDAO 把session存储到redis上 直接上代码 一 spring中配置
  • Node.js 利用Promise对象并发写入流、读取流(Stream)

    上篇文章我们用高阶函数 函数柯里化 实现并发文件读取流 写入流 今天 我们用另外一种方法实现 let fs require fa 写一个通用的读取函数 返回promise对象 function getFile filename return
  • php 下载七牛文件上传,laravel下封装的七牛云图片上传下载方法

    fileName 文件名 filePath 文件路径 我用的是七牛云私有空间 如果用公有空间也一样 只是不需要下载方法而已
  • 042_前端规范 2021-06-03

    042 前端规范 最终目的 去除冗余 让代码易于维护 常见代码片段 遍历数组 1 2 3 forEach function value index console log value 映射新数组 arr 1 2 3 map v gt v 2
  • 如何在word中的图片上画圈标注_怎么在word画圈标注 如何在word图片中进行画圈标示...

    例如上面在图片上画圈效果的制作方法 1 单击插入 形状 线条 椭圆工具 2 拖动鼠标 在图片所需要的位置绘制一个适当大小的圆 3 单击绘图工具格式 形状填充 无填充颜色 4 单击绘图工具格式 形状轮廓 红色即可 如图所示 怎么用Word画简
  • JAVA基础之接口

    什么是接口 接口是一种特殊的类 但与类有本质区别 类中有成员方法和成员变量但是接口中只有常量和用abstract定义的方法 接口的声明采用关键字interface 格式 修饰符 interface 接口名 方法体 接口可以多继承 使用关键字
  • easypoi Excel导入导出 (工具类)

    1 用到的jar 红色的必须的 下面那些是运行起来 缺哪个就导哪个 如果报错提示没有这个方法的话 重启Tomcat 还不好使就是jar包版本不对 找个高点的版本 easypoi annotation 3 1 0 jar easypoi ba
  • SQL server数据库与My sql数据库的区别?

    在我们生活中无时无刻不需要使用到数据库 网络爬虫等一系列用处 那数据库到底是什么呢 我们一起接着往下看 数据库是存放数据的仓库 存储空间很大 可千万条 上亿条数据 但是数据库并不是随意地将数据进行存放 是有一定规则的 否则查询的效率会很低
  • Python最短代码实现人脸识别,打造自己专用人脸识别!

    对于类似于人脸的对象 你或许需要不少于 6000个分类器 每一个都需要成功匹配 当然 有容错率 才能检测出人脸 但这有一个问题 对于人脸识别 算法从左上角开始计算一个个数据块 不停问 这是张脸吗 每个数据块有超过 6000个检测 加起来的计
  • GM(1,1)预测模型的残差检验、关联度检验、后验差检验代码

    在建立好灰色模型后 首先要进行模型的检验 以检验模型的效果 一般有三种检验方法 相对残差检验 关联度检验 后验差检验 当三种检验全部通过时 表明模型的效果较好 才可以使用模型进行后续的预测 否则 将要对模型进行残差修正 直到三种检验均通过为