最近几天用R做时间数据的习题,发现arima函数在高阶的时候会发生很严重的错误。问题如下:我用的是沪深300的2000个高频数据做的ARMA模型:
St.data <- read.csv("HS300.csv",header=TRUE);
attach(St.data);
p <- close;
p <- p[1:2000];
r <- diff(log(p));
r.arima <- arima(r, order = c(2,0,2))
r.arima
Series: r
ARIMA(2,0,2) with non-zero mean
Call: arima(x = r, order = c(2, 0, 2))
Coefficients:
ar1 ar2 ma1 ma2 intercept
1.3042 -0.5955 -0.6834 0.2740 0
s.e. 0.0542 0.0393 0.0583 0.0332 0
sigma^2 estimated as 8.012e-08: log likelihood = 13494.74
AIC = -26979.48 AICc = -26979.44 BIC = -26945.88
这时,我和Stata的结果对比是差不多的。
但是,当我把ARMA的阶数提高到ARAMA(3,3)的时候,R 就发生了很奇怪的结果如下:
> r.arima <- arima(r,order=c(3,0,3))
> r.arima
Series: r
ARIMA(3,0,3) with non-zero mean
Call: arima(x = r, order = c(3, 0, 3))
Coefficients:
ar1 ar2 ar3 ma1 ma2 ma3 intercept
0.7969 0.0556 -0.3007 -0.1746 -0.0692 0.1555 0
s.e. NaN NaN NaN NaN NaN NaN 0
sigma^2 estimated as 8.011e-08: log likelihood = 13494.91
AIC = -26975.83 AICc = -26975.76 BIC = -26931.03
Warning message:
In sqrt(diag(x$var.coef)) : NaNs produced
但是Stata和Eviews都能运算出正确的结果。 不知是什么原因导致arima发生这样的错误?????


雷达卡


京公网安备 11010802022788号







