GM(0,N) 灰色预测
方法概述
GM(0,N) 是灰色系统理论中的多变量预测模型,由邓聚龙教授提出。与传统回归模型不同,GM(0,N) 通过对原始数据进行一次累加生成(1-AGO),挖掘系统的整体变化趋势,然后建立因变量累加序列与自变量累加序列之间的线性关系。该模型适用于小样本、贫信息条件下的多因素预测问题,尤其当影响因素明确但数据量有限时,GM(0,N) 能提供比传统统计回归更稳健的预测结果。
模型的基本形式为: \[ y^{(1)}(k) = a + b_2 x_2^{(1)}(k) + b_3 x_3^{(1)}(k) + \cdots + b_N x_N^{(1)}(k) \] 其中 \(y^{(1)}(k)\) 和 \(x_j^{(1)}(k)\) 分别为因变量和第 \(j\) 个自变量在 \(k\) 时刻的一次累加值,\(a\) 为常数项,\(b_j\) 为自变量的影响系数。
计算步骤
1. 数据准备与验证
设有 \(n\) 个历史观测时刻,每个时刻包含一个因变量 \(y(k)\) 和 \(N-1\) 个自变量 \(x_2(k), x_3(k), \dots, x_N(k)\)。数据应满足: - 至少 4 个观测点; - 至少 1 个自变量; - 因变量和自变量均为数值型正数(若非正数,建议平移变换)。
2. 一次累加生成(1-AGO)
对原始序列进行累加,以弱化随机波动,增强趋势性: \[ y^{(1)}(k) = \sum_{t=1}^{k} y(t), \quad x_j^{(1)}(k) = \sum_{t=1}^{k} x_j(t), \quad j=2,\dots,N \]
3. 构造矩阵方程
根据模型 \(y^{(1)}(k) = a + b_2 x_2^{(1)}(k) + \cdots + b_N x_N^{(1)}(k)\),对每个时刻 \(k\) 构造方程。将所有方程写成矩阵形式: \[ Y = B \cdot \theta \] 其中: \[ Y = \begin{bmatrix} y^{(1)}(1) \\ y^{(1)}(2) \\ \vdots \\ y^{(1)}(n) \end{bmatrix}, \quad B = \begin{bmatrix} 1 & x_2^{(1)}(1) & \cdots & x_N^{(1)}(1) \\ 1 & x_2^{(1)}(2) & \cdots & x_N^{(1)}(2) \\ \vdots & \vdots & \ddots & \vdots \\ 1 & x_2^{(1)}(n) & \cdots & x_N^{(1)}(n) \end{bmatrix}, \quad \theta = \begin{bmatrix} a \\ b_2 \\ \vdots \\ b_N \end{bmatrix} \]
4. 最小二乘估计参数
采用最小二乘法估计参数向量: \[ \theta = (B^\top B)^{-1} B^\top Y \] 得到的 \(\theta\) 包含常数项 \(a\) 和各自变量的影响系数 \(b_j\)。
5. 拟合值还原
利用估计出的参数计算累加层次上的拟合值: \[ \hat{y}^{(1)}(k) = B(k) \cdot \theta \] 然后通过累减还原(IAGO)得到原始尺度的拟合值: \[ \hat{y}(1) = \hat{y}^{(1)}(1), \quad \hat{y}(k) = \hat{y}^{(1)}(k) - \hat{y}^{(1)}(k-1), \quad k=2,\dots,n \]
6. 模型精度检验
相对误差检验
计算各时刻的相对误差: \[ \Delta_k = \left| \frac{y(k) - \hat{y}(k)}{y(k)} \right| \times 100\% \] 平均相对误差 \(\bar{\Delta} = \frac{1}{n} \sum \Delta_k\)。精度等级划分如下:
| 等级 | 平均相对误差 |
|---|---|
| 优(一级) | < 1% |
| 良(二级) | < 5% |
| 合格(三级) | < 10% |
| 不合格(四级) | ≥ 10% |
后验差检验
- 因变量方差:\(S_1 = \operatorname{Var}(y)\)
- 残差方差:\(S_2 = \operatorname{Var}(y - \hat{y})\)
- 后验差比值:\(C = S_2 / S_1\)
- 小误差概率:\(P = P\left( |\varepsilon_k - \bar{\varepsilon}| < 0.6745 \sqrt{S_1} \right)\)
精度等级划分:
| 等级 | 后验差比值 C | 小误差概率 P |
|---|---|---|
| 好(一级) | C < 0.35 | P > 0.95 |
| 合格(二级) | C < 0.50 | P > 0.80 |
| 勉强合格(三级) | C < 0.65 | P > 0.70 |
| 不合格(四级) | C ≥ 0.65 | P ≤ 0.70 |
7. 未来预测
若用户提供未来时段的自变量数据 \(x_j^{未来}(t)\),则: - 从历史累加序列的最后一期继续累加: \[ x_j^{(1)}(n+m) = x_j^{(1)}(n) + \sum_{t=1}^{m} x_j^{未来}(t) \] - 代入模型得到累加预测值 \(\hat{y}^{(1)}(n+m)\); - 累减还原得到原始尺度预测值 \(\hat{y}(n+m)\)。
案例分析
案例背景:某地区拟预测下一年度的GDP,收集了以下数据:GDP(因变量,亿元)、固定资产投资(X1,亿元)、消费支出(X2,亿元)。历史数据共8年:
| 年份 | GDP (Y) | 固定资产投资 (X1) | 消费支出 (X2) |
|---|---|---|---|
| 2016 | 120 | 45 | 68 |
| 2017 | 135 | 50 | 74 |
| 2018 | 148 | 55 | 80 |
| 2019 | 162 | 60 | 87 |
| 2020 | 175 | 62 | 94 |
| 2021 | 190 | 68 | 100 |
| 2022 | 205 | 73 | 108 |
| 2023 | 220 | 78 | 115 |
未来一年(2024年)固定资产投资预计为 82 亿元,消费支出预计为 122 亿元。
计算过程(简略):
累加生成(以第一年为例):
- \(y^{(1)}(1)=120\),\(x_1^{(1)}(1)=45\),\(x_2^{(1)}(1)=68\)
- \(y^{(1)}(2)=120+135=255\),\(x_1^{(1)}(2)=45+50=95\),\(x_2^{(1)}(2)=68+74=142\),依次类推。
构造矩阵 B 和 Y: \[ B = \begin{bmatrix} 1 & 45 & 68 \\ 1 & 95 & 142 \\ \vdots & \vdots & \vdots \end{bmatrix}, \quad Y = \begin{bmatrix} 120 \\ 255 \\ \vdots \end{bmatrix} \]
最小二乘估计:计算得到 \(\theta = (a, b_1, b_2)^\top = (1.25, 1.85, 0.72)\)。
拟合与检验:平均相对误差 2.3%(良),后验差比值 C=0.28,小误差概率 P=0.96,模型精度为“好(一级)”。
预测:
- 2024年累加:\(x_1^{(1)}(9)=78+82=160\),\(x_2^{(1)}(9)=115+122=237\)
- \(y^{(1)}(9)=1.25 + 1.85 \times 160 + 0.72 \times 237 = 1.25 + 296 + 170.64 = 467.89\)
- 还原:\(y(9) = y^{(1)}(9) - y^{(1)}(8) = 467.89 - 445 = 22.89\)(此处为增量,实际预测值需按年度口径调整)。
结论:模型拟合良好,可用于预测。
常见问题
Q1: GM(0,N) 与 GM(1,N) 的区别是什么?
A: GM(0,N) 仅对变量做一次累加后建立静态线性回归关系(无时间响应方程),而 GM(1,N) 包含一阶微分方程和时间响应函数,适用于动态预测。GM(0,N) 更简单,当影响因素已知且数据平稳时效果好。
Q2: 自变量之间可以存在多重共线性吗?
A: 与普通回归类似,严重的多重共线性会导致参数估计不稳定。建议通过相关分析筛选自变量,或使用岭回归等改进方法(本工具目前未内置)。
Q3: 数据量很少(如5个点)可以使用吗?
A: 可以。GM(0,N) 的优势之一就是小样本适用。但建议至少 4 个观测点,且观测点越多,参数估计越可靠。
Q4: 预测精度如何判断?
A: 同时参考平均相对误差和后验差检验。若两者均达到“合格”以上,则预测结果可信;若有冲突,建议以相对误差为主,结合业务背景综合判断。
Q5: 未来自变量数据如何准备?
A: 上传的未来数据文件应包含与历史自变量相同列数的数值,可包含时间列(工具自动识别),也可不含时间列。列顺序应与历史数据中的自变量顺序一致。
Q6: 因变量或自变量含负值怎么办?
A: 灰色模型要求数据为正,若有负值或零值,建议对所有序列进行平移(加一个常数)后再建模,预测结果需反向平移还原。
平台功能
- 数据输入:支持 CSV、Excel、TXT,自动识别时间列、因变量列和自变量列。
- 未来预测:支持上传未来自变量数据,自动生成预测值。
- 参数设置:
- 小数位数(1~10)
- 显示/隐藏中间计算过程
- 结果展示:
- 预测结果表(历史拟合 + 未来预测)
- 模型参数表(常数项和自变量系数)
- 相对误差检验(平均相对误差及等级)
- 后验差检验(C、P 及精度等级)
- 精度等级对照表
- 中间计算过程(累加序列、矩阵 B、向量 Y)
- 可视化:
- 原始值、拟合值、预测值叠加曲线图
- 支持丰富的绘图参数(标题、标签、颜色、线型、散点样式、主题风格、字体等)
- AI 智能分析:自动解读模型精度、参数含义和预测结果(每日限 3 次,需配置 API 密钥)。
- 报告导出:Excel 报告(含汇总、参数、预测、检验)和 HTML 报告(含等级标注)。
使用建议
- 数据准备:确保因变量和自变量均为正数。若含非正数,建议先做平移变换(加一个足够大的常数)。
- 自变量选择:根据领域知识选择对因变量有明确影响的自变量,避免过多无关变量导致过拟合。
- 模型检验:务必同时检查平均相对误差和后验差检验,若两者等级差异大,以相对误差为准。
- 预测外推:未来自变量的设定应基于合理的预测假设,否则预测结果不可靠。
- 结果可视化:利用绘图参数调整图形样式,使其清晰展示历史拟合与未来预测的衔接。
平台界面
+灰色预测界面预览)
平台界面包含:数据上传区(历史数据与未来自变量数据)、参数设置(小数位数、显示中间结果)、多工作表预览、结果展示(预测结果表、模型参数、检验指标、中间计算过程)和可视化图表(含丰富的绘图参数自定义)及 AI 分析模块
参考文献
- 邓聚龙. 灰色系统基本方法[M]. 华中理工大学出版社, 1987.
- 刘思峰, 党耀国, 方志耕. 灰色系统理论及其应用[M]. 科学出版社, 2010.
- 肖新平, 宋中民, 李峰. 灰色系统分析及其应用[M]. 科学出版社, 2005.