發表文章

目前顯示的是 9月, 2018的文章

為何執行 auto.arima(y,xreg) 時估計的迴歸參數與 lm(y~xreg) 不同

為何執行 auto.arima(y,xreg) 時估計的迴歸參數與 lm(y~xreg) 不同呢? 根據 hyndman 對 ARIMAX 模型的說明,xreg 的部份是一般的迴歸模型,而其剩餘殘差的部份才用 ARIMA 去處理。 所以,對 xreg 部份估計出來參數 beta 部份應該與用 lm() 做出來的相同或接近吧? 上次我做了一下比較,結果還差了不少?有點尷慨不知如何解釋? 今天在看到過去已經有人問了  https://stackoverflow.com/questions/34184004/r-auto-arima-with-xreg-vs-lm 因為 ARIMAX 在估計參數時也將迴歸的部份也一起放進 likelihood function 內用 MLE 一起作估計了,所以才會差那樣多。

幾個 ARIMA 參數估計的重點

最近看了幾個 ARIMA 估計參數的方法,其中包含 二步驟迴歸法 最大似然法(Maximum Likelihood Estimation,MLE) Kalman filter 法 以上這 3 種方法,其本質上都是會使誤差平方合(與其變異值相比)有最小值。 當然後二者與 normal 分布有關,而迴歸與 MSE 有關。 但都不脫誤差平方合。相當有趣。

理解 Kalman Filter 的關鍵點

圖片
有兩個模型: 一個是系統的狀態模型,另一個是系統的量測模型。這兩個模型都涉及有誤差。 我們可以用系統的狀態模型先預測下一個時間點系統的狀態,而這樣的狀態經過量測模型可以獲得下一個時間點應該有的期望量測值。則這樣的分布假設是 normal  ( μ 0 , Σ 0 ) = ( H k x ^ k , H k P k H T k )  而在有觀測值出現時,我們知道觀測值有誤差,真正值可 _ 可能出現在某個分布範圍之內,假設此分布為 normal  ( μ 1 , Σ 1 ) = ( z k → , R k ) 因此,我們可以推測真正值應該出現在上述兩分布的交集處。 兩 Normal 分布交集後的分布的mean 與 variance 如下: μ ′ σ ′ 2 = μ 0 + σ 2 0 ( μ 1 – μ 0 ) σ 2 0 + σ 2 1 = σ 2 0 – σ 4 0 σ 2 0 + σ 2 1 令  k : k = σ 2 0 σ 2 0 + σ 2 1 μ ′ σ ′ 2 = μ 0 + = σ 2 0 – k ( μ 1 – μ 0 ) k σ 2 0 上式可推廣成: K = Σ 0 ( Σ 0 + Σ 1 ) − 1 μ ⃗  ′ Σ ′ = μ 0 → + = Σ 0 – K ( μ 1 → – μ 0 → ) K Σ 0 K  就是所謂  Kalman gain。 我們將兩 normal 分布交集的上述結果套到,兩模型產生的"觀測"分布中: H k x ^ ′ k H k P ′ k H T k = H k x ^ k = H k P k H T k + – K ( z k → – H k x ^ k ) K H k P k H T k Kalman gain 為 : K = H k P k H T k ( H k P k H T k + R k ) − 1 消去  H k x ^ ′ k P ′ k = x ^ k = P k + – K ′ ( z k → – H k x ^ k ) K ′ H k P k K ′ = P k H T k ( H k P k...