GM(1,1)马尔可夫预测

方法概述

GM(1,1) 马尔可夫预测将灰色系统理论中的 GM(1,1) 模型与马尔可夫链相结合,用于时间序列的预测与修正。GM(1,1) 模型擅长捕捉系统的指数增长趋势,但难以处理随机波动;马尔可夫链则利用状态转移概率对预测残差进行修正,从而提高预测精度。

该方法的核心思想是:

  • 利用 GM(1,1) 模型对原始序列进行拟合和初步预测,计算相对误差序列。
  • 根据用户自定义的状态空间(相对误差区间),将相对误差划分为若干状态。
  • 构建状态转移概率矩阵,基于当前状态预测未来时刻的最可能状态。
  • 用状态区间的中点值对 GM(1,1) 预测值进行修正,得到马尔可夫修正后的预测值。
  • 提供多种检验指标:级比检验、相对误差检验、后验差检验,并分别对比 GM(1,1) 和马尔可夫修正后的精度。

该方法适用于小样本、数据呈现指数趋势且存在随机波动的短期预测问题,尤其适合经济、环境、能源等领域中需要提高预测稳健性的场景。

计算步骤

1. 准备数据

设有原始非负时间序列:

\[ X^{(0)} = (x^{(0)}(1), x^{(0)}(2), \dots, x^{(0)}(n)) \]

同时,用户需提供状态空间表,包含三列: - 状态编号(如 1,2,3,…) - 相对误差下限(%) - 相对误差上限(%)

状态空间用于将相对误差划分到不同区间。例如:

状态编号 相对误差下限(%) 相对误差上限(%)
1 0 2
2 2 5
3 5 10
4 10

2. GM(1,1) 建模与拟合

2.1 级比检验与数据平移

计算级比:

\[ \lambda(k) = \frac{x^{(0)}(k-1)}{x^{(0)}(k)}, \quad k=2,3,\dots,n \]

级比可容覆盖区间为 \(\Theta = \left( e^{-\frac{2}{n+1}}, e^{\frac{2}{n+1}} \right)\)。若所有 \(\lambda(k)\) 均落在 \(\Theta\) 内,则直接建模;否则需对数据加上常数 \(c\) 进行平移,使新序列满足条件。

2.2 一次累加生成(1-AGO)

对原始序列(或平移后序列)进行一次累加:

\[ X^{(1)}(k) = \sum_{i=1}^{k} x^{(0)}(i), \quad k=1,2,\dots,n \]

2.3 建立灰微分方程

构造数据矩阵 \(B\) 和常数向量 \(Y\)

\[ B = \begin{bmatrix} -\frac{1}{2}[x^{(1)}(1)+x^{(1)}(2)] & 1 \\ -\frac{1}{2}[x^{(1)}(2)+x^{(1)}(3)] & 1 \\ \vdots & \vdots \\ -\frac{1}{2}[x^{(1)}(n-1)+x^{(1)}(n)] & 1 \end{bmatrix}, \quad Y = \begin{bmatrix} x^{(0)}(2) \\ x^{(0)}(3) \\ \vdots \\ x^{(0)}(n) \end{bmatrix} \]

2.4 求解参数

利用最小二乘法估计发展系数 \(a\) 和灰色作用量 \(b\)

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

2.5 时间响应函数与拟合值

时间响应函数:

\[ \hat{x}^{(1)}(k) = \left( x^{(0)}(1) - \frac{b}{a} \right) e^{-a(k-1)} + \frac{b}{a}, \quad k=1,2,\dots,n,n+1,\dots \]

累减还原得到拟合值(\(k=1\) 时取原始值):

\[ \hat{x}^{(0)}(k) = \hat{x}^{(1)}(k) - \hat{x}^{(1)}(k-1), \quad k=2,3,\dots,n \]

若建模前进行了平移,则拟合值需减去平移量 \(c\)

2.6 GM(1,1) 未来预测

对未来 \(m\) 个时刻(\(k=n+1, n+2, \dots, n+m\)),同样利用时间响应函数计算累加预测值,再累减还原,并减去平移量(若有)。

3. 计算相对误差与状态划分

3.1 相对误差

对于历史时刻 \(k=1,\dots,n\),计算相对误差:

\[ e(k) = \left| \frac{x^{(0)}(k) - \hat{x}^{(0)}(k)}{x^{(0)}(k)} \right| \times 100\% \]

3.2 状态划分

根据用户提供的状态空间表,将每个相对误差 \(e(k)\) 分配到对应的状态 \(s_k\)\(s_k \in \{1,2,\dots,S\}\))。

4. 构建状态转移概率矩阵

统计从状态 \(i\) 转移到状态 \(j\) 的次数 \(n_{ij}\),计算转移概率:

\[ p_{ij} = \frac{n_{ij}}{\sum_{j=1}^{S} n_{ij}} \]

得到 \(S \times S\) 的状态转移概率矩阵 \(P\)

5. 马尔可夫修正

5.1 历史拟合修正

