Я намагаюся зробити аналіз часових рядів і я новачок у цій галузі. Я щодня перераховую подію 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
і в блозі Роб Дж Хандмана :
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?
fit <- arima (myts, order = c (p, d, q)
***** Оновлено результати Авто.Аріма ******
Коли я змінюю частоту даних на 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, він видає помилковий. Чи достатньо цього, щоб укласти відсутність щорічної сезонності?
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)
дає результат?