GM(1,1)-马尔可夫预测计算说明
提示:本指南只针对GM(1,1)-马尔可夫预测特有的内容进行描述,关于软件的通用操作流程(如文件上传、参数设置、结果下载等),请查看:通用计算说明
1. 方法概述
GM(1,1)-马尔可夫预测模型,也有论文叫做灰色马尔可夫,它是在传统GM(1,1)灰色预测模型基础上,结合马尔可夫链理论对预测误差进行状态分析和修正的改进模型。
该方法通过分析GM(1,1)预测的相对误差序列,建立马尔可夫状态转移矩阵,利用状态转移概率来修正预测值,从而显著提高预测精度。特别适用于波动较大、误差具有一定规律性的时间序列预测。
2. 模型原理与优势
2.1 基本原理
第一步:GM(1,1)基础预测
- 对原始数据进行级比检验,必要时进行平移变换
- 对原始数据进行一次累加生成
- 构建灰色微分方程:$x^{(0)}(k) + az^{(1)}(k) = b$
- 利用最小二乘法求解发展系数a和灰色作用量b
- 得到时间响应公式:$\hat x^{(1)}(k+1) = \left[x^{(0)}(1) - \frac{b}{a}\right]e^{-ak} + \frac{b}{a}$
- 还原得到GM(1,1)基础预测值:$\hat x^{(0)}(k+1) = (1 - e^{-a})\left[x^{(0)}(1) - \frac{b}{a}\right]e^{-ak}$
第二步:马尔可夫状态分析
- 计算GM(1,1)预测的相对误差序列(不取绝对值):$\omega^{(0)}(k) = \frac{x^{(0)}(k) - \hat{x}^{(0)}(k)}{x^{(0)}(k)}$
- 根据误差范围将其划分为不同状态:$S ={S_1, S_2, \ldots, S_m}$,其中 $S_i = [e_i^1, e_i^2]$
- 统计相邻时刻之间状态转移的次数,建立状态转移次数矩阵
- 计算状态转移概率矩阵:$P = \begin{bmatrix} p_{11} & p_{12} & \cdots & p_{1m} \ p_{21} & p_{22} & \cdots & p_{2m} \ \vdots & \vdots & \ddots & \vdots \ p_{m1} & p_{m2} & \cdots & p_{mm} \end{bmatrix}$
第三步:马尔可夫修正
- 基于马尔可夫预测模型:$Q(k) = Q(0)P^k$
- 对有实际值的预测值进行修正:$\hat{L}^{(0)}(k) = \frac{\hat{x}^{(0)}(k)}{1-0.5(e_j^1 + e_j^2)}$
- 对未来预测值进行修正:$\hat{L}^{(0)}(n+k) = \frac{\hat{x}^{(0)}(n+k)}{1-0.5(e_j^1 + e_j^2)}$
2.2 模型优势
- 提高精度:通过马尔可夫修正显著降低预测误差
- 适应性强:能够处理波动较大的时间序列
- 误差分析:提供详细的误差状态分析
- 理论完备:结合灰色系统理论和马尔可夫链理论
3. 适用条件与数据要求
3.1 适用条件
- 误差规律性:GM(1,1)预测误差具有一定的状态转移规律
- 数据量要求:建议至少6-8个历史数据点(比纯GM(1,1)要求更高)
- 波动性数据:特别适合处理有一定波动性的时间序列
- 状态可分:预测误差能够合理划分为不同状态区间
3.2 与GM(1,1)的比较
| 方面 | GM(1,1) | GM(1,1)-马尔可夫 |
|---|---|---|
| 数据要求 | 4-20个数据点 | 6-20个数据点 |
| 适用场景 | 单调趋势数据 | 波动性数据 |
| 预测精度 | 基础精度 | 修正后精度更高 |
| 计算复杂度 | 较简单 | 较复杂 |
| 误差分析 | 基本统计 | 状态转移分析 |
4. 数据文件格式
GM(1,1)-马尔可夫需要上传包含两个工作表的Excel文件:
4.1 "数据"工作表格式
<div style=“text-align: center;”> <img src=“/guide/figures/gm11-markov/数据.png” width=“180” alt=“数据工作表格式”> </div>
数据工作表要求:
- 工作表名称必须为"数据"
- 第一列:时间序列数据(按时间顺序排列)
- 数据类型:非负数值
- 数据量:建议6-20个数据点
- ==数据必须按时间顺序排列,不能有缺失值==
4.2 "状态空间"工作表格式
<div style=“text-align: center;”> <img src=“/guide/figures/gm11-markov/状态空间.png” width=“420” alt=“状态空间工作表格式”> </div>
状态空间工作表要求:
- 工作表名称必须为"状态空间"
- 第一列:状态编号
- 第二列:“相对误差下限(%)”
- 第三列:“相对误差上限(%)”
- ==状态区间必须完全覆盖GM(1,1)预测结果与实际值的相对误差范围==
示例表中给出了6个状态空间编号,最小的相对误差为-10%,最大的为10%,则说明GM(1,1)预测结果与实际值的相对误差在[-10%, 10%]范围内,否则无法修正,软件会报错提示。
状态空间设计原则:
- 状态数量:通常4-6个状态较为合适
- 区间连续:相邻状态区间应当连续
- 实际导向:需根据实际GM(1,1)预测结果与实际值的相对误差范围设计状态区间
- 按需调整:状态空间的设计直接关系到马尔可夫修正的效果,需要根据预测的精度指标要求进行调整。
5. 参数设置
GM(1,1)-马尔可夫包含以下计算和绘图参数:
5.1 基本计算参数
- 预测长度:设置需要预测的期数(默认10期)
- 结果保留小数位:设置计算结果的小数位数(1-10位)
5.2 时间设置
- 时间类型:年份或月份
- 起始年份:历史数据的起始年份
- 起始月份:当选择月份类型时的起始月份
5.3 绘图设置
<div style=“text-align: center;”> <img src=“/guide/figures/gm11-markov/绘图设置.png” width=“1200” alt=“绘图设置”> </div>
GM(1,1)-马尔可夫提供丰富的三线对比图表自定义选项:
基本设置:
- 绘图风格:默认、经典、ggplot、bmh、深色背景、灰度
- 字体选择:宋体、黑体、微软雅黑、楷体、仿宋
- 字体大小:修改文字大小
坐标轴设置:
- x轴标签:自定义x轴标签文字
- y轴标签:自定义y轴标签文字
数据点样式:
- 原始值散点样式:星形(*)、圆形(o)、三角形(^)、正方形(s)等
- GM(1,1)散点样式:星形(*)、圆形(o)、三角形(^)、正方形(s)等
- 马尔可夫散点样式:星形(*)、圆形(o)、三角形(^)、正方形(s)等
- 散点大小:修改散点大小
图例设置:
- 原始值图例:自定义原始值在图例中的名称
- GM(1,1)图例:自定义GM(1,1)预测值在图例中的名称
- 马尔可夫图例:自定义马尔可夫修正值在图例中的名称
颜色和线型:
- 三种数据的颜色:支持颜色选择器自定义
- 线型选择:实线(-)、虚线(–)、点划线(-.)
6. 计算结果
6.1 计算结果预览
计算结果页面可以预览到以下内容,直观看到部分结果,更多结果可以下载结果文件到本地查看。
<div style=“text-align: center;”> <img src=“/guide/figures/gm11-markov/计算结果.png” width=“1200” alt=“GM11-马尔可夫计算结果”> </div>
- GM(1,1)级比检验结果:包括原始值、级比值列表,级比检验区间,是否需要平移,平移量
- GM(1,1)模型参数:发展系数 $a$,灰色作用量 $b$,保留10位小数,供精确验算
- GM(1,1)相对误差、级比偏差、后验差比和小误差概率检验:检验指标数值和达到要求的程度描述,如达到较高要求等。
- 灰色马尔可夫相对误差、级比偏差、后验差比和小误差概率检验:检验指标数值和达到要求的程度描述,如达到较高要求等。
==通过对比灰色马尔可夫与GM(1,1)预测结果的精度指标,判断马尔可夫修正是否有效。==
除了计算结果页面可以预览部分结果,在页面下方还可以下载结果文件,结果文件的Excel里包含以下工作表:
6.2 预测结果
主要的预测结果对比表格:
<div style=“text-align: center;”> <img src=“/guide/figures/gm11-markov/预测结果.png” width=“1000” alt=“预测结果表”> </div>
- 时间:根据时间类型显示的时间序列
- 原始值:历史观测数据
- GM11预测值:传统GM(1,1)的预测结果
- 马尔可夫修正值:经过马尔可夫修正后的最终预测值
- GM11残差:原始值与GM(1,1)预测值的差值
- GM11相对误差(%):GM(1,1)预测的相对误差百分比
- GM11相对误差(不取绝对值)(%):用于状态分析的相对误差
- 状态:相对误差对应的马尔可夫状态
- 马尔可夫残差:原始值与马尔可夫修正值的差值
- 马尔可夫相对误差(%):马尔可夫修正后的相对误差百分比
6.3 级比检验
与GM(1,1)相同的级比检验结果:
<div style=“text-align: center;”> <img src=“/guide/figures/gm11/级比检验.png” width=“280” alt=“级比检验结果”> </div>
6.4 建模过程量
展示GM(1,1)建模的中间计算过程:
<div style=“text-align: center;”> <img src=“/guide/figures/gm11-markov/建模过程量.png” width=“380” alt=“建模过程量”> </div>
6.5 模型参数
模型的关键参数和精度指标对比:
<div style=“text-align: center;”> <img src=“/guide/figures/gm11-markov/模型参数.png” width=“520” alt=“模型参数”> </div>
- 级比检验结果:级比检验区间、是否需要平移、平移量
- GM(1,1)基础参数:发展系数a(保留10位小数)、灰色作用量b(保留10位小数)
- GM(1,1)精度指标:平均相对误差、后验差比C、小误差概率p
- 马尔可夫精度指标:修正后的平均相对误差、后验差比C、小误差概率p
注意:a、b在模型计算预测值时没有保留小数,如果需要手动本地计算,建议使用10位小数的a、b验算,否则预测结果可能有差别。
6.6 状态转移次数矩阵
记录各状态间的实际转移次数:
<div style=“text-align: center;”> <img src=“/guide/figures/gm11-markov/状态转移次数矩阵.png” width=“600” alt=“状态转移次数矩阵”> </div>
- 显示从状态 i 转移到状态 j 的实际次数
- 用于构建状态转移概率矩阵的基础数据
6.7 状态转移概率矩阵
马尔可夫链的核心概率矩阵:
<div style=“text-align: center;”> <img src=“/guide/figures/gm11-markov/状态转移概率矩阵.png” width=“600” alt=“状态转移概率矩阵”> </div>
- 显示从状态 i 转移到状态 j 的概率
- 每行概率之和为1
- 用于修正预测值的依据
6.8 状态向量详情
详细的状态分析和转移过程:
<div style=“text-align: center;”> <img src=“/guide/figures/gm11-markov/状态向量详情.png” width=“1200” alt=“状态向量详情”> </div>
- 转移步数:到达当前状态所需的转移步数
- 状态1、2、3、4、5、6概率:各状态的概率分布,组合即可得到状态分布向量,即 [状态1概率,状态2概率,状态3概率,状态4概率,状态5概率,状态6概率]
- 选择状态:最大概率对应的状态
- 转移说明:转移过程的详细说明
6.9 预测对比图
系统自动生成三线对比图表:
<div style=“text-align: center;”> <img src=“/guide/figures/gm11-markov/预测图.png” width=“650” alt=“GM11-马尔可夫预测对比图”> </div>
- 蓝色线(原始值):历史观测数据
- 橙色线(GM(1,1)预测值):传统GM(1,1)的预测结果
- 绿色线(马尔可夫修正值):经过马尔可夫修正的最终预测值
- 图例:清晰区分三种数据类型
- 对比效果:直观展示马尔可夫修正的改善效果
提醒:预测对比曲线,可以在绘图设置页面右侧预览的图片上右键-图片另存为,也可以在结果文件的【预测图】sheet表里在图片上右键另存为,即可保存到本地使用。
7. 结果解读
7.1 精度评价指标
指标计算公式
平均相对误差: $$\omega^{(0)}(k) = \frac{|x^{(0)}(k) - \hat{x}^{(0)}(k)|}{|x^{(0)}(k)|}$$
平均级比偏差: $$\rho(k)= \left|1-\left(\frac{1-0.5 a}{1+0.5a}\right)\lambda(k)\right|, \quad k=2,3 \cdots,n$$
后验差比C: $$C = \frac{S_2}{S_1}$$
小误差概率p: $$p = P\left{\left|{\varepsilon}^{(0)}(i) - \bar{\varepsilon}^{(0)}\right| < 0.6745S_1\right}$$
相对误差类指标评价标准
| 指标名称 | 非常优秀 | 优秀 | 良好 | 一般 |
|---|---|---|---|---|
| 平均相对误差 | < 5% | 5%-10% | 10%-20% | > 20% |
| 平均级比偏差 | < 0.05 | 0.05-0.1 | 0.1-0.2 | > 0.2 |
统计检验类指标评价标准
| 指标名称 | 好 | 合格 | 勉强 | 不合格 |
|---|---|---|---|---|
| 后验差比C | ≤ 0.35 | 0.35-0.50 | 0.50-0.65 | > 0.65 |
| 小误差概率p | ≥ 0.95 | 0.80-0.95 | 0.70-0.80 | < 0.70 |
7.2 模型参数意义
发展系数 $a$: 反映系统内在的发展趋势或速率,是序列增长或衰减的固有特性的量化体现。
- $a > 0$:系统处于衰减状态
- $a < 0$:系统处于增长状态
- $|a|$的大小 反映了这种增长或衰减的速度。$|a|$越大,说明趋势越强劲,变化越快;$|a|$越小,则变化越平缓
灰色作用量 $b$: 代表所有外部因素(已知和未知)对系统产生的综合影响的量化,其具体数值的绝对值大小反映了外部作用的强度
7.3 状态转移分析
状态转移矩阵解读:
- 分布均匀:表示状态转移随机性较强
- 集中分布:表示某些状态转移具有明显规律
状态向量分析:
- 单步转移:正常的马尔可夫转移
- 多步转移:用于解决多状态同最大概率的情况
- 转移步数越多:表示状态预测的不确定性越大
7.4 GM(1,1)预测可靠性判断
- 级比检验必须通过(软件自动处理)
- 平均相对误差 $< 20%$
- 后验差比 $C < 0.65$
- 小误差概率 $p > 0.70$
7.5 模型选择建议
选择GM(1,1)-马尔可夫的情况:
- GM(1,1)预测误差较大(平均相对误差 > 15%)
- 数据波动性较强
- 误差具有一定的状态转移规律
- 对预测精度要求较高
继续使用GM(1,1)的情况:
- GM(1,1)预测精度已经很高(平均相对误差 < 10%)
- 数据呈现明显的单调趋势
- 马尔可夫修正效果不明显
8. 常见问题
8.1 文件格式问题
问:上传文件后提示工作表缺失?
答:Excel文件必须包含名为"数据"和"状态空间"的两个工作表。请检查:
- 工作表名称是否完全正确(区分大小写)
- 是否存在这两个工作表
- 工作表是否为空
8.2 级比检验问题
问:原始数据不满足级比检验能用GM(1,1)吗?
答:可以,系统会自动进行平移变换处理:
- 软件会自动寻找合适的平移量C
- 对所有原始数据加上常数C,使新数据满足级比检验
- 预测结果会自动减去C得到真实预测值
8.3 状态空间设计问题
问:提示相对误差值无法被状态空间覆盖?
答:这表示GM(1,1)的预测误差超出了定义的状态空间范围。解决方法:
- 扩大状态空间的范围(如[-10%, 10%]扩展为[-20%, 20%])
- 检查数据质量,排除异常值
8.4 状态转移问题
问:提示某个状态没有转移记录?
答:这通常发生在以下情况:
- 状态划分过细,某些状态没有出现
- 数据量不足,无法形成有效的状态转移
- 最后一个状态是孤立状态
解决方法:
- 合并相近的状态区间
- 增加历史数据量
- 重新设计状态空间
- 建议状态数量控制在3-6个
8.5 精度改善问题
问:为什么马尔可夫修正后精度没有提升?
答:可能的原因:
- 原始GM(1,1)预测精度已经很高,改善空间有限
- 状态空间设计不合理
- 数据不适合马尔可夫修正(如单调性过强)
- 样本量不足,状态转移规律不明显
8.6 预测长度问题
问:马尔可夫修正能预测多长时间?
答:虽然理论上可以预测任意长度,但建议:
- 短期预测(1-3期):效果最佳
- 中期预测(4-6期):效果良好
- 长期预测(>6期):不确定性增大
- 推荐预测长度不超过历史数据量的1/2
9. 应用领域
- 经济预测:GDP、股价、汇率等波动性经济指标
- 需求预测:销售额、客流量等具有不确定性的业务指标
- 工程预测:设备故障率、维护成本等工程管理指标
- 环境预测:污染物浓度、气候变化等环境监测数据
- 医疗预测:疫情发展、病例数量等医疗健康数据
10. 模型局限性
- GM(1,1)-马尔可夫模型适用于单变量时间序列预测
- 对于强非线性、多周期性数据效果可能有限
- 状态空间设计对预测效果影响较大
- 需要足够的历史数据来建立稳定的状态转移规律