Outliers Patterns 與 ARIMA 配適
用 R 來舉例:
library(forecast)
library(tsoutliers)
y <- ts(c(30,32,34,35,36,38,39,78,77,79,84,89,90,95,140,92,93,96,94,91))
outliers_patterns <- outliers(c('LS','TC'),c(8,15))
outliers_patterns_effect <- outliers.effects(outliers_patterns,n=length(y))
aa <- auto.arima(y, xreg=outliers_patterns_effect)
plot(aa$x)
lines(aa$x - residuals(aa),col='red')
上述在第 8 期發生 Level Shift 而在 第 15 期有 Temporary Change。
1. 使用 tsoutliers 中的 outliers.effects 產生事件列。
2. 將事件列作為回歸的解釋變數
3. 使用 arima 對 residuals 進行配適
4. 結果如上圖。
如果沒有事件列的輔助,則會發生遲延情況如下:
aa0 <- auto.arima(y)
plot(aa0$x)
lines(aa0$x - residuals(aa0),col='green')
library(forecast)
library(tsoutliers)
y <- ts(c(30,32,34,35,36,38,39,78,77,79,84,89,90,95,140,92,93,96,94,91))
outliers_patterns <- outliers(c('LS','TC'),c(8,15))
outliers_patterns_effect <- outliers.effects(outliers_patterns,n=length(y))
aa <- auto.arima(y, xreg=outliers_patterns_effect)
plot(aa$x)
lines(aa$x - residuals(aa),col='red')
上述在第 8 期發生 Level Shift 而在 第 15 期有 Temporary Change。
1. 使用 tsoutliers 中的 outliers.effects 產生事件列。
2. 將事件列作為回歸的解釋變數
3. 使用 arima 對 residuals 進行配適
4. 結果如上圖。
如果沒有事件列的輔助,則會發生遲延情況如下:
aa0 <- auto.arima(y)
plot(aa0$x)
lines(aa0$x - residuals(aa0),col='green')
只有 Level Shift 事件時,如下:
只有 Temporary Change 事件時,如下:
留言
張貼留言