GM(2,1)灰色预测

方法概述

GM(2,1) 是一种二阶灰色预测模型,适用于描述具有加速度特征的非线性时间序列。与传统 GM(1,1) 相比,GM(2,1) 通过引入二阶微分方程,能够捕捉数据变化的加速度趋势,更适合具有明显拐点或增长速率变化的情况。

GM(2,1) 的核心思想是: - 对原始序列进行一阶累加(1‑AGO),使数据规律更明显。 - 建立二阶常系数微分方程,通过最小二乘法估计参数。 - 求解微分方程的特征根,构造时间响应函数。 - 累减还原得到拟合值,并向外推预测。 - 提供级比检验、相对误差检验、后验差检验等模型诊断指标。

该方法适用于具有加速度特征、数据量较小(通常 4~8 个点)且需要中长期预测的场景,如经济指标预测、人口增长、交通流量分析等。

计算步骤

1. 数据准备与验证

输入数据为两列:第一列时间标识(数值或字符串),第二列为观测值。要求: - 观测值均为正数(若含非正数,模型自动平移处理)。 - 数据长度 ≥4(推荐 ≥5)。 - 时间序列递增(非严格递增会给出警告)。

程序自动进行级比检验: [ (k) = , k=2,3,,n ] 若所有级比均落在可容区间 ((e^{-2/(n+1)}, e^{2/(n+1)})) 内,则认为原始序列适合 GM(1,1) 类模型(GM(2,1) 条件更宽松)。

2. 数据平移(若需要)

若原始数据含非正数或级比检验不通过,自动平移: [ x^{(0)}_t = x^{(0)}_t + , = (x^{(0)})+1  () ]

3. 一次累加生成 (1‑AGO)

[ x^{(1)}(k) = _{i=1}^{k} x^{(0)}(i), k=1,2,,n ]

4. 紧邻均值生成

[ z^{(1)}(k) = 0.5 ( x^{(1)}(k) + x^{(1)}(k-1) ), k=2,3,,n ]

5. 建立二阶微分方程

白化微分方程: [ + a_1 + a_2 x^{(1)} = b ]

将离散形式改写为: [ a_1 x^{(0)}(k) + a_2 z^{(1)}(k) + b = x^{(0)}(k) - x^{(0)}(k-1) + _0 ] (具体推导参考原始代码中的 B 矩阵构造)

定义: - 一阶差分:( x^{(0)}(k) = x^{(0)}(k) - x^{(0)}(k-1),  k=2,,n ) - 构造矩阵 (B) 和常数向量 (Y): [ B = \[\begin{bmatrix} - x^{(0)}(2) & -z^{(1)}(2) & 1 \\ - x^{(0)}(3) & -z^{(1)}(3) & 1 \\ \vdots & \vdots & \vdots \\ - x^{(0)}(n) & -z^{(1)}(n) & 1 \end{bmatrix}\] , Y = \[\begin{bmatrix} x^{(0)}(2)-x^{(0)}(1) \\ x^{(0)}(3)-x^{(0)}(2) \\ \vdots \\ x^{(0)}(n)-x^{(0)}(n-1) \end{bmatrix}\]

]

6. 最小二乘估计

[ = (B^T B)^{-1} B^T Y = \[\begin{bmatrix} a_1 \\ a_2 \\ b \end{bmatrix}\]

]

7. 特解与齐次解

非齐次方程的特解:( x_p = )(若 (a_2 ))。

特征方程:( r^2 + a_1 r + a_2 = 0 ),判别式 (= a_1^2 - 4a_2)。

  • 若 (> 0):两个不同实根 (r_1, r_2)。
  • 若 (= 0):重根 (r)。
  • 若 (< 0):共轭复根 (i)。

8. 时间响应函数

根据边界条件 (x^{(1)}(0) = x^{(0)}(1)) 和 (x^{(1)}(n-1) = x^{(1)}(n)) 确定常数 (C_1, C_2)。

  • 两个不同实根: [ ^{(1)}(t) = C_1 e^{r_1 t} + C_2 e^{r_2 t} + ]
  • 重根: [ ^{(1)}(t) = (C_1 + C_2 t) e^{r t} + ]
  • 共轭复根: [ ^{(1)}(t) = e^{t} ( C_1 (t) + C_2 (t) ) + ]

9. 累减还原得拟合值

[ ^{(0)}(1) = ^{(1)}(0) ] [ ^{(0)}(k) = ^{(1)}(k-1) - ^{(1)}(k-2), k=2,,n ]

若之前进行了平移,拟合值减去平移量。

10. 预测外推

对 (t = n, n+1, , n+m-1) 计算 (^{(1)}(t)),累减得到未来 (m) 个预测值。

11. 模型检验

  • 相对误差检验: [ (k) = % ] 平均相对误差 ({}),判断等级:优(<1%)、良(<5%)、合格(<10%)、不合格(≥10%)。

  • 后验差检验: [ S_1^2 = (x^{(0)}(k) - {x})^2, S_2^2 = ((k) - {})^2 ] [ C = , P = I(|(k) - {}| < 0.6745 S_1) ] 精度等级:好(C<0.35, P>0.95)、合格(C<0.5, P>0.8)、勉强合格(C<0.65, P>0.7)、不合格(其他)。

案例分析

案例背景:某地区 2015‑2020 年的 GDP 数据(亿元)如下:

年份 2015 2016 2017 2018 2019 2020
GDP 120 135 148 162 179 198

