时间序列
1.一阶差分指数平滑法
例题
ranliao.txt
24
26
27
30
32
33
36
40
41
44
matlab代码:
clc,clear
yt=load('ranliao.txt'); %实际燃料消耗量数据以列向量的方式存放在纯文本文件中
n=length(yt); alpha=0.4;
dyt=diff(yt); %求yt的一阶向前差分
dyt=[0;dyt]; %这里使用的是一阶向后差分,加“0”补位
dyhat(2)=dyt(2); %指数平滑值的初始值
for i=2:n
dyhat(i+1)=alpha*dyt(i)+(1-alpha)*dyhat(i);
end
for i=1:n
yhat(i+1)=dyhat(i+1)+yt(i);
end
yhat
xlswrite('ranliao.xls',[yt,dyt])
xlswrite('ranliao.xls',[dyhat',yhat'],'Sheet1','C1')
2.二阶差分指数平滑模型
3.季节系数法
例题
jijie.txt
137920 186742 274561 175433
142814 198423 265419 183521
131002 193987 247556 169847
157436 200144 283002 194319
149827 214301 276333 185204
matlab代码
clc, clear
format long g
a=load('jijie.txt');
[m,n]=size(a);
a_mean=mean(mean(a)); %计算所有数据的算术平均值
aj_mean=mean(a); %计算同季节的算术平均值
bj=aj_mean/a_mean %计算季节系数
w=1:m;
yhat=w*sum(a,2)/sum(w) %预测下一年的年加权平均值,这里是求行和
yjmean=yhat/n %计算预测年份的季节平均值
yjhat=yjmean*bj %预测年份的季节预测值
format %恢复默认的显示格式
4.平稳时间序列
5.ARMA 时间序列
1.AR( p) 序列
2.MA(q) 序列
3.ARMA( p, q) 序列
讨论
这里内容太多,我拍博客写爆了,若竞赛中遇到,具体可以参考数学建模算法和应用(司守奎)501-531页内容