一样在tseries包里有个函数arma()可以满足你的要求
CODE:
>a<-arima.sim(list(order=c(3,0,0),ar=c(0.3,0,0.4)),1000)
>b<-arma(a,lag=list(ar=(1,3)))
Warning message:
In arma(a, lag = list(ar = c(1, 3))) : order is ignored
> b
Call:
arma(x = a, lag = list(ar = c(1, 3)))
Coefficient(s):
ar1 ar3 intercept
0.32114 0.36620 0.02861
> summary(b)
Call:
arma(x = a, order = c(3, 0), lag = list(ar = c(1, 3)))
Model:
ARMA(3,0)
Residuals:
Min 1Q Median 3Q Max
-3.37158 -0.63064 -0.02857 0.63384 3.07603
Coefficient(s):
Estimate Std. Error t value Pr(>|t|)
ar1 0.32114 0.02752 11.669 <2e-16 ***
ar3 0.36620 0.02751 13.312 <2e-16 ***
intercept 0.02861 0.03019 0.948 0.343
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Fit:
sigma^2 estimated as 0.9042, Conditional Sum-of-Squares = 900.6, AIC = 2743.19
那个警告信息可以不管,命令里设置order和lag有冲突会自动按lag来处理,具体的可以看?arma