Я вписую модель ARIMA у щоденний часовий ряд. Дані збираються щодня з 02-01-2010 по 30-07-2011 і стосуються продажів газет. Оскільки щотижневий зразок продажів можна знайти (середньоденна кількість проданих примірників зазвичай однакова з понеділка по п’ятницю, потім збільшується в суботу та неділю), я намагаюся зафіксувати цю «сезонність». Враховуючи дані "продажів", я створюю часовий ряд таким чином:
salests<-ts(data,start=c(2010,1),frequency=365)
а потім я використовую функцію auto.arima (.) для вибору найкращої моделі ARIMA за критерієм AIC. Результатом є завжди несезонна модель ARIMA, але якщо я спробую деяку модель SARIMA з таким синтаксисом, як приклад:
sarima1<-arima(salests, order = c(2,1,2), seasonal = list(order = c(1, 0, 1), period = 7))
Я можу отримати кращі результати. Чи є в технічній специфікації команда / arima щось не так? Щотижнева схема дуже сильна, тому я не очікував би таких труднощів у її захопленні. Будь-яка допомога буде дуже корисною. Дякую, Джулія Депп'єрі
Оновлення:
Я вже змінив деякі аргументи. Точніше, процедура вибирає ARIMA (4,1,3) як найкращу модель, коли я встановив D=7
, але AIC та інші хороші показники відповідності та прогнози) взагалі не покращуються. Напевно, є деякі помилки через плутанину між сезонністю та періодичністю ..?!
Використовуваний дзвінок Auto.arima та отриманий вихід:
modArima<-auto.arima(salests,D=7,max.P = 5, max.Q = 5)
ARIMA(2,1,2) with drift : 1e+20
ARIMA(0,1,0) with drift : 5265.543
ARIMA(1,1,0) with drift : 5182.772
ARIMA(0,1,1) with drift : 1e+20
ARIMA(2,1,0) with drift : 5137.279
ARIMA(2,1,1) with drift : 1e+20
ARIMA(3,1,1) with drift : 1e+20
ARIMA(2,1,0) : 5135.382
ARIMA(1,1,0) : 5180.817
ARIMA(3,1,0) : 5117.714
ARIMA(3,1,1) : 1e+20
ARIMA(4,1,1) : 5045.236
ARIMA(4,1,1) with drift : 5040.53
ARIMA(5,1,1) with drift : 1e+20
ARIMA(4,1,0) with drift : 5112.614
ARIMA(4,1,2) with drift : 4953.417
ARIMA(5,1,3) with drift : 1e+20
ARIMA(4,1,2) : 4960.516
ARIMA(3,1,2) with drift : 1e+20
ARIMA(5,1,2) with drift : 1e+20
ARIMA(4,1,3) with drift : 4868.669
ARIMA(5,1,4) with drift : 1e+20
ARIMA(4,1,3) : 4870.92
ARIMA(3,1,3) with drift : 1e+20
ARIMA(4,1,4) with drift : 4874.095
Best model: ARIMA(4,1,3) with drift
Тому я припускаю, що функцію arima слід використовувати як:
bestOrder <- cbind(modArima$arma[1],modArima$arma[5],modArima$arma[2])
sarima1<-arima(salests, order = c(4,1,3))
без сезонних параметрів компонентів та специфікацій періоду. Дані та дослідницький аналіз показують, що однакову схему щотижня можна приблизно оцінити для кожного тижня, за винятком лише серпня 2010 року (коли реєструється послідовне збільшення продажів). На жаль, я взагалі не маю досвіду моделювання часових серій, адже я намагаюся такий підхід, щоб знайти альтернативне рішення для інших параметричних електронних непараметричних моделей, які я намагався пристосувати до цих проблемних даних. У мене також багато залежних числових змінних, але вони показали низьку потужність у поясненні змінної відповіді: безсумнівно, найскладнішою частиною моделі є часова складова. Більше того, побудова фіктивних змінних для відображення місяців та буднів не виявилася надійним рішенням.