对于 \(k=2,\dots,n\),取前一时刻的状态 \(s_{k-1}\),根据转移概率矩阵预测当前最可能的状态 \(s_k^*\)(即 \(p_{s_{k-1}, s_k^*}\) 最大)。取该状态区间的中点值 \(m_{s_k^*}\),计算修正系数:

\[ \alpha_k = 1 - \frac{m_{s_k^*}}{100} \]

则马尔可夫修正后的拟合值为:

\[ \hat{x}_{\text{Markov}}^{(0)}(k) = \hat{x}^{(0)}(k) \times \alpha_k \]

(第一个点不修正,直接取 GM(1,1) 拟合值)。

5.2 未来预测修正

对于未来时刻 \(t = n+1, n+2, \dots, n+m\),从最后一个历史状态开始,依次根据转移概率矩阵预测下一状态,并用对应状态区间的中点值进行修正。

6. 模型检验

提供以下检验指标,分别对比 GM(1,1) 和马尔可夫修正后的结果:

  • 级比检验:是否通过,是否需要平移。
  • 平均相对误差\(\bar{e} = \frac{1}{n} \sum_{k=1}^{n} e(k)\),按 <1% (优), <5% (良), <10% (合格), ≥10% (不合格) 分级。
  • 后验差检验:后验差比值 \(C = S_2 / S_1\),小误差概率 \(P = P\{|e(k) - \bar{e}| < 0.6745 S_1\}\),精度等级按 C 和 P 综合判定(好、合格、勉强合格、不合格)。

7. 结果输出

输出 GM(1,1) 拟合值与预测值、马尔可夫修正后的拟合值与预测值、状态序列、状态转移概率矩阵,以及各项检验指标。

案例分析

案例背景:某企业 2015~2019 年的产品销售额(万元)如下,试预测 2020~2024 年的销售额,并用马尔可夫链修正。

年份 销售额
2015 2.5
2016 3.0
2017 3.6
2018 4.3
2019 5.2

状态空间定义如下(用户提供):

状态编号 相对误差下限(%) 相对误差上限(%)
1 0 2
2 2 5
3 5 10
4 10

计算过程

1. GM(1,1) 建模

(详细计算同 GM(1,1) 案例,此处略)

  • 发展系数 \(a = -0.1823\),灰色作用量 \(b = 2.482\)
  • GM(1,1) 拟合值:2.50, 3.01, 3.62, 4.35, 5.23
  • GM(1,1) 预测值(2020~2024):6.29, 7.57, 9.11, 10.96, 13.19

2. 计算相对误差

年份 实际值 GM(1,1)拟合 相对误差(%)
2015 2.5 2.50 0.00
2016 3.0 3.01 0.33
2017 3.6 3.62 0.56
2018 4.3 4.35 1.16
2019 5.2 5.23 0.58

3. 状态划分

根据状态空间:

  • 0.00 → 状态1
  • 0.33 → 状态1
  • 0.56 → 状态1
  • 1.16 → 状态1
  • 0.58 → 状态1

所有相对误差均落在 [0,2) 区间,故状态序列全为 1。

4. 状态转移概率矩阵

由于只有状态1,转移矩阵为 \([1]\)

5. 马尔可夫修正

状态1 的中点值为 1%,修正系数 \(\alpha = 1 - 1/100 = 0.99\)

  • 历史拟合:马尔可夫拟合值 = GM(1,1) 拟合值 × 0.99(第一个点除外,取原始值) 2015: 2.5, 2016: 3.01×0.99=2.98, 2017: 3.62×0.99=3.58, 2018: 4.35×0.99=4.31, 2019: 5.23×0.99=5.18
  • 未来预测:同样乘以 0.99 2020: 6.29×0.99=6.23, 2021: 7.57×0.99=7.49, 2022: 9.11×0.99=9.02, 2023: 10.96×0.99=10.85, 2024: 13.19×0.99=13.06

6. 检验结果

  • GM(1,1) 平均相对误差:0.53% (优)
  • 马尔可夫平均相对误差:0.53% (优)(本例中修正效果不明显,因误差已很小)
  • 后验差比值 C = 0.12 < 0.35,精度等级“好”

结论:模型精度高,马尔可夫修正对预测值进行了微调,预测结果可靠。

常见问题

Q1: GM(1,1) 马尔可夫预测与单独 GM(1,1) 相比有何优势?

A: GM(1,1) 模型对指数趋势拟合良好,但对随机波动无能为力。马尔可夫链利用相对误差的状态转移规律对预测值进行修正,能有效捕捉残差的非随机性,从而提高预测精度,尤其适用于数据存在一定波动的情况。

Q2: 状态空间如何确定?

A: 状态空间由用户根据历史相对误差的分布自行定义。一般可等间隔划分(如 0-2%, 2-5%, 5-10%, >10%),也可根据实际问题的精度要求自定义。状态划分过细可能导致转移矩阵稀疏,过粗则会损失修正效果。建议结合历史相对误差的直方图进行划分。

Q3: 数据平移如何处理?

