要添加到现有答案,如果您正在使用 R,则一种简单的继续方法是允许使用 ARMA 错误自动建模auto.arima()。如果x是您的时间序列,那么您可以按如下方式进行。
t <- 1:length(x)
auto.arima(x,xreg=t,d=0)
这将适合模型,其中和和是使用 AIC 自动选择的。xt=a+bt+etet∼ARMA(p,q)pq
结果输出将给出的值及其标准误差。这是一个例子:b
Series: x
ARIMA(3,0,0) with non-zero mean
Call: auto.arima(x = x, xreg = t)
Coefficients:
ar1 ar2 ar3 intercept t
-0.3770 0.1454 -0.2351 563.9654 0.0376
s.e. 0.1107 0.1190 0.1145 11.4725 0.2378
sigma^2 estimated as 5541: log likelihood = -475.85
AIC = 963.7 AICc = 964.81 BIC = 978.21
在这种情况下,和。前三个系数给出自回归项,是截距,在列中。在这个(人工)示例中,斜率与零没有显着差异。p=3q=0abt
该auto.arima函数使用的是 MLE 而不是 GLS,但两者是渐近等价的。
仅当错误为 AR(1) 时才使用 Cochrane-Orcutt 程序。所以上面的内容更加通用和灵活。