Использование фурье-анализа для прогнозирования временных рядов
Я сталкиваюсь с проблемой предсказания временных рядов с сезонными или дневными паттернами, используя преобразование Фурье. После выполнения быстрых преобразований Фурье (FFT) на данных временных рядов, я получаю коэффициенты. Как можно использовать эти коэффициенты для прогноза будущих значений?
Я полагаю, что FFT предполагает, что все данные, которые оно получает, представляют собой один период. Если я просто восстановлю данные с использованием обратного преобразования Фурье (IFFT), я также восстанавливаю продолжение своей функции. Могу ли я использовать эти значения для прогнозирования будущих значений?
Проще говоря: я выполняю FFT для t=0,1,2,...,10, а затем использую IFFT на коэффициентах. Могу ли я использовать восстановленный временной ряд для t=11,12,...,20?
1 ответ(ов)
Похоже, что вы хотите сочетания экстраполяции и денойзинга.
Вы говорите, что хотите повторить наблюдаемые данные несколько раз. В таком случае просто повторите наблюдаемые данные. Нет необходимости в преобразовании Фурье.
Но вы также хотите найти "шаблоны". Я предполагаю, что это означает нахождение доминирующих частотных компонентов в наблюдаемых данных. Если да, то да, выполните преобразование Фурье, сохраните крупнейшие коэффициенты и удалите остальные.
X = scipy.fft(x)
Y = scipy.zeros(len(X))
Y[важные_частоты] = X[важные_частоты]
Что касается периодического повторения: пусть z = [x, x]
, то есть два периода сигнала x
. Тогда Z[2k] = X[k]
для всех k
из {0, 1, ..., N-1}, и нули в остальных местах.
Z = scipy.zeros(2*len(X))
Z[::2] = X
Как сопоставить любой символ на нескольких строках в регулярном выражении?
Чтение .mat файлов в Python
`/` против `//` для деления в Python
Как изменить порядок столбцов в DataFrame?
'pip' не распознан как командa внутреннего или внешнего формата