灰色模型(GM)的局限浅谈

灰色模型就是当有很多未知因素左右变量时,对变量进行预测的建模。以灰色系统中单序列一阶线性微分方程模型GM(1,1)模型最为常用,具体介绍看该论文。
MATLAB封装好的gm11.m函数可在这里下载,已经验证。

接下来我们检验下预测的效果,我们先对于没有什么规律的数据进行预测看看,因为有规律的数据譬如GDP年增长,人口增长之类的还是蛮准的。

一、无规律的数据

例如,一个早上7点50的石家庄到深圳的航班到达深圳的时间,我统计了7月2号到7月21号的所有时间,然后我们预测7月22号飞机什么时候到达。用上面的gm11函数gm11(data, 1)即可得到大概是11:41到。但是这种预测有没有含金量很难讲,毕竟基于20天的平均飞行时间,我也能得到类似的结果11:46。于是我决定用已有的数据进行验证,即用7月2号到4号的数据预测7月5号的,然后得出预测的绝对残差,毕竟我们知道7月5号的到达时间,然后依次类推,直到用7月2号到7月20号的数据预测7月21号的到达时间为止,我们分别用两种方法,平均值法和灰色预测法,结果大跌眼镜。
灰色模型预测竟然整体看起来还不如平均值预测的准一点。

灰色模型(GM)的局限浅谈_第1张图片

代码如下:

%从7点50的飞行时间(分钟,包括延误之类的)
data = [293 341 173 183 316 170 155 343 297 185 185 157 193 264 298 221 238 231 203 280]' 
error_gm = [];
error_avg = [];
for i =3:19
    data_sample = data(1:i,:);
    predict_gm = gm11(data_sample,1);
    predict_avg = mean(data_sample);
    error_gm = [error_gm; abs(predict_gm - data(i+1))];
    error_avg = [error_avg; abs(predict_avg - data(i+1))];
end

二、有规律的数据

然后我们对有规律的数据进行预测看看,用网上的一个公司利润的例子,
灰色预测的就好多了,平均值估计就没意义了,因为年利润一直在增长。

灰色模型(GM)的局限浅谈_第2张图片

灰色模型(GM)的局限浅谈_第3张图片

你可能感兴趣的:(数据分析与机器学习)