灰色预测GM(1,1)

简介: 灰色预测GM(1,1)

一、灰色预测模型简介

灰色预测的主要特点就是模型使用的不是原始数据列,而是生成的数据序列。其核心是灰色模型(Grey Model,GM),即对原始数据作累加生成(累加或差分,都能弱化噪声)能得到近似指数规律再进行建模的方法。

优点:

  1. 所需数据少,一般只需要4个以上数据,能解决历史数据少,序列完整性和可靠性低的问题
  2. 利用微分方程来充分挖掘系统的本质,精度高
  3. 能将无规律的原始数据进行生成得到规律性较强的生成序列
  4. 运算简便,易于检验,不考虑分布规律,不考虑变化趋势

缺点:

只适合短期预测,只适合指数增长的预测。

二、GM(1,1)灰色模型

GM(1,1),表示模型是一阶微分方程,且只含一个变量的灰色模型。

1、GM(1,1)模型预测方法

(1)原始数据(参考列)

(2)累加生成序列(Acumulated Generating Operator,1-AGO)

其中,显然,数列x(1)比数列x(0)光滑,弱化噪声。

(3)生成均值数列

(进一步弱化噪声)

其中

(4)建立灰微分方程

【1】

此方程白化为微分方程【2】

【1】的来源:x(1)是x(0)的累加,反过来,x(0)就是x(1)的差分,连续化就是导数,【1】中用z(1)而不直接用x(1),就是使数据进一步更光滑化,避免奇异值。可以利用曲线拟合来求a和b得值(就是利用最小二乘法)。用这个模型之前,最好绘制x(0),z(1)的散点图,看看大概情况。

(5)利用最小二乘估计【2】中参数a,b

【2】

的观测值序列为x(0)(k),k=2,3,…,n;

【2】中x(1)(t)的观测值为z(1)(k),k=2,3,…,n;

(5.1)

把x(0),z(1)作为【2】的因变量y和自变量x,作回归拟合,得到a,b的估计值;

(5.2)构造

根据最小二乘法,使得达到最小的u的估计值为求出a,b的估计值为方程【2】变为

(6)求解方程【3】,得到预测方程

为了求【3】的特解,引入初值确定特解。

【3】为一阶线性常系数微分方程,代入通解公式,代入定解条件,得

写成差分或者预测公式,为【4】k=0,1,2,…,n-1,…

2、GM(1,1)模型的预测步骤

(1)数据的检验与处理

设原始数列为计算数列的级比

(一个包含1的区间)

则认为原始数列适合作GM(1,1)灰色预测,否则需要对x(0)作平移:使得数列y(0)满足级比检验。

(2)建立模型

【4】

当初始数列或平移后的数列满足级比检验后,可用结论【4】进行预测,

(3)检验预测值

(3.1)残差检验

计算残差

这里,

则认为预测达到一般要求;

则认为预测达到较高要求;

(3.2)级差比偏差检验

首先用原始数据x(0)(k),x(0)(k-1)计算级比λ(k),再用发展系数a求出相应的级比偏差

若ρ(k)<0.2,认为预测达到一般要求;若ρ(k)<0.1,则认为预测达到较高要求。这里的a就是最小二乘估计的第一个参数,称为发展系数

(4)预测预报公式【5】

 


相关文章
|
机器学习/深度学习 数据采集 自然语言处理
【机器学习实战】10分钟学会Python怎么用LASSO回归进行正则化(十二)
【机器学习实战】10分钟学会Python怎么用LASSO回归进行正则化(十二)
5396 0
|
数据采集 算法 大数据
大数据中缺失值处理填充法
【10月更文挑战第21天】
1772 2
|
机器学习/深度学习 人工智能 编解码
【AI系统】轻量级CNN模型新进展
本文继续探讨CNN模型的小型化,涵盖ESPNet、FBNet、EfficientNet和GhostNet系列。ESPNet系列通过高效空间金字塔卷积减少运算量;FBNet系列采用基于NAS的轻量化网络设计;EfficientNet系列通过复合缩放方法平衡网络深度、宽度和分辨率;GhostNet系列则通过Ghost模块生成更多特征图,减少计算成本。各系列均旨在提升模型效率和性能,适用于移动和边缘设备。
1385 6
|
缓存 数据可视化 搜索推荐
HarmonyOS 4.0 实况窗上线!支付宝实现医疗场景智能提醒
HarmonyOS 4.0 实况窗上线!支付宝实现医疗场景智能提醒
1242 4
|
前端开发 容器
使用纯css制作类似轮播图效果
通过纯CSS实现流畅的页面切换效果,利用三个全屏大小的盒子放置于一个宽300vw的容器内。用户可通过点击底部按钮切换不同页面,每个按钮对应一个隐藏的单选按钮,选中时会触发容器的水平位移,从而展现不同的背景色页面。动画效果由`transition`属性完成,平滑过渡至下一个页面。此外,还提供了渐变色生成网站供参考,以丰富页面视觉效果。
332 1
|
Java Android开发 C++
🚀Android NDK开发实战!Java与C++混合编程,打造极致性能体验!📊
【7月更文挑战第28天】在 Android 开发中, NDK 让 Java 与 C++ 混合编程成为可能, 从而提升应用性能。**为何选 NDK?** C++ 在执行效率与内存管理上优于 Java, 特别适合高性能需求场景。**环境搭建** 需 Android Studio 和 NDK, 工具如 CMake。**JNI** 构建 Java-C++ 交互, 通过声明 `native` 方法并在 C++ 中实现。**实战** 示例: 使用 C++ 计算斐波那契数列以提高效率。**总结** 混合编程增强性能, 但增加复杂性, 使用前需谨慎评估。
724 4
|
分布式计算 Java Linux
centos7通过Ambari2.74部署Hadoop
centos7通过Ambari2.74部署Hadoop
1139 0
|
移动开发 前端开发 数据处理
探索前端性能优化的新思路:使用Web Workers提升网页响应速度
传统的前端性能优化方法已经不能完全满足日益增长的网页需求。本文提出了一种新的思路,即利用Web Workers技术来提升网页的响应速度。通过将耗时的计算任务交给Web Workers处理,可以避免主线程阻塞,从而提高网页的用户体验。本文将介绍Web Workers的基本原理、使用方法以及在前端性能优化中的应用实例,帮助开发者更好地理解和运用这一技术。
|
机器学习/深度学习 数据可视化 算法
【Python机器学习专栏】t-SNE算法在数据可视化中的应用
【4月更文挑战第30天】t-SNE算法是用于高维数据可视化的非线性降维技术,通过最小化Kullback-Leibler散度在低维空间保持数据点间关系。其特点包括:高维到二维/三维映射、保留局部结构、无需预定义簇数量,但计算成本高。Python中可使用`scikit-learn`的`TSNE`类实现,结合`matplotlib`进行可视化。尽管计算昂贵,t-SNE在揭示复杂数据集结构上极具价值。
1381 1
|
Python
python中使用fillna()函数
python中使用fillna()函数
2273 1

热门文章

最新文章