前言
这篇文章主要讲述如何用matlab实现二次平滑预测
一、二次平滑预测原理
指数平滑法是移动平均法中的一种,其特点在于给过去的观测值不一样的权重,即较近期观测值的权数比较远期观测值的权数要大。
二、代码实现
代码如下(示例):
origindata=table2array(arimadata);
ylength=length(origindata); %读取长度
ypredict(1)=origindata(1); %第一次的值不平滑预测
ypredicttwo(1)=origindata(1); %第一次的值不二次平滑预测
a=0.95; %选择系数a
%第一次平滑 平滑预测值=a*上一次原值+(1-a)*上一次平滑值
for i=2:ylength %第一次指数平滑
ypredict(i)=a*origindata(i-1)+(1-a)*ypredict(i-1);
end
%第二次平滑 二次平滑=a*本次平滑值+(1-a)*上次二次平滑值
for i=2:ylength %第二次指数平滑
ypredicttwo(i)=a*ypredict(i)+(1-a)*ypredicttwo(i-1);
end
plot(origindata,'r');
hold on;
plot(ypredict,'g');
hold on;
plot(ypredicttwo,'b');
总结
代码可以直接运行,如有不懂请留言哦。