灰色模型作为灰色系统理论的重要内容之一, 在多个领域得到了广泛的应用.尤其是GM (1, 1) 模型, 以其所需建模样本少, 计算简单方便等特点, 因而比其他传统预测方法更具优越性.为提高模型的拟合和预测精度, 许多学者从提高原始数据序列的光滑度, 改进模型的参数估计方法, 优化背景值和初始条件等方面做了大量广泛的研究.
对改进灰色预测模型的研究, 为提高建模序列的光滑度文献[1-9]分别提出了对数函数变换、正弦函数变换、余弦函数变换、幂函数变换、正切函数变换、正切-指数函数变换、幂函数-指数函数变换、负指数函数变换等, 这些变换均能在一定程度上提高原始序列的光滑度, 并在实际应用中取得了比较满意的结果.由GM (1, 1) 模型的时间响应式可以看出影响模型模拟和预测精度的因素取决于初始值的选取和参数$a, b$的值, 而参数的值又依赖于背景值, 因此, 初始值的选取和背景值的构造是否合理直接影响到模型的模拟和预测精度.传统的GM (1, 1) 模型以历史数据中的第一个数据作为初始条件, 这就等于拟合曲线必须经过历史数据中的第一个数据点, 但这并不一定符合事实.文献[10-17]从改进背景值和初始条件方面研究了提高模型预测精度的方法.然而, 单方面改进对模型精度的贡献有限, 同时在多方面优化可使模型精度有更大的提高.本文在前人研究的基础上以文献[9]提出的函数$f(x) = c\ln x + d$变换技术和文献[14]提出的将${x^{(1)}}$的第$n$个分量作为灰色微分模型的初始条件和将原背景值${z^{(1)}}_{(k)}$优化为${z^{(1)}}_{(k)} = \frac{{{x^{(1)}}_{(k)} - {x^{(1)}}_{(k - 1)}}}{{\ln {x^{(1)}}_{(k)} - \ln {x^{(1)}}_{(k - 1)}}}$的方法相结合对GM (1, 1) 模型进行了改进, 从而使所建模型精度进一步提高.
设有非负原始数据序列
其中, ${x^{(0)}}_{(k)} \ge 0, k = 1,2, \cdots n;$ ${x^{(1)}}$为${x^{(0)}}$的一次累加生成数列
其中, ${x^{(1)}}_{(k)} = \sum\limits_{i = 1}^k {{x^{(0)}}_{(i)}} , k = 1,2, \cdots n;$ ${z^{(1)}}$为${x^{(1)}}$的紧邻均值生成序列
其中${z^{(1)}}_{(k)} = \frac{1}{2}({x^{(1)}}_{(k)} + {x^{(1)}}_{(k - 1)}), k = 2,3, \cdots, n.$
建立关于${x^{(1)}}$的一阶白化微分方程: $\frac{{d{x^{(1)}}}}{{dt}} + a{x^{(1)}} = b$, 并用最小二乘法求解参数$a$和$b$.
式中$a$, $b$为待识别参数. $a$为灰系数, $b$为灰作用量, 分别反映了原始数据序列的增长速度和数据变化关系.
$a$, $b$确定后求解微分方程可得到GM (1, 1) 模型:
其还原模型为
对原始数列经过某种变换可以减小光滑比, 但不适当的变换虽可以满足光滑性要求却不一定获得较高的精度.文献[9]在保证构造的数据变换满足减小光滑比、调节级比压缩、保持序列凹凸性不变、还原误差不增大等条件下, 提出非负$f(x) = c\ln x + d$函数变换, 其中$c \ge \max \{ {x_{(k)}},k = 1,2, \cdots n\} ,{x_{(k)}} > e$, 并证明利用该函数变换对原始数据序列进行处理可以保持在原有数据序列基本规律不变的情况下, 提高数据序列的光滑度.
对背景值的优化文献[10]提出用${z^{(1)}}_{(k)} = \frac{{{x^{(1)}}_{(k)} - {x^{(1)}}_{(k - 1)}}}{{\ln {x^{(1)}}_{(k)} - \ln {x^{(1)}}_{(k - 1)}}}$代替${z^{(1)}}_{(k)} = \frac{1}{2}({x^{(1)}}_{(k)} + {x^{(1)}}_{(k - 1)})$从而减小由原背景值产生的误差, 可在一定程度上提高建模精度.而初始值也是影响GM (1, 1) 模型模拟与预测精度的另一个重要因素.文献[13]基于灰色系统理论的新信息优先原理和最少信息原理, 将原GM模型的初始条件由${x^{(0)}}_{(1)}$改为以${x^{(1)}}$的第$n$个分量${x^{(1)}}_{(n)}$作为灰色模型的初始条件, 从而使得原始序列的信息通过${x^{(1)}}_{(n)}$都可以得到充分反映, 因而可以克服GM建模与${x^{(0)}}_{(1)}$无关的弊端.由于背景值优化和初始值的改进均能使得模型的精度提高, 并且二者相互独立.因此, 可先对背景值进行优化再将原模型${\hat x^{(0)}}_{(k + 1)} = (1 - {e^a})\left( {{x^{(0)}}_{(1)} - \frac{b}{a}} \right){e^{ - ak}}$中的${x^{(0)}}_{(1)}$换成${x^{(1)}}_{(n)}$即得到新的时间响应序列${\hat x^{(0)}}_{(k + 1)} = (1 - {e^a})\left( {{x^{(1)}}_{(n)} - \frac{b}{a}} \right){e^{ - ak}}$.文献[14]研究了采用初始条件与背景值同时优化的方法, 得到改进后的新模型既适用于低增长指数序列建模, 也适用于高增长指数序列建模, 且拟合精度都很高.
新的GM (1, 1) 模型的建模过程如下:
(1) 设有非负原始数据序列${y^{(0)}}$ : ${y^{(0)}}_{(k)} = \{ {y^{(0)}}_{(1)},{y^{(0)}}_{(2)},{y^{(0)}}_{(3)},\cdots,{y^{(0)}}_{(n)}\} $, $k = 1,2, \cdots n.$对序列${y^{(0)}}$做一次累加得数据序列${y^{(1)}}$ : ${y^{(1)}}_{(k)} = \{ {y^{(1)}}_{(1)},{y^{(1)}}_{(2)},{y^{(1)}}_{(3)},\cdots,{y^{(1)}}_{(n)}\} $, $k = 1,2, \cdots, n.$
(2) 对原始数列做光滑性和准指数规律检验, 建模可行性分析.光滑性检验公式: ${\rho _{(k)}} = \frac{{{y^{(0)}}_{(k)}}}{{{y^{(1)}}_{(k - 1)}}}$, ${\rho _{(k)}} \in (0,0.5)$.准指数规律检验公式: ${\delta ^{(1)}}_{(k)} = \frac{{{y^{(1)}}_{(k)}}}{{{y^{(1)}}_{(k - 1)}}}$, ${\delta ^{(1)}}_{(k)} \in (1,1.5)$.
(3) 对原始数列做函数$f(x) = c\ln x + d$变换, 得到新数列
(4) 对数列做一次累加生成数列${x^{(1)}}$ : ${x^{(1)}}_{(k)} = \{ {x^{(1)}}_{(1)},{x^{(1)}}_{(2)},{x^{(1)}}_{(3)},\cdots,{x^{(1)}}_{(n)}\} $, 其中${x^{(1)}}_{(k)} = \sum\limits_{i = 1}^k {{x^{(0)}}_{(i)}} $, $k = 1,2, \cdots, n.$
(5) 对${x^{(1)}}$做紧邻生成序列${z^{(1)}}$ : ${z^{(1)}}_{(k)} = \left\{ {{z^{(1)}}_{(2)},{z^{(1)}}_{(3)}, \cdots {z^{(1)}}_{(n)}} \right\}$, 其中${z^{(1)}}_{(k)} = \frac{{{x^{(1)}}_{(k)} - {x^{(1)}}_{(k - 1)}}}{{\ln {x^{(1)}}_{(k)} - \ln {x^{(1)}}_{(k - 1)}}}$, $k = 2,3, \cdots, n.$
(6) 由一阶累加生成序列${x^{(1)}}$建立GM (1, 1) 模型对应的微分方程: $\frac{{d{x^{(1)}}}}{{dt}} + a{x^{(1)}} = b$并用最小二乘法求解参数$a$和$b$: $\hat \alpha = {\left( {{B^T}B} \right)^{ - 1}}{B^T}{Y_N} = {[a,b]^T}$, 其中
(7) 令初始值为${x^{(1)}}_{(n)}$, 解上述微分方程得到时间响应序列
(8) 其还原值为${\hat x^{(0)}}_{(k + 1)} = (1 - {e^a})\left( {{x^{(1)}}_{(n)} - \frac{b}{a}} \right){e^{ - a(k-n)}} = {\hat x^{(1)}}_{(k + 1)} - {\hat x^{(1)}}_{(k)}, k = 1,2, \cdots, n.$
(9) 由逆函数变换${\hat y^{(0)}}_{(k)} = {e^{\frac{{{{\hat x}^{(0)}}_{(k)} - d}}{c}}}$得到${\hat y^{(0)}}$, ${\hat y^{(0)}}_{(k)} = ({\hat y^{(0)}}_{(1)},{\hat y^{(0)}}_{(2)}, \cdots, {\hat y^{(0)}}_{(n)})$, $k = 1,2, \cdots, n.$
(10) 用均方差比$C$和小误差概率$p$进行模型精度等级检验. $C = \frac{{{S_1}}}{{{S_2}}}$, 其中${S_1}^2 = \frac{1}{n}\sum\limits_{k = 1}^n {({x^{(0)}}_{(k)} - \bar x} {)^2}$, ${S_2}^2 = \frac{1}{n}\sum\limits_{k = 1}^n {({\varepsilon _{(k)}} - \bar \varepsilon } {)^2}$, $p = P(\left| {{\varepsilon _{(k)}} - \bar \varepsilon } \right| < 0.6745{S_1})$, 均方差比值越小越好而小误差概率越大越好.模型精度等级检验表如表 1所示.
以某轴承套随时间的磨损为例进行预测, 该轴承套已经过磨合期, 且每半月对其做一次磨损测量记录, 得到磨损量数据如表 2所示.
首先对原始数据序列进行光滑性和准指数规律检验.当$k > 3$时, 光滑比分别为0.3451、0.2615、0.2122、0.1792、0.1568, 均在 (0, 0.5) 内, 且光滑比递减, 满足准光滑性条件.当$k > 3$时, 准指数规律比分别为1.3451、1.2675、1.2122、1.1792、1.1568, 均在 (1, 1.5) 内, 因此原始序列的一次累加生成数列具有准指数规律, 可对原始数列建立GM (1, 1) 模型.
建立传统GM (1, 1) 预测模型为${\hat x^{(1)}}_{(k + 1)} = 142.0473{e^{0.0535k}} - 134.5028, k = 0,1, \cdots, 7.$
根据文献[9]函数变换技术$f({x_{(k)}}) = c\ln {x_{(k)}} + d$, 建立GM (1, 1) 模型, 得到变换后的模型:
其中, $c = \max \{ {x^{(0)}}_{(k)}\} = 22.7,$$d = - 60$.
本文运用函数变换技术先将原始数据序列进行变换, 后再与背景值和初始值同时改进相结合的方法对传统GM (1, 1) 模型进行优化得到优化后的预测模型:
由上述三种方法得出的结果进行对比分析如表 3所示.
对比表 3中的数据可以看出, 本文提出的方法所得的平均相对误差较原始模型和文献[9]提出的方法得到的误差小且该新模型预测精度达到99.8%以上.新模型的均方误差比$C = 0.126871642 ﹤ 0.35$, 小误差概率$p = 1 > 0.95$.根据表 1可知模型精度属于一级.由此可见, 本文提出的方法具有较高的拟合和预测精度, 并具有一定的实用价值.
三种方法所得预测值与实际值比较如图 1所示:
本文提出在对原始数据序列进行函数变换, 提高原始数据序列光滑度的基础上, 对模型背景值和初始值同时进行优化, 得到改进后的GM (1, 1) 模型.最后应用实例将改进后的模型与改进单一条件模型相比较, 验证了改进后的新模型具有比改进单一条件模型误差小, 精度高的优点, 从而说明了该模型的实用性和有效性.