R

AR的估計(ppp) R 中的“lm”與“arima”的模型:不同的結果

  • November 1, 2017

我正在閱讀《預測:原則與實踐》一書,同時嘗試“手動”編寫所有內容,以便更好地理解。

我發現了一些我無法解釋的東西:

  1. 給定由 AR(2) 過程生成的時間序列,
  2. 我嘗試將其建模為線性回歸問題
  3. 從我到目前為止所讀到的內容來看——應該完全有可能使用這兩種方法找到匹配的係數。

不幸的是,我得到了不同的結果。問題是為什麼?

AR(p) 模型由以下等式描述:

我已經將時間序列滯後了 1 和 2,並創建了具有三列的經典數據框:

  • 當前 x
  • t-1 x
  • t-2 x 並執行回歸。

R代碼示例如下:

library(xts)
x <- arima.sim(model = list(order=c(2,0,0), ar=c(0.6,0.3)), n=100)
x.ts <- as.xts(x)

# Generate dataframe
x.lag1 <- lag(x.ts, 1)
x.lag2 <- lag(x.ts, 2)
x.df <- data.frame(
 x.curr=x.ts[-c(1:2)],
 x.lag1=x.lag1[-c(1:2)],
 x.lag2=x.lag2[-c(1:2)]

)

# Fit regression
fit.x <- lm(x.curr ~ ., data=x.df)
summary(fit.x)

# Fit ARIMA
arima(x = x.ts, order = c(2,0,0), include.mean = FALSE)

結果完全不同:

#Regression results
Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.08173    0.11102   0.736    0.463    
x.lag1       0.54860    0.10082   5.441 4.11e-07 ***
x.lag2       0.15724    0.09883   1.591    0.115    

# Arima results
     ar1     ar2        intercept
     0.5919  0.1645     0.5572
s.e.  0.0983  0.1009     0.4268

係數相似,但略有不同。問題:

  • 為什麼會這樣?AR(p)過程中的每個觀察中都包含這個隨機誤差分量嗎?
  • 如何使用回歸對具有差分(非平穩)的 ARMA 過程進行建模?我應該像這樣將回歸模型擬合到差異和滯後的時間序列嗎?

有幾個原因。一方面,您的 ARMA 模型不包括均值/截距。另一方面,ARMA 默認情況下僅使用平方和來查找迭代最大似然方案的起點。最小二乘回歸(丟棄早期數據點)通常稱為時間序列中的條件平方和 (CSS)。

這些應該匹配

summary(lm(x.curr ~ ., data=x.df))
arima(x = x.ts, order = c(2,0,0), include.mean = T, method="CSS") # note the mean and method arguments

好吧,您會注意到lm' 截距和arima' 均值之間存在差異。關係是截距等於平均時間. 您可以驗證這是否有效。

此外,這使一切變得更加混亂,該arima函數將調用它的意思為截距。這是其他問題(例如此問題)中涉及的一個眾所周知的問題,並且在此處也進行了說明。

還有一件事:只有在查看均值零 AR 模型時,您對 AR(p) 模型的描述才是正確的。一般來說,你可以把它寫成

在哪裡是平均值,或

在哪裡是截距。這將幫助您解決上述截距/均值困境。 最後,關於你的最後一個問題:

如何使用回歸對具有差分(非平穩)的 ARMA 過程進行建模?我應該像這樣將回歸模型擬合到差異和滯後的時間序列嗎?

您可以區分您的非平穩序列,也許diff在 R 中,或者通過將order調用中的參數更改為arima. 例如,將 AR(3) 擬合到差異數據與 ARIMA(3,1,0) 相同,因此需要參數c(3,1,0)

引用自:https://stats.stackexchange.com/questions/311177

comments powered by Disqus