Pull to refresh

Comments 16

В документации такой возможности не встречала.

У меня тоже зачесались руки проверить валютную пару какую-то.
Кстати, видел дипломную по предсказанию USD/RUB
Там получилось предсказать дельту, но не ± направления движения
Стоит отметить, что построение ARIMA модели требует гораздо больших затрат по сравнению с Prophet: нужно исследовать исходный ряд, привести его к стационарному, подобрать начальные приближения и потратить немало времени на подбор гипер-параметров алгоритма


Все то, что вы описали — не является ни проблемой, ни «большими затратами». К слову, привести временной ряд к стационарному можно c помощью невероятно сложной команды того же Eviews: D(x1). Занимает 0 целых, и сколько-то там сотых секунд времени.

Очень сомневаюсь, что Prophet где-то бьет Ариму(нормально выполненную Ариму)

Описание затрат относилось к программированию на языке python (насколько я знаю, в R все также). Кроме большего числа телодвижений, построение ARIMA моделей все-таки требует каких-то знаний.


Возможно, в Eviews эта задача полностью решена и прогноз строиться автоматически одной кнопкой за несколько минут. К сожалению, я не встречалась с этой программой.

Eviews — это то, что создано непосредственно для прогнозирования временных рядов. Но даже если это Питон, в чем проблема взять first difference, чтобы привести к стационарности?

Это просто банальная разница между сегодняшним и вчерашним значением (в случае, когда речь идет о чем-то простом, вроде анализа количества постов), это сложно реализовать в питоне?)

Смешно смотреть на минусы без комментариев. У меня если что — прикладная статистика, эконометрика и немного работы в одной крупной американской компании по анализу бигдаты. Если кто-то не согласен, и готов аргументировать свою точку мнения — с удовольствием выслушаю.

Зачем вообще нужна стационарность? Если посмотреть на любой временной ряд (практически), то его среднее — не является адекватной, ибо пересекает значения ряда всего несколько раз. Гораздо лучше работать с growth rate (темпами роста), тогда решается проблема средней.

Арима, при условии, что мы выровняли временной ряд, и очистили его от сезонности — лучше справится с задачей, чем Prophet
В Eviews не так просто загрузить данные и сделать что-то гибкое и кастомное))
И суть статьи наверное в том, что бы быстро получить результат при минимальных усилиях. Для Аримы все-таки нужно немного подумать, придумать интерпретацию и зафитить параметры. Prophet еще можно использовать как бейслайн.
Например, приходишь к начальнику и говоришь: «Я делаю лучше прогноз, чем библиотека от самого фейсбука! » И сразу поднимаешься в глазах руководства :)
Да, с подумать — не поспоришь, но сама реализация на самом деле — не сложная, это единственное, что меня зацепило. Ну в том плане, что да, Профет быстрее, примерно такой же по результатам, все дела. И это тоже является своим плюсом.

Единственное, что меня зацепило, это фраза "гораздо больших затрат". Ну не гораздо совсем) Плюс те же визуализации — 1 кликом вставляются, ну это такое.

В целом — статья отличная, кроме вот этого вот нюанса ;)
Тут наверное имелось ввиду коммулятивные затраты: написание кода, подумать, трансформации, подбор параметров, построение графиков. А в Профете всего лишь 10 строк и задача по сути решена :)

Еще если надо сразу построить 10к моделей, скажем, цены на 1000 товаров в 10 магазинах сети, то как-то с аримой это накладно получается. Тут уж скорее просто регрессия с хорошо построенными признаками.

в чем проблема взять first difference, чтобы привести к стационарности

проблема в том, что first (и даже second) difference не приводит к стационарности реальные ряды

На языке R можно так же как и в питоне упарываться с классической аримой а можно загрузить R пакет forecast от Rob J. Hyndman и запустить auto.arima

MAPE — коварная метрика. Поскольку ошибка нормируется на таргет, при стремлении таргета к 0, ошибка может возрасти в сотни раз. Поэтому сравнительный график в начале статьи вызывает вопросы

Допустим

y = 60, y_hat =50: MAPE = (60 — 50)/60 = 1/6; MAE = 10

y = 2, y_hat = 3: MAPE = (3-2)/2 = 1/2; MAE = 1

y = 0.1, y_hat = 1: MAPE = (1-0.1)/0.1 = 9; MAE =0.9

А у меня
m.plot(forecast)
m.plot_components(forecast)
напрочь отказываются что-либо рисовать
Как увидеть графики? ;0((
впрочем, глянул на код fbPropheta разобрался
надо было
import matplotlib.pyplot as plt
...
plt.savefig('plot.png', dpi=96)
Sign up to leave a comment.