Я пытаюсь выполнить моделирование и прогнозирование временных рядов с использованием R на основе еженедельных данных, как показано ниже -
biz week Amount Count
2006-12-27 973710.7 816570
2007-01-03 4503493.2 3223259
2007-01-10 2593355.9 1659136
2007-01-17 2897670.9 2127792
2007-01-24 3590427.5 2919482
2007-01-31 3761025.7 2981363
2007-02-07 3550213.1 2773988
2007-02-14 3978005.1 3219907
2007-02-21 4020536.0 3027837
2007-02-28 4038007.9 3191570
2007-03-07 3504142.2 2816720
2007-03-14 3427323.1 2703761
...
2014-02-26 99999999.9 1234567
о моих данных, как видно выше, каждую неделю помечен в первый день недели (моя неделя начинается в среду и заканчивается по вторникам). когда я создаю объект ts, я попробовал
ts <- ts(df, frequency=52, start=c(2007,1))
проблема у меня:
1). в течение некоторого года может быть 53 недели, поэтому частота = 52 не будет работать в течение этих лет;
2). моя начальная неделя/дата - 2006-12-27, как мне задать начальный параметр? start=c(2006,52) or start=c(2007,1)
так как неделя 2006-12-27 действительно пересекает границу года
Кроме того, для моделирования лучше иметь полную стоимость данных за год (скажем, за 2007 год, если у меня есть только данные за один год в год, лучше ли я использовать 2007, вместо этого, чтобы начать с 2008 года. а как насчет 2014 года, так как еще не полный год, я должен использовать то, что у меня есть для модели, или нет? В любом случае у меня все еще есть вопрос о том, включать ли эти недели в границу года, например, 2006-12-27, включить его как wk 1 для 2007 или последней недели 2006 года?
3). когда я использую ts <- ts(df, frequency=52, start=c(2007,1))
, а затем печатаю его, я получил результаты, показанные ниже, поэтому вместо 2007.01, 2007.02, 2007.52...., я получил 2007.000, 2007.019,.... который он получает от 1/52 = 0,019, что математически корректно, но не очень легко интерпретировать, есть ли способ обозначить его как дату как таковой, например, фрейм данных или по меньшей мере 2007 wk1, 2007 wk2...
=========
Time Series:
Start = c(2007, 1)
End = c(2014, 11)
Frequency = 52
Amount Count
2007.000 645575.4 493717
2007.019 2185193.2 1659577
2007.038 1016711.8 860777
2007.058 1894056.4 1450101
2007.077 2317517.6 1757219
2007.096 2522955.8 1794512
2007.115 2266107.3 1723002
4). моя цель состоит в том, чтобы смоделировать эти еженедельные данные, а затем попытаться разложить его, чтобы увидеть сезонный компонент, кажется, что мне нужно использовать функцию ts() для преобразования в ts-объект, тогда я могу использовать функцию разложения(), я попробовал функцию xts(), и я получил сообщение об ошибке "временные ряды не имеют или не менее двух периодов". Я думаю, причина в том, что xts() не позволит мне указать частоту?
xts <- xts(df,order.by=businessWeekDate)
5). Я искал ответ на этом форуме и в другом месте, большинство примеров - ежемесячно, есть несколько вопросов по временным рядам, ни один из ответов не является прямым вперед - надеюсь, кто-то может помочь ответить на мои вопросы здесь.