摘要:文章讨论了多变量灰色预测模型的建模方法及其算法思想,得到了多变量灰色预测模型的检验方

法。为了简化模型求解,给出多变量灰色预测模型的MATLAB 程序实现。通过应用实例说明算法程序的应用和效果。

关键词:多变量;灰色预测模型;算法;MATLAB

引言

自从邓聚龙教授提出灰色系统理论以来,灰色预测模型在许多领域得到了广泛应用。许多的研究工作者对于动态微分方程模型GM(1,1)进行了广泛的研究,为了提高模型精度,提出了一些改进的 GM(1,1)模型。近年来,许多文献从不同的角度给出了非等间距灰色预测模型的改进’+,-),然而实际的社会、经济系统中往往包含多个变量,各变量相互影响、相互作用。为了解决多变量等间距原始数据的灰色预测问题,文献分别讨论了多量等间距和非等间距预测模型的建模方法和应用。多量灰色模型的参数估计、模型预测以及模型的精度检验都需要一些比较复杂的计算。本文的目的是给出多变量灰色预测模型的检验和算法的MATLAB程序,并通过一个应用实例加以说明

1、多变量灰色预测模型

假定非负原始数据向量序列为 } ,其一次累加生成向量序列为 },其中, ,(k=1,2,…,n),n为观测数据的个数,这里 (k) 是维列向量。如果记

A= B=

则多变量灰色模型9.,/)的动态微分方程组可表示为

=A                               (1)

如果规定初始条件为 = ,则动态微分方程组模型的连续时间响应函数为 。

为了得到模型参数的估计值,需要将上述微分方程组转化为离散形式,从而可得到参数的估计值,如果记D= ,如果 可逆,则利用最小二乘法可以得到D 的估计值为

=                               (2)
其中
L= 
Y=

根据(2)式可得参数A和B 的辩识值 。有了参数估计就可以得到时间响应函数为

                                         (3)

利用(3)式还原成原始数据序列有

,k=2,3,…

下面讨论模型的检验,设模型的残差为 ,残差的均值和方差分别为

= ,

=

同样,可得 的均值和方差 和 ,称C= 为均方差比值,对于给定的 当C< 时,称模型为均方差比合格模型。指标C越小越好。C 越小,表示  越大而  越小, 大,表明原始数据方差大,原始数据离散程度大。

 

2、多变量灰色预测模型算法的MATLAB实现

1、多变量灰色预测模型的算法步骤

根据多变量灰色预测模型的建模方法和机理,下面

给出多变量灰色预测模型的算法步骤:

(i )输入原始序列X0,对其进行累加生成序列X1。

(ii)计算数据矩阵L 及Y。

(iii)根据(2)式计算模型参数的估计值。

(iv)利用(3)式和(4)式,计算模型的拟合值或预测值。

2、多变量灰色模型的MATLAB程序实现

下面给出多变量灰色预测模型的MATLAB程序。

clear all

clc

%输入待预测时刻k及原始序列X0

k=23;%k取23,24,25,26
X0=[17.34,27.12,14.88,20.54,21.03,27.25,19.25,21.37,23.32,27.19,19.52,21.16,14.92,71.64,21.25,42.97,32.96,43.93,21.45,47.86,33.59,47.47];
[n,m]=size(X0);
for j=1:m c=0;
    for i=1:n
        c=X0(i,j)+c;
        X1(i,j)=c;
end
end
%计算数据矩阵L
for j=1:m
for i=1:n-1
 l(i,j)=(X1(i,j)+X1(i+1,j))/2;
end
end
L=[1 ones(n-1,1)];
%计算Y 及参数估计值
for j=i:m
Y(1:n-1,j)=X0(2:n,j);
a(:,j)=inv(L'*L)*L'*Y(1:n-1,j);
end
a=a';
A=a(1:end,1:end-1);
B=a(1:end,end);
%计算模型的拟合值或预测值
S=X1(1,1:end);
if  k==1
Z=S'
elseif  k>1
Z=expm2(A*(k-1))*S'+inv(A)*(expm2(A*(k-1)-eye(size(expm2(expm2(A*(k-1)))))*B-(expm2(A*(k-2))*S'+inv(A)*(expm2(A*(k-2)-eye(size(expm2(A*(k-2)))))*B)
else disp(' 输入错误!k不得小于1')
end

3结束语

MATLAB 语言具有良好的运行环境、强大的函数资源,其编程效率远远高于其他高级语言。多变量灰色预测模型广泛的应用于许多领域。但该模型参数估计以及预测都需要经过比较复杂的计算,本文的多变量灰色预测模型的MATLAB程序能够方便的解决模型的计算问题。