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