如何在R中拟合季节性ARIMA模型

时间:2017-03-22 16:49:11

标签: r moving-average autoregressive-models

我想要一个季节性的ARIMA模型,这个季节每24小时一次。 但是如何在R中包含24小时的季节性术语呢?到目前为止,我尝试了以下内容:

arima(y, order=c(0,0,2), seasonal=c(0,0,5), method = "ML")

但如果我是正确的话,这是一个ARIMA(0,0,2)(0,0,5)_12模型,所以我希望能帮助它成为一个ARIMA(0,0,2) (0,0,5)_24型号。

1 个答案:

答案 0 :(得分:1)

您需要在period=中加入seasonal=list(order=..., period=...)。如果每小时观察一次,请使用period=24L。如果每秒使用period=24*60*60等,

实施例

# reproducible example!
# download file from:
# https://trends.google.com/trends/explore?date=now%207-d&q=stackoverflow
df <- read.csv('multiTimeline.csv', skip=3, header=FALSE, stringsAsFactors = FALSE)
names(df) <- c('Time','Searches')
df$Time <- as.POSIXlt.character(df$Time, tz='UTC',format = '%Y-%m-%dT%H')

plot(df, type='l')

m1 <- arima(x = df$Searches, 
            order = c(0L,0L,2L),
            seasonal=list(order=c(0L,0L,5L), period=24L )
)

> m1

Call:
arima(x = df$Searches, order = c(0L, 0L, 2L), seasonal = list(order = c(0L, 
    0L, 5L), period = 24L))

Coefficients:
         ma1     ma2    sma1    sma2     sma3    sma4    sma5  intercept
      1.0827  0.6160  0.6155  0.1403  -0.1472  0.0104  0.6807    52.1477
s.e.  0.0631  0.0566  0.2305  0.2005   0.1445  0.2210  0.2176     2.4497

sigma^2 estimated as 35.69:  log likelihood = -575.94,  aic = 1169.88

请参阅?arima

  

seasonal ARIMA模型季节性部分的规范,   加上period(默认为frequency(x))。这应该是一个   list orderperiod,但只是a的规范   长度为3的数字向量将变为合适的列表   规范作为订单。