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

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

Хотя этот метод прост, на практике он работает на удивление хорошо.
В этом руководстве представлен пошаговый пример выполнения наивного прогнозирования в 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)

Обратите внимание, что прогнозируемая строка продаж в основном представляет собой запаздывающую версию фактической строки продаж.
Это именно то, что мы ожидаем, что график будет выглядеть, поскольку наивный прогноз просто прогнозирует, что продажи в текущем периоде будут равны продажам в предыдущем периоде.
Дополнительные ресурсы
Как рассчитать MAE в R
Как рассчитать MAPE в R
Что считается хорошей ценностью для MAPE?