以下是引用jcom_wu在2005-7-27 16:57:39的发言:
请教时间序列预测超高手:ma和arma模型怎么编程(c/java)求p,q还有模型参数。
我已经用java实现了ar模型预测,包括acf,pacf,AIC求阶等。但是ma模型求q不好用AIC求,还有求ma的参数要用到迭代法,程序不好写,如果用最小二乘法,又是一个非线性的最小二乘法,还是要迭代,我用程序搞不定。arma模型也是如此。另外,即使求出了模型,在预测的时候也不好预测。比如ma或者arma模型,求出来参数后怎么应用预测也是个问题,请教超高手回答。不要告诉我用什么matlab,eviews,sas,spss这些软件。我现在是要实现这些软件相同的功能。
急救啊,跪求,谢谢了!
我用VB也实现了AR(说白了就是OLS),同样发现迭代是一件很麻烦的事,所以就放弃了.
后来转向VB+ADO+SAS编程,什么都很快搞定,反而少了很多乐趣
不过后来想,如果真用VB或Java来做这个程序那么这几个问题是很难克服的:
1.速度.真正的应用中跑几万个obs是很平常的事,用VB和Java很难达到满意的速度,特别我们用的算法一般都是没有经过优化的.(我用SAS做forecast都感到略有吃力)
2.精度.毕竟VB和Java不是科学计算语言,所以精度很成问题.我把所有变量设为double然后做OLS,结果和SAS还是有一定的区别
3.可用性.这年头SAS,SPSS,EViews这么普遍,根本没人用咱们自己设计的程序.据个例子.上面我们实现的AR回归在Excel里都很用以实现,就算SAS里也就三行代码. (对于个人开发者来说现在就剩下一条路:专一+简单.比如说做ARIMA,那我别的功能都不做就做ARIMA,让用户按一个按钮就能建一个合适的ARIMA模型,其他的他什么都不用管.)
以上是我的一点看法,不知是否合理