DGM(1,N) 灰色预测
方法概述
DGM(1,N)(Discrete Grey Model,离散灰色多变量模型)由谢乃明等提出,是灰色系统理论中的多变量动态预测模型。与连续型的 GM(1,N) 不同,DGM(1,N) 直接以离散差分方程描述因变量累加序列与自变量累加序列之间的关系,模型形式为:
\[ x_1^{(1)}(k+1) = \beta_1 x_1^{(1)}(k) + \sum_{i=2}^{N} \beta_i x_i^{(1)}(k) + \beta_{N+1} \]
其中 \(x_1^{(1)}\) 为因变量的一次累加序列,\(x_i^{(1)}\)(\(i=2,\dots,N\))为自变量的一次累加序列,\(\beta_1\) 为因变量自身滞后系数,\(\beta_i\) 为自变量的驱动系数,\(\beta_{N+1}\) 为常数项。该模型避免了从微分方程到差分方程的离散化误差,适用于小样本、贫信息条件下具有动态演化特征的多因素预测问题。
计算步骤
1. 数据准备与验证
设有 \(n\) 个历史观测时刻,每个时刻包含一个因变量 \(x_1(k)\) 和 \(N-1\) 个自变量 \(x_2(k), x_3(k), \dots, x_N(k)\)。数据应满足:
- 至少 4 个观测点;
- 至少 1 个自变量;
- 因变量和自变量均为数值型正数(若非正数,建议平移变换)。
2. 一次累加生成(1-AGO)
对原始序列进行累加:
\[ x_1^{(1)}(k) = \sum_{t=1}^{k} x_1(t), \quad x_i^{(1)}(k) = \sum_{t=1}^{k} x_i(t), \quad i=2,\dots,N \]
3. 构造矩阵方程
对 \(k=1,2,\dots,n-1\),由离散差分方程得:
\[ x_1^{(1)}(k+1) = \beta_1 x_1^{(1)}(k) + \sum_{i=2}^{N} \beta_i x_i^{(1)}(k) + \beta_{N+1} \]
写成矩阵形式 \(Y = B \cdot \beta\):
\[ Y = \begin{bmatrix} x_1^{(1)}(2) \\ x_1^{(1)}(3) \\ \vdots \\ x_1^{(1)}(n) \end{bmatrix}, \quad B = \begin{bmatrix} x_1^{(1)}(1) & x_2^{(1)}(1) & \cdots & x_N^{(1)}(1) & 1 \\ x_1^{(1)}(2) & x_2^{(1)}(2) & \cdots & x_N^{(1)}(2) & 1 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ x_1^{(1)}(n-1) & x_2^{(1)}(n-1) & \cdots & x_N^{(1)}(n-1) & 1 \end{bmatrix}, \quad \beta = \begin{bmatrix} \beta_1 \\ \beta_2 \\ \vdots \\ \beta_{N+1} \end{bmatrix} \]
4. 最小二乘估计参数
采用最小二乘法估计参数向量:
\[ \beta = (B^\top B)^{-1} B^\top Y \]
得到的 \(\beta\) 包含因变量滞后系数 \(\beta_1\)、驱动系数 \(\beta_i\) 与常数项 \(\beta_{N+1}\)。
5. 拟合值计算
以 \(\hat{x}_1^{(1)}(1) = x_1^{(1)}(1)\) 为初值,按差分方程递推得到累加拟合值,再累减还原:
\[ \hat{x}_1^{(1)}(k+1) = \beta_1 \hat{x}_1^{(1)}(k) + \sum_{i=2}^{N} \beta_i x_i^{(1)}(k) + \beta_{N+1} \]
\[ \hat{x}_1(k) = \hat{x}_1^{(1)}(k) - \hat{x}_1^{(1)}(k-1), \quad k \ge 2 \]
6. 模型精度检验
相对误差检验
计算各时刻的相对误差:
\[ \Delta_k = \left| \frac{x_1(k) - \hat{x}_1(k)}{x_1(k)} \right| \times 100\% \]
平均相对误差 \(\bar{\Delta} = \frac{1}{n} \sum \Delta_k\)。精度等级划分如下:
| 等级 | 平均相对误差 |
|---|---|
| 优(一级) | < 1% |
| 良(二级) | < 5% |
| 合格(三级) | < 10% |
| 不合格(四级) | ≥ 10% |
后验差检验
- 因变量方差:\(S_1 = \operatorname{Var}(x_1)\)
- 残差方差:\(S_2 = \operatorname{Var}(x_1 - \hat{x}_1)\)
- 后验差比值:\(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_i^{\text{未来}}(t)\)(\(i=2,\dots,N\)),则从历史最后一期累加值继续累加:
\[ x_i^{(1)}(n+m) = x_i^{(1)}(n) + \sum_{t=1}^{m} x_i^{\text{未来}}(t) \]
利用差分方程递推求解未来累加预测值:
\[ \hat{x}_1^{(1)}(n+t) = \beta_1 \hat{x}_1^{(1)}(n+t-1) + \sum_{i=2}^{N} \beta_i x_i^{(1)}(n+t-1) + \beta_{N+1} \]
再累减还原得到原始尺度预测值 \(\hat{x}_1(n+t) = \hat{x}_1^{(1)}(n+t) - \hat{x}_1^{(1)}(n+t-1)\)。
案例分析
案例背景:某地区拟预测下一年度的 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)}\)、\(x_1^{(1)}\)、\(x_2^{(1)}\) 序列。
- 构造矩阵 B 和 Y:以 \(k=1,\dots,7\) 构造 \(Y = B\beta\)。
- 最小二乘估计:计算得到 \(\beta_1 = 0.5525\),\(\beta_2 = 0.0071\),\(\beta_3 = 0.9883\),\(\beta_4 = 121.2627\)。
- 拟合:递推得到各年拟合值 120.00、135.09、148.12、161.29、175.52、190.32、204.46、220.22。
- 检验:平均相对误差 0.18%(优),后验差比值 C=0.012,小误差概率 P=1.00,模型精度为”好(一级)“。
- 预测:递推得到 2024 年 GDP 预测值约为 357.03 亿元。
结论:历史拟合精度很高,但由于离散模型的递推特性,外推幅度较大,建议结合 OGM(1,N) 等修正模型交叉验证。
常见问题
Q1: DGM(1,N) 与 GM(1,N) 的区别是什么?
A: DGM(1,N) 直接以离散差分方程建模,避免了从微分方程离散化的误差;GM(1,N) 基于一阶微分方程白化方程。当数据趋势明确时,DGM(1,N) 的累加层次拟合更稳定。
Q2: 因变量滞后系数 \(\beta_1\) 有什么意义?
A: \(\beta_1\) 反映因变量累加序列自身的惯性。\(|\beta_1|\) 越接近 1,因变量自身惯性越强;\(\beta_1<1\) 时外推幅度可能放大,需结合检验指标判断。
Q3: 自变量之间可以存在多重共线性吗?
A: 与普通回归类似,严重的多重共线性会导致参数估计不稳定。建议通过相关分析筛选自变量。
Q4: 数据量很少(如 5 个点)可以使用吗?
A: 可以。DGM(1,N) 的优势之一就是小样本适用。但建议至少 4 个观测点,且观测点越多,参数估计越可靠。
Q5: 未来自变量数据如何准备?
A: 上传的未来数据文件应包含与历史自变量相同列数的数值,可包含时间列(工具自动识别),也可不含时间列。列顺序应与历史自变量一致。
平台功能
- 数据输入:支持 CSV、Excel、TXT,自动识别时间列、因变量列和自变量列。
- 未来预测:支持上传未来自变量数据,自动生成预测值。
- 参数设置:
- 小数位数(1~10)
- 显示/隐藏中间计算过程
- 结果展示:
- 预测结果表(历史拟合 + 未来预测)
- 模型参数表(\(\beta_1\)、\(\beta_i\) 和常数项)
- 相对误差检验(平均相对误差及等级)
- 后验差检验(C、P 及精度等级)
- 精度等级对照表
- 中间计算过程(累加序列、矩阵 B、向量 Y、累加拟合值)
- 可视化:
- 原始值、拟合值、预测值叠加曲线图
- 支持丰富的绘图参数(标题、标签、颜色、线型、散点样式、主题风格、字体等)
- AI 智能分析:自动解读模型精度、参数含义和预测结果(每日限 3 次,需配置 API 密钥)。
- 报告导出:Excel 报告(含汇总、参数、预测、检验)和 HTML 报告(含等级标注)。
使用建议
- 数据准备:确保因变量和自变量均为正数。若含非正数,建议先做平移变换。
- 自变量选择:选择对因变量有明确影响的自变量,避免过多无关变量。
- 模型检验:务必同时检查平均相对误差和后验差检验,若两者等级差异大,以相对误差为准。
- 预测外推:未来自变量的设定应基于合理的预测假设;当 \(\beta_1\) 远离 1 时,注意外推结果的稳定性。
- 结果可视化:利用绘图参数调整图形样式,使其清晰展示历史拟合与未来预测的衔接。
平台界面
+灰色预测界面预览)
平台界面包含:数据上传区(历史数据与未来自变量数据)、参数设置(小数位数、显示中间结果)、多工作表预览、结果展示(预测结果表、模型参数、检验指标、中间计算过程)和可视化图表(含丰富的绘图参数自定义)及 AI 分析模块
参考文献
- 谢乃明, 刘思峰. 离散 GM(1,N) 模型及其应用研究[J]. 系统工程理论与实践, 2008, 28(6): 143-150.
- 刘思峰, 党耀国, 方志耕. 灰色系统理论及其应用[M]. 科学出版社, 2010.
- 邓聚龙. 灰色系统基本方法[M]. 华中理工大学出版社, 1987.