Как выполнить наивное прогнозирование в R (с примерами)

Как выполнить наивное прогнозирование в R (с примерами)

Наивный прогноз — это прогноз, в котором прогноз на данный период просто равен значению, наблюдаемому в предыдущем периоде.

Например, предположим, что у нас есть следующие продажи данного продукта в течение первых трех месяцев года:

Прогноз продаж в апреле будет просто равен фактическим продажам за предыдущий месяц марта:

Наивный пример прогнозирования

Хотя этот метод прост, на практике он работает на удивление хорошо.

В этом руководстве представлен пошаговый пример выполнения наивного прогнозирования в R.

Шаг 1: введите данные

Сначала введем данные о продажах за 12 месяцев в какой-нибудь воображаемой компании:

#create vector to hold actual sales data
actual <- c(34, 37, 44, 47, 48, 48, 46, 43, 32, 27, 26, 24)

Шаг 2: Сгенерируйте наивные прогнозы

Далее мы будем использовать следующие формулы для создания наивных прогнозов на каждый месяц:

#generate naive forecasts
forecast <- c(NA, actual[- length (actual)])

#view naive forecasts
forecast

[1] NA 34 37 44 47 48 48 46 43 32 27 26

Обратите внимание, что мы просто использовали NA для первого прогнозируемого значения.

Шаг 3: Измерьте точность прогнозов

Наконец, нам нужно измерить точность прогнозов. Две общие метрики, используемые для измерения точности, включают:

  • Средняя абсолютная ошибка в процентах (MAPE)
  • Средняя абсолютная ошибка (MAE)

Мы можем использовать следующий код для расчета обеих метрик:

#calculate MAPE
mean(abs((actual-forecast)/actual), na. rm = T ) \* 100

[1] 9.898281

#calculate MAE
mean(abs(actual-forecast), na. rm = T )

[1] 3.454545

Средняя абсолютная ошибка в процентах составляет 9,898% , а средняя абсолютная ошибка - 3,45 .

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

Шаг 4: Визуализируйте прогнозы

Наконец, мы можем создать простой линейный график, чтобы визуализировать различия между фактическими продажами и наивными прогнозами продаж в течение каждого периода:

#plot actual sales
plot(actual, type='l', col = 'red', main='Actual vs. Forecasted Sales',
 xlab='Sales Period', ylab='Sales')

#add line for forecasted sales
lines(forecast, type='l', col = 'blue')

#add legend
legend('topright', legend=c('Actual', 'Forecasted'),
 col=c('red', 'blue'), lty=1)
Наивное прогнозирование в R

Обратите внимание, что прогнозируемая строка продаж в основном представляет собой запаздывающую версию фактической строки продаж.

Это именно то, что мы ожидаем, что график будет выглядеть, поскольку наивный прогноз просто прогнозирует, что продажи в текущем периоде будут равны продажам в предыдущем периоде.

Дополнительные ресурсы

Как рассчитать MAE в R
Как рассчитать MAPE в R
Что считается хорошей ценностью для MAPE?

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.