如何用神经网络进行时间序列预测

如题所述

第1个回答  2017-01-19
神经网络是可以用来预测时间序列。例如神经网络人口预测。已知1990至2009年的某地区人口数[11 28 30 42 44 56 49 60 50 63 56 74 76 65 92 105 124 117 132 128]。预测2010-2016年的某地区人口数。
具体实施过程:
%已知数据
t=1990:2009;
x=[11 28 30 42 44 56 49 60 50 63 56 74 76 65 92 105 124 117 132 128];
% 自回归阶数
lag=3;
%预测步数为fn
fn=length(t);
%输出数据
[f_out,iinput]=BP(x,lag,fn); %BP()神经网络预测函数
[x' iinput']
R2=corrcoef(x,iinput)

%预测年份或某一时间段
%t1=2015:2016;
t1=length(x)+1:length(x)+7;
%预测步数为fn
fn=length(t1);
[f_out,iinput]=BP(x,lag,fn);
P=vpa(f_out,5);
%预测数据
t1=2010:2016;
[t1' P']
% 画出预测图
figure(6),plot(t,x,'b*-'),hold on
plot(t(end):t1(end),[iinput(end),f_out],'rp-'),grid on
title('BP神经网络预测某地区人口数')
xlabel('年份'),ylabel('人口数');
legend('2009-2014年人口变化数','2014-2016年人口预测数');
相似回答