目标:预测 2021‑2023 年 GDP。

计算过程(简略)

  1. 原始序列:(x^{(0)} = [120, 135, 148, 162, 179, 198]),n=6,均为正。
  2. 一阶累加:(x^{(1)} = [120, 255, 403, 565, 744, 942])。
  3. 构造 B 与 Y(略),解出: (a_1 , a_2 , b )。
  4. 特征方程:(r^2 -0.287r +0.0091=0),判别式正,实根 (r_1, r_2)。
  5. 时间响应函数: (^{(1)}(t) = C_1 e^{0.254t} + C_2 e^{0.033t} + 2057.14)。
  6. 解得常数 (C_1, C_2) 后计算拟合值。
  7. 检验
    • 平均相对误差 ≈ 1.2%,属“良”。
    • 后验差 C ≈ 0.23,P=1,属“好”。
  8. 预测: 2021 年 ≈ 219.3,2022 年 ≈ 243.7,2023 年 ≈ 270.1。

常见问题

Q1: GM(2,1) 与 GM(1,1) 有何区别?

A: GM(1,1) 适用于指数增长趋势,GM(2,1) 增加了二阶导数,可模拟增长加速度变化(S 型曲线或拐点)。若数据非线性较强,GM(2,1) 通常拟合更好。

Q2: 为什么程序会平移数据?

A: 灰色模型要求原始数据为正。若含零或负数,模型可能失效。程序自动平移使数据全为正,预测后平移回原尺度。

Q3: 特征根为复数意味着什么?

A: 表示数据呈现周期性振荡衰减或增长。此时预测值可能出现波动,需结合实际情况判断是否合理。

Q4: 数据长度有何要求?

A: 至少 4 个点。理论上越长建模越稳定,但灰色模型适用于少量数据(4~10 个点),过多点可能降低预测精度。

Q5: 如何解读模型精度等级?

A: 结合后验差 C 和小误差概率 P 综合判断。若 C<0.35 且 P>0.95 为“好”,可直接使用预测结果;若“合格”或“勉强合格”,建议修正或结合其他方法;“不合格”则不宜用于决策。

平台功能

GM(2,1) 灰色预测平台提供以下核心功能:

数据输入

  • 支持 Excel(.xlsx, .xls)、CSV、TXT 格式。
  • 第一列为时间标识,第二列为观测值。
  • 自动校验数据完整性、正负性。

参数设置

  • 结果保留小数位:1~10 位,默认 4 位。
  • 预测长度:未来预测点数(默认 10)。
  • 显示中间计算过程:展示级比值、累加序列等。

结果展示

  • 预测结果表:历史拟合值 + 未来预测值。
  • 模型检验
    • 级比检验(是否需平移)
    • 相对误差检验(平均相对误差及等级)
    • 后验差检验(C、P 及精度等级)
  • 模型参数:a1, a2, b, 特解, 特征根。
  • 精度等级说明:对照表。
  • 可视化
    • 可高度自定义的预测曲线图(颜色、线型、点型、字体等)。
    • 支持实时更新绘图参数。
  • AI 智能分析:基于 DeepSeek V4 自动解读模型精度、参数含义,提供预测可靠性建议(每日限 3 次)。
  • 多格式导出:Excel 和 HTML 报告,包含所有检验表格和预测结果。

多工作表支持说明

  • 当前版本每次仅分析一个工作表(单序列)。若需分析多组时间序列,可分别上传文件或在工作表中切换。

使用建议

  1. 数据准备
    • 收集至少 4 个连续时间点的观测值,最好 5~8 个。
    • 避免缺失值和异常值。
    • 若数据波动剧烈,可先进行平滑处理。
  2. 参数设置
    • 预测长度不宜超过数据长度的 2 倍,避免外推误差过大。
    • 保留足够小数位(默认 4 位)以保证精度。
  3. 模型诊断
    • 首先查看“后验差比值 C”和“小误差概率 P”,判定模型精度是否可用。
    • 若相对误差过大(>10%),考虑对数据取对数或差分后再建模。
    • 留意特征根是否为复数,复根预测值可能振荡。
  4. 结果解读
    • 发展系数 a1 和 a2:反映系统惯性。a1 负值表示加速增长,正值表示减速。
    • 灰色作用量 b:外部驱动力大小。
    • 结合 AI 分析获得更深入解释。
  5. 报告导出
    • Excel 报告包含汇总表、预测结果表、检验结果表、精度等级说明。
    • HTML 报告适合存档和分享,自动渲染带颜色标识的精度等级。
  6. 故障排除
    • 若提示“数据包含非数值”,检查第二列是否为纯数字。
    • 若级比检验不通过且平移后仍不通过,可尝试缩短预测长度或更换模型。

平台界面

官方地址:https://superr.online

GM(2,1)灰色预测工具界面

平台界面包含:数据上传区、参数设置区、数据预览、结果选项卡(预测结果、模型检验、模型参数、计算过程)、高度可定制可视化图形和 AI 分析模块


参考文献

  1. 邓聚龙. 灰色控制系统[M]. 华中理工大学出版社, 1985.
  2. Liu S, Yang Y, Forrest J. Grey Data Analysis: Methods, Models and Applications[M]. Springer, 2017.
  3. 基于 GM(2,1) 模型的中国能源消费预测[J]. 系统工程理论与实践, 2010, 30(6): 1118-1123. ```