Comments 11
Скажите, пожалуйста, почему Вы не использовали scipy.fft?
Добрый день, чтобы применить низкоуровневые библиотеки, и использовать декоратор функции Numba
Что такое "низкоуровневые" библиотеки? Вы, я вижу, используете:
math
pandas
matplotlib
numba
Они все "низкоуровневые"? Так тогда numpy/scipy такие же...
Сколько волка не корми, а время вычисления "вашим" способом пропорционально N^2, а FFT - N*log(N). Ну и под капотом у scipy код на С или даже еще фортране.
Далее, про точность вашей модели. Вам тут уже намекали, что по одному графику ничего не определишь. Хотя - нет. Вы предсказываете отрицательные числа в выходные дни по ночам. Да и в рабочие дни тоже :( Максимальное количество посещений в рабочие дни недооценивается, а в выходные дни переоценивается.
Т.е. будь я вашим заказчиком, я бы потребовал a) график residuals vs. time и b) гистограмму распределения этих остатков по величине.
P.S. У вас во втором примере кода отступы съехали.
Как видно из графика выше, применение описанного метода позволяет получить очень хороший прогноз...
Возможно в DS так принято, на глаз оценивать качество прогноза. В традиционной статистике принято заниматься всякими глупостями вроде расчета критерия достоверности и анализа отклонений прогноза от реальных данных.
На картинке наложения графиков реальных данных и прогноза - всё видно, всё исследовано.
Что именно видно?
"отклонений прогноза от реальных данных "
По графику трудно о чем либо судить, это дело субъективного восприятия. Вот как я вижу, на пиках отклонения вверх всегда гораздо больше, чем отклонения вниз на минимумах. То есть отклонения носят регулярный характер. Такой сильный звоночек о том, что модель кривенькая. Ибо отклонения должны примерно одинаковыми что в плюс, что а минус, а тут явный перекос в плюс, и этот перекос наблюдается с постоянной периодичностью.
Если бы отклонения реально исследовались, это сразу стало бы очевидно.
Вот сейчас не понял? Что субъектвно у вас ан графике со шкалами и цифрами? Вы цифры шкал не видите? Или субъективно их воспринимаете?
Автор: А вот порог расчетных гармоник по мощности, думаю надо бы еще отбирать, например, среднеквадратичным отклонением, чтобы включить не самые пиковые, а просто все, которые влияют до определенного предела на результат, а иначе, с топовыми гармониками у вас в низших точках получились слишком сильные отклонения в прогнозах, именно из-за нехватки числа гармоник в среднем ряду.
Спектральный анализ временных рядов с помощью python