Skip to content

dgtony/flying-circus

Repository files navigation

Набор утилит для анализа временных рядов и эффективности методов краткосрочного прогнозирования.

Требования: Python >= 2.7, модули: numpy, scipy, matplotlib, statsmodels, argparse, csv, sys.

Все утилиты в качестве исходных данных принимают файлы стандартной структуры: на каждой строке файла должно быть два значения, разделенные запятой: время (сек), значение_интенсивности. Используется десятичная точка. Допускается заголовок или др. информация в начале файла.


- ES_parameter_optimization_test.py. Вспомогательная утилита для исследования метода простого экспоненциального сглаживания. Позволяет оценить влияние длины интервала данных, на основании которого находится оптимальное значение коэффициента сглаживания, на суммарную квадратичную ошибку предсказания. Оптимизация коэффициента производится на каждом шаге, прогнозируется значение на один шаг вперед. Значение оптимального коэффициента находится путем минимизации квадратичной ошибки методом Нелдера-Мида (неограниченная область значений).
Строит график эволюции параметра сглаживания и соответствующей суммарной квадратичной ошибки предсказания при работе алгоритма экспоненциального сглаживания на реальных данных (из файла).


- csvplot. Строит графики интенсивности сетевого трафика на основании данных из файла. Автоматически сохраняет графики.


- exclude_zeros. Скрипт удаляет все нулевые значения из исходного файла, полученный ряд записывается в новый файл с преобразованными значениями времени. Нужно для тестирования линейного предсказания.


- forecasting_test. Оценка эффективности методов прогнозирования. Есть опция --help.
В качестве исходных данных принимает файл (стандартного формата), содержащий данные об интенсивности сетевого трафика.
  Реализованы следующие методы:
	1) Полиномиальная аппроксимация.
	2) Экстраполяция (полиномы степеней 1, 2 и 3)
	3) Исследование влияния длины интервала истории на точность аппроксимации.
	4) Методы сглаживания Спенсера (по 5-ти и 7-ми точкам).
	5) Метод линейного предсказания.
	6) Экспоненциальное сглаживание.

Строит графики оригинального и предсказанных рядов. Прогноз строится на один шаг вперед.
Выводит среднюю процентную ошибку предсказания (MAPE) + среднеквадратичное отклонение ошибки.


- lpc.py. Вспомогательный внешний модуль для работы forecasting_test. Содержит функции линейного предсказания и т.п.


- LP_spectrum. Утилита строит эволюцию передаточной функции фильтра линейного предсказания (т.е. его спектра). В качестве исходных данных используются файлы, полученные при тестировании LP (запуск forecasting_test --type LP с опцией -s). Процесс эволюции представляется в виде совмещенного графика, а также есть возможность создания анимированного ролика (опция -a).


- timeseries_analyze. Утилита для анализа временных рядов.
  Включает:
	1) Подбор закона распределения вероятностей (по MLE).
	2) Детектирование тренда в данных.
	3) Проверка стационарности ряда.
	4) Оценка параметра Хёрста.
	5) Анализ спектра, АКФ, ЧАКФ.

Дополнительные опции + настройки находятся в поле управляющих флагов.


- trace_transform. Утилита для сглаживания (усреднения ака невзвешенное среднее по блокам заданного размера) исходных временных рядов (из файла). Запрашивает список длин интервалов усреднения (указываются в секундах), после чего строит график исходного ряда + соответствующих усредненных вариантов и позволяет сохранить сглаженные ряды в отдельных файлах.

About

Traffic IO short-term forecasting

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages