灰色预测算法笔记
小石老师教程链接https://www.bilibili.com/video/BV1Mt411x7CH?t=684&p=4
小石老师代码资源可以看B站视频评论区
优点:
实用、结果比较稳定、在数据量较小时依旧可以较准确的预测结果
灰色预测模型使用范围:
数据量少,多的可以选择其他预测算法
短期预测,不可做长期预测
步骤
1、将原始数据累加,,得到新的数据序列
2、建立一阶线性微分方程
其中x即为新生成的数据序列,a,u为待定系数,a代表的是发展系数,u代表灰作用量,这里将这两个参数称作“灰参数”,用一个列向量表示
3、对累加生成的数据做均值生成B与常数项Y
4、根据最小二乘法求得灰参数
5、将求得的灰参数代入以下公式
6、作差,还原原始数据原序列
得到的数据序列即为预测序列
输入原始数据
please enter the valure of A:[92.810 97.660 98.800 99.281 99.537 99.537 99.817 100.000]
please enter the range of old year:1:8
please enter the range of new year:1:9
源代码:greym.m
clc
clear
%% 1、对原始数据的累加
syms a b;
c=[a b]';
A = input('please enter the valure of A:');
t1 = input('please enter the range of old year:'); %输入原始数据的年份范围,该数据的长度应等于A的长度
t2 = input('please enter the range of new year:'); %输入未来数据的年份范围
% 因为t2为未来时刻的预测,所以t2应该大于t1的范围
L2=length(t2);
B = cumsum(A)