登录论坛

查看完整版本 : [MATLAB工具箱] 系统辨识工具箱中predict函数的预测原理问题


sunhm1986
2009-09-22, 20:06
最近在研究基于ARMA模型的预测问题,对于在这个模型下的预测原理我始终搞不明白,以下是我编的程序
load data.txt
B=data;
C=B(1:200);
F=B(201:300);
nar=arorder(C); %AR的阶数
nma=maorder(C);
py=armax(C,[nar,nma]); %MA的阶数
E=predict(py,F,k); %k为预测步长
plot(F)
hold on
plot(E,'r')
我的想法是通过C来预测后一百个数据再跟F作比较,我看matlab的帮助里的例子好像跟我编的意思也差不多,这样做到是能出图像,就是不明白既然predict中用到了函数F,那这还算预测么?matlab帮助里的例子里用的是函数y,它的y也是1:400的数据,最后做出来用y里的后200个和预测出来的后200个作比较而已。既然是预测的话就应该是只知道C就能出跟F很相近的序列吧?我试过把predict里的F换成C,不过这样出的图和F相比误差就很大,我现在的理解就是它是用一个真实的F值预测的下一点,再用下一点的真实的F预测的再下一点,这样滚动的,不知道我这样理解对不对~如果真是这样的话,能不能不用到F,只用C就预测后好几个F呢?另外对于ARMA这个模型来说A(q)y(t)=C(q)et,我的前200个数据序列C应该是对应的y(t)里面的项吧?具体取几个应该是nar决定的,那et是多少啊?et的值难道是predict这个函数自己设的?nma个et呢~~~~总之ARMA这个模型是怎么用predict实现预测的呀?我最近看的脑袋都快炸了~~请达人帮忙指点指点吧~~~~~~~

lyping_1012
2010-04-14, 18:54
你好,我现在也在学习关于数据预测方面的问题,但是你上面程序中提到的arorder(c)和armax(c,[nar,nma])两个函数我的matlab中没有啊,你有吗?能不能发到我的邮箱呢?我的邮箱是[email protected] 我现在很急用,如果可以的话,就麻烦您发送我一份吧,多谢!

yeary124
2010-06-15, 20:47
[QUOTE=lyping_1012;35925]你好,我现在也在学习关于数据预测方面的问题,和上面那位一样能否把arorder和maorder函数代码给我啊?我的邮箱是[email protected]
万分谢谢

mengyemaomi
2011-01-06, 09:41
您好,我最近也在学习这方面的内容,急需要解决arma模型中阶数的确定问题,能把你的arorder和maorder函数发给我吗?[email protected]。万分感谢!

未注册
2018-08-29, 15:54
请问问题解决了吗?我也有相同的问题。求大哥指点