Невозможно подготовить ts () и holtwinter с данными о продажах, импортированными из Excel - PullRequest
0 голосов
/ 06 ноября 2019

Постановка задачи: Прогнозировать прогноз продаж на следующие 13 недель для каждой отдельной позиции. (1 квартал, временные рамки могут быть изменены с помощью параметра частоты, h = 13 для 1 квартала, 26 для 2 квартала)

Данные: история продаж индивидуального товара доступна за последние 2 года на еженедельной основе, всего 104 или105 недель данных. Количество товаров: около 50 (для этой демонстрации, фактическое количество товаров около 10000 или более).

Проблема: текущий формат исторических данных о продажах. Колонка 1 показывает всю статью. В столбце 2 показана неделя 1, затем COl 2, неделя 2, затем в столбце 106: отображаются данные о продажах за неделю 105.

В основном 1 строка представляет историю продаж 1 товара.

пробовал: 1. Импортируйте данные продаж из Excel в R. 2. Подготовьте временные ряды в R. 3. Используйте функцию Холта Винтерса в R для импортированных данных. (R имеет встроенную функцию как для временных рядов, так и для зимы holt, ts (), holtwinter () и library: forecast (), которые будут использоваться)4. Выполните прогноз для 1 элемента и с помощью цикла выполните тот же процесс для 50 элементов в R (позже мы сделаем 10 000 элементов). 5.

rm(list = ls())

#set directory
setwd("d:\\UsersDemandPlanning")

# load required packages
library(readr)
library(ggplot2)
library(forecast)
library(reprex)

# import data
sales <- read.csv("SalesHistoryTop50SKU.csv", header = TRUE, blank.lines.skip = TRUE)

# reading sales 
sales 

# # examine dataset to see the structure
# str(sales)

# convert our sales data to a time series object
salesTS <- ts(sales$SalesQty, frequency = 52, start = c(2016,1))
class(salesTS)

#library("TTR")
#Plot the ts - , end = c(2018,52)
plot.ts(salesTS)

# Plot
#options(repr.plot.width = 6, repr.plot.height = 5)
salesDecomp <- decompose(salesTS)
plot(salesDecomp)

# log transform time series data -- check if required for ACE
salesLogHW <- HoltWinters(salesDecomp, alpha= 0.5, beta = NULL, gamma = NULL) 


#options(repr.plot.width = 6, repr.plot.height = 4)
plot(salesLogHW)

# forecast next year's sales
nextYearSales <- forecast(salesLogHW, h=26)

# plot
plot(nextYearSales)

nextYearSales
View(nextYearSales)
write.csv(nextYearSales,"Forecast.csv",row.names = FALSE)
  1. записать данные в CSV / xls для каждого элемента, предпочтительно все данные в одном файле.
  2. в основном нужно написать цикл, чтобы получить прогнозвсе данные сразу. сейчас этот код предназначен для прогноза на 1 товар.
  3. мои данные о продажах превосходны. первый столбец содержит весь идентификатор продукта с заголовком: идентификатор продукта, второй столбец содержит данные о продажах за неделю1, данные о продажах за 3 столбца за неделю2 и т. д. до 104-й недели. Строка 1 является только заголовком. Строка 2 - запись продукта1. Строка3 является записью продукта 2. до строки 50. Пример:

ProdID Week1 Week2 Week2 ABC 15 25 XYZ 18 21 PQW 11 23

Я не инженер-программист, поэтому не получаюИдея о том, как сделать этот код. Пожалуйста, совет.

...