A: 当原始数据包含非正数或级比检验不通过时,系统会自动对所有数据加上一个常数 \(c\),使得新序列级比合格。预测完成后,GM(1,1) 和马尔可夫预测值会自动减去 \(c\) 进行还原。用户可在结果中查看平移量。

Q4: 预测长度如何选择?

A: 一般建议预测长度不超过原始数据个数的 1/3(例如 6 个原始数据,预测不超过 2 步)。本平台允许自定义,但用户应结合模型精度判断:若后验差比值 C 较小(<0.35),可适当增加预测长度;否则应谨慎。

Q5: 如果状态转移概率矩阵无法确定(如只有一个状态)怎么办?

A: 若所有相对误差落在同一状态,则转移概率为 1,修正系数为常数。此时马尔可夫修正退化为等比缩放,仍然有效。

Q6: 支持多工作表吗?

A: 目前版本要求 Excel 文件包含两个工作表:“数据”和“状态空间”。不支持同时分析多个独立序列,但可多次上传。

平台功能

GM(1,1) 马尔可夫预测平台提供以下核心功能:

数据输入

  • 支持 Excel(.xlsx, .xls)格式。
  • 必须包含两个工作表:
    • “数据”:第一列为时间标识(年份、月份等),第二列为观测数据值。数据至少 4 行。
    • “状态空间”:第一列状态编号,第二列相对误差下限(%),第三列相对误差上限(%)。至少 1 行。
  • 自动验证数据完整性。

参数设置

  • 预测长度:未来预测的点数(默认 10)。
  • 小数位数:控制结果精度(默认 4 位)。
  • 显示中间计算过程:可选是否展示级比值、状态序列等中间步骤。
  • 绘图参数:可自定义图形标题、坐标轴标签、颜色、线型、散点样式、字体、图形尺寸等,支持分别设置 GM(1,1) 和马尔可夫模型的样式。

结果展示

  • 预测结果表:时间、类型(历史/预测)、观测值、GM(1,1) 拟合预测值、马尔可夫拟合预测值。
  • 模型检验
    • 级比检验(区间、是否通过、平移量)
    • 相对误差检验(GM(1,1) 和马尔可夫的平均相对误差及等级)
    • 后验差检验(GM(1,1) 和马尔可夫的 C、P 及精度等级)
  • 模型参数:发展系数 a、灰色作用量 b 及其含义。
  • 马尔可夫数据:状态序列、状态转移概率矩阵。
  • 精度等级说明:参考标准表格。
  • 计算过程(可展开):级比值、状态序列(需勾选“显示中间计算过程”)。
  • 可视化:原始数据、GM(1,1) 拟合预测值、马尔可夫拟合预测值的折线图 + 散点图,支持丰富的绘图参数自定义,并在历史/预测分界处绘制竖线。
  • AI 智能分析:基于 DeepSeek API 自动解读模型精度、比较两种模型效果,提供决策建议(每日限 3 次)。
  • 多格式导出:支持 Excel 和 HTML 报告下载。

使用建议

  1. 准备阶段:收集至少 4 个连续时间点的数据,确保数据非负且具有单调趋势。根据历史相对误差分布合理设计状态空间(建议状态数 3~5 个)。

  2. 数据收集:使用平台提供的模板文件填写 Excel。数据工作表第一列为时间,第二列为数值;状态空间工作表三列分别为状态编号、下限、上限。确保无缺失值。

  3. 参数设置

    • 根据实际需求设置预测长度(一般不超过原始数据数量的 1/3)。
    • 若想了解建模细节,勾选“显示中间计算过程”。
    • 调整绘图参数以获得清晰直观的图形,可分别设置 GM(1,1) 和马尔可夫的颜色和线型以便区分。
  4. 结果解读

    • 首先查看级比检验是否通过。若未通过但系统自动平移,应关注平移量是否合理。
    • 比较 GM(1,1) 平均相对误差马尔可夫平均相对误差,判断修正是否有效。若马尔可夫误差显著降低,说明残差存在规律性;若两者接近,说明 GM(1,1) 已足够精确。
    • 检查后验差比值 C小误差概率 P 的精度等级,综合评估模型可靠性。
    • 观察状态序列,若状态频繁跳跃,说明数据波动大,马尔可夫修正可能更有价值。
    • 利用 AI 分析获取专业解读和建议。
  5. 迭代优化

    • 若模型精度不理想,可尝试调整状态空间划分(更细或更粗),或增加数据点。
    • 将预测结果与实际情况对比,检验模型的有效性。
    • 可结合其他预测方法(如指数平滑、ARIMA)进行对比验证。

平台界面

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

GM(1,1)马尔可夫预测工具界面

平台界面包含:数据上传区、参数设置区、数据预览、分析结果展示和AI分析模块


参考文献

  1. 邓聚龙. 灰色系统理论教程[M]. 华中理工大学出版社,1990.
  2. 刘思峰,谢乃明. 灰色系统理论及其应用[M]. 科学出版社,2013.
  3. 基于 GM(1,1) 马尔可夫链的组合预测模型[J]. 系统工程理论与实践,2005, 25(8): 74-79.