matlab 7 序列号如何把一段时间序列向前推移几天

Matlab在时间序列分析中的应用_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
Matlab在时间序列分析中的应用
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Matlab在时间序列分析中的应用
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口MATLAB 时间序列建模预测_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
MATLAB 时间序列建模预测
文​章​较​为​详​细​地​介​绍​了​各​类​时​间​序​列​模​型​,​并​采​用​m​a​t​l​a​b​语​言​对​实​际​问​题​进​行​建​模​预​测​。
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢查看: 265|回复: 6
如何实现时间序列的预测与回推??
该用户从未签到
事情是这样的,输入为p=[88 91 94 97 00 03 2004]; &BR&& & &BR&输出为t=[100.96 149.88 257.23 272.65 253.25 336.16 731.2 4.08 6.4 4.23 4.05 0.92 80.75]; &BR&处理过程为:net=newff(minmax(P),[5 1],{'tansig' 'purelin'}); &BR&net.trainParam.epochs=5000; &BR&net.trainParam.lr=0.05; &BR&net.trainParam.goal=1e-6; &BR&&BR&net=train(net,P,T); &BR&Y=sim(net,P); &BR&plot(P,T,P,Y,'p') &BR&hold on &BR&end用上面程序验证年的结果,准确率还可以,可是预测,或者回推年的数据,发现根本预测不出来,哪位朋友能帮我指出问题出在哪里,应该怎么解决呢? &BR&&BR&我自己想应该出在年份输入上,却不知道该怎么解决!!!!!
该用户从未签到
整个过程如下所示:% 房地产投资预测 &BR&% &BR&% P &BR&% T &BR&% copyright
&BR&&BR&p=[8 1 6 9 4]; &BR&& & &BR&t=[100.96 149.88 257..25 336.16 731.2 4.08 6.4 4.23 4.790.480.75]; &BR&Max1=max(p) &BR&% 找出矩阵的最大值 Max &BR&Min1=min(p) &BR&% 找出矩阵的最小值 Min &BR&gt=0.9*(p-Min1)/(Max1-Min1)+0.05 &BR&%--------------------------------- &BR&Max1=max(t) &BR&% 找出矩阵的最大值 Max &BR&Min1=min(t) &BR&% 找出矩阵的最小值 Min &BR&T=0.9*(t-Min1)/(Max1-Min1)+0.05 &BR&%---------------------------------- &BR&net=newff(minmax(P),[5 1],{'tansig' 'purelin'},'traingda'); &BR&net.trainParam.epochs=100000; &BR&net.trainParam.lr=0.05; &BR&net.trainParam.goal=1e-4; &BR&&BR&net=train(net,P,T); &BR&Y=sim(net,P); &BR&plot(P,T,P,Y,'p') &BR&hold on &BR&end &BR&p1=[]; &BR&gt1=0.9*(p-Min1)/(Max1-Min1)+0.05; &BR&T1=sim(net,P1); &BR&t1=(T1-0.05)*(Max1-Min1)/0.9+Min1 &BR&p2=[] &BR&gt2=0.9*(p-Min1)/(Max1-Min1)+0.05; &BR&T2=sim(net,P2); &BR&t2=(T2-0.05)*(Max1-Min1)/0.9+Min1 &BR&p3=[]; &BR&gt3=0.9*(p-Min1)/(Max1-Min1)+0.05 &BR&T3=sim(net,P3); &BR&t3=(T3-0.05)*(Max1-Min1)/0.9+Min1 &BR&u=(t3-t)./t
该用户从未签到
Max1=max(t) &BR&% 找出矩阵的最大值 Max &BR&Min1=min(t) &BR&% 找出矩阵的最小值 Min &BR&T=0.9*(t-Min1)/(Max1-Min1)+0.05 &BR&&BR&gt=0.9*(p-Min1)/(Max1-Min1)+0.05 &BR&%用于归一化 &BR&t1=(T1-0.05)*(Max1-Min1)/0.9+Min1 &BR&% 用于反归一化 &BR&T3=sim(net,P3); &BR&t3=(T3-0.05)*(Max1-Min1)/0.9+Min1 &BR&%反过来检验86到2004年的投资 &BR&u=(t3-t)./t &BR&%相对误差
该用户从未签到
那位朋友帮个忙啊&BR&,在下感激不尽!!!
该用户从未签到
其实,这个事情是这样的:打算把用以前的房地产投资,预测后来的投资,再用同样的方法预测出像固定资产投资,和GDP,然后这三个量一起作为输入,用来预测以后的水泥产量!&BR&&BR&其实,这三个量都是预测出来的,再用它们,是不是预测出来的结果更加不准确了?应该怎么解决呢?我一直想不明白。&BR&&BR&说输入时间,输出房地产投资不好,那应该把什么作为输入,什么作为输出呢?只有一个量啊(房地产投资),如何用神经网络预测呢?
该用户从未签到
以时间作为输入的确不是很好,像这种时间序列预测的可以选择历史数据作为输入,以下一期的数据作为输出。&BR&至于你说的那个问题,预测以后的水泥产量,因为预测本来就是不准的,神经网络预测是根据以往的数据来推出将来,这个本来就不准的,因为训练好的网络只能说明过去的情况,并不能说明将来。而预测只是为了在毫无根据的情况下得出一个比较有根据的结论来对决策有一定的帮助。
该用户从未签到
谢谢lindayang1218 ,可以用连续的数据中的前几个作为输入,后一个作为输出,训练,具体一点吧,就是10个数[1 2 3 4 5 6 7 8 9 10],5个数一组,&BR&p=[1 2 3 4;2 3 4 5;3 4 5 6;4 5 6 7;5 6 7 8;6 7 8 9;]&BR&t=[5;6;7; 8;9;10] &BR&(以上数据仅是例子,没有任何意义),这样是不是就可以用来预测了&BR&好像需要用到循环,不知道该怎么做了:(
工作时间:8:00-24:00
百思(Baisi.net)查看: 1276|回复: 6|关注: 0
时间序列预测问题:一次平滑指数法怎样预测多个数据
这是我的程序代码[yt=[50 52 47 51 49 48 51 40 48 52 51 59];
n=length(yt);
alpha=[0.2 0.5 0.8];
m=length(alpha);
yhat(1,1:m)=(yt(1)+yt(2))/2;%一次平滑法处理
yhat(i,:)=alpha*yt(i-1)+(1-alpha).*yhat(i-1,:);
err=sqrt(mean((repmat(yt,1,m)-yhat).^2))%误差
yhat1988=alpha*yt(n)+(1-alpha).*yhat(n,:)%预测值
可以预测单个数据,根据精度不同可以看出预测的准确程度
其中误差err有错误
Error using&&-
Matrix dimensions must agree.
Error in t1 (line 14)
err=sqrt(mean((repmat(yt,1,m)-yhat).^2))
应该怎么修改?
用一次平滑法怎样可以预测多个数据?
不好意思,刚才发的有点问题
[yt=[50 52 47 51 49 48 51 40 48 52 51 59];
n=length(yt);
alpha=[0.2 0.5 0.8];
m=length(alpha);
yhat(1,1:m)=(yt(1)+yt(2))/2;%一次平滑法处理
yhat(i,=alpha*yt(i-1)+(1-alpha).*yhat(i-1,;
err=sqrt(mean((repmat(yt,1,m)-yhat).^2))%误差
yhat1988=alpha*yt(n)+(1-alpha).*yhat(n,%预测值
yt=[50 52 47 51 49 48 51 40 48 52 51 59];
n=length(yt);
alpha=[0.2 0.5 0.8];
m=length(alpha);
yhat(1,1:m)=(yt(1)+yt(2))/2;%一次平滑法处理
for i=2:n
yhat(i,=alpha*yt(i-1)+(1-alpha).*yhat(i-1,;
end
yhat
err=sqrt(mean((repmat(yt,1,m)-yhat).^2))%误差
yhat1988=alpha*yt(n)+(1-alpha).*yhat(n,%预测值
复制代码
本帖最后由 yixiantian66 于
10:24 编辑
yhat1988=alpha*yt(n)+(1-alpha).*yhat(n,:)%预测值复制代码在修改一次,初次发帖请见谅
y=[50 52 47 51 49 48 51 40 48 52 51 59];
m=length(y);
n=[4,5]; %n为移动平均的项数
for i=1:length(n)%由于n的取值不同,yhat的长度不一致,下面使用了细胞数组
for j=1:m-n(i)+1
yhat{i}(j)=sum(y(j:j+n(i)-1))/n(i);
y13(i)=yhat{i}(end);
s(i)=sqrt(mean((y(n(i)+1:m)-yhat{i}(1:end-1)).^2));
试试这个!
关注者: 143
试试这个!
你的错误信息是什么?
另外,建议下次直接修改自己的帖子,就在你帖子下方的编辑按钮,你反复发了好几次的代码,别人并不清楚你做了什么修改,而且你修改后没有给出错误信息,别人也不知道你的问题所在
Powered by

我要回帖

更多关于 matlab时间序列工具箱 的文章

 

随机推荐