Как создать дневные временные ряды с ежемесячными циклами - PullRequest
0 голосов
/ 10 января 2019

У меня есть ряд данных для ежедневного объема продаж с 01.01.08 по 15.10.08, пример показан следующим образом. Уже отмечалось, что есть несколько ежемесячных циклических показателей по объему продаж, скажем, всегда есть пик продаж в конце каждого месяца, и небольшие колебания в количестве в середине месяца. Кроме того, в целом продажи в июне, июле и августе выше, чем в другие месяцы. Теперь мне нужно спрогнозировать объем продаж на 10 дней после 15.10.2008. Я новичок во временных рядах и ARIMA. Здесь у меня два вопроса:
1. Как создать такой дневной временной ряд и построить его с указанием даты?
2. Как я могу установить цикл (или частоту), чтобы показать ежемесячный шаблон циклов?

Date             SalesAmount
1/1/2018     31,380.31 
1/2/2018     384,418.10 
1/3/2018     1,268,633.28 
1/4/2018     1,197,742.76 
1/5/2018     417,143.36 
1/6/2018     693,172.65 
1/8/2018     840,384.76 
1/9/2018     1,955,909.69 
1/10/2018    1,619,242.52 
1/11/2018    2,267,017.06 
1/12/2018    2,198,519.36 
1/13/2018    584,448.06 
1/15/2018    1,123,662.63 
1/16/2018    2,010,443.35 
1/17/2018    958,514.85 
1/18/2018    2,190,741.31 
1/19/2018    811,623.08 
1/20/2018    2,016,031.26 
1/21/2018    146,946.29 
1/22/2018    1,946,640.57 

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Первое, что вам нужно перед любым прогнозом, - это определить, есть ли у вас какая-либо сезонность. Я рекомендую вам добавить больше данных, так как сложно определить, есть ли у вас повторяющийся шаблон с таким небольшим количеством. В любом случае вы можете попытаться определить сезонность следующим образом:

library(readr)
test <- read_table2("C:/Users/Z003WNWH/Desktop/test.txt", 
col_types = cols(Date = col_date(format = "%m/%d/%Y"), 
SalesAmount = col_number()))
p<-periodogram(test$SalesAmount)
topF = data.table(freq=p$freq, spec=p$spec) %>% arrange(desc(spec))
1/topF

Когда вы добавите больше данных, вы можете попробовать использовать ggseasonplot для визуализации различных сезонов.

0 голосов
/ 10 января 2019

Поскольку в вопросе нет воспроизводимого примера, вот тот, который может помочь вам лучше визуализировать ваши данные.

Используя набор данных: economics и библиотеку ggplot2, вы можете легко построить временную серию.

library(ggplot2)
theme_set(theme_minimal())

# Basic line plot
ggplot(data = economics, aes(x = date, y = pop))+
  geom_line(color = "#00AFBB", size = 2)

plot1

Для вашего вопроса вам просто нужно ввести x=Date и y=SalesAmount, чтобы получить график ниже. На ваш второй вопрос о прогнозировании объема продаж с помощью временных рядов вы можете проверить этот вопрос здесь: Прогноз временных рядов с использованием R

...