我正在尝试进行时间序列分析,并且是该领域的新手。我每天都在统计2006-2009年的某个事件,因此我想为其拟合时间序列模型。这是我取得的进步:
timeSeriesObj = ts(x,start=c(2006,1,1),frequency=365.25)
plot.ts(timeSeriesObj)
我得到的结果图是:
为了验证是否存在季节性和趋势数据,或者不是,我按照此提到的步骤后:
ets(x)
fit <- tbats(x)
seasonal <- !is.null(fit$seasonal)
seasonal
在Rob J Hyndman的博客中:
library(fma)
fit1 <- ets(x)
fit2 <- ets(x,model="ANN")
deviance <- 2*c(logLik(fit1) - logLik(fit2))
df <- attributes(logLik(fit1))$df - attributes(logLik(fit2))$df
#P value
1-pchisq(deviance,df)
两种情况都表明没有季节性。
当我绘制该系列的ACF和PACF时,得到的是:
我的问题是:
这是处理每日时间序列数据的方式吗?该页面建议我应该同时查看每周和年度模式,但是这种方法对我来说并不明确。
一旦有了ACF和PACF图,我将不知道如何进行。
我可以简单地使用auto.arima函数吗?
适合<-arima(myts,order = c(p,d,q)
*****更新了Auto.Arima结果******
当我根据罗布海德门的评论的数据的频率改变为7 这里,auto.arima选择一个季节性ARIMA模型和输出:
Series: timeSeriesObj
ARIMA(1,1,2)(1,0,1)[7]
Coefficients:
ar1 ma1 ma2 sar1 sma1
0.89 -1.7877 0.7892 0.9870 -0.9278
s.e. NaN NaN NaN 0.0061 0.0162
sigma^2 estimated as 21.72: log likelihood=-4319.23
AIC=8650.46 AICc=8650.52 BIC=8682.18
******更新了季节性检查******
当我以频率7测试季节性时,它输出True,但季节性为365.25,则输出false。这足以得出缺乏年度季节性的结论吗?
timeSeriesObj = ts(x,start=c(2006,1,1),frequency=7)
fit <- tbats(timeSeriesObj)
seasonal <- !is.null(fit$seasonal)
seasonal
返回:
True
而
timeSeriesObj = ts(x,start=c(2006,1,1),frequency=365.25)
fit <- tbats(timeSeriesObj)
seasonal <- !is.null(fit$seasonal)
seasonal
返回:
False
R
简单的处理能力却无法解决 。如果您要预测的产品涉及较高的库存/制造成本,我将寻求商业解决方案。R
对于像您这样的预测任务有严格的限制。查看有关每日天气预报的问题,以及本网站的其他内容。
str(x)
?