Документация по показателям качества временных рядов

Оглавление

  1. Обзор
  2. Показатели временного диапазона данных
  3. Показатели диапазона значений
  4. Показатели плотности данных
  5. Показатели частоты и регулярности
  6. Показатели качества сигнала
  7. Показатели устойчивости данных
  8. Показатели качества
  9. Заключение

Обзор

Данный документ описывает все показатели качества временных рядов, используемые в системе анализа данных. Система включает 19 метрик, сгруппированных по 7 категориям. Каждый показатель включает краткое и детальное описание, объяснение применения в анализе временных рядов, метод расчета и описание возможных значений.


1. Показатели временного диапазона данных

1.1 first_raw_date

Краткое описание: Дата первой сырой точки наблюдения.

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

Применение в анализе временных рядов:

  • Определение минимальной длины исторического периода для обучения моделей
  • Оценка достаточности данных для выявления сезонных паттернов
  • Планирование стратегии обработки данных с учетом доступной истории
  • Валидация временного окна для различных аналитических задач

Метод расчета: Находится минимальная дата среди всех дат наблюдений в исходном наборе данных. Процесс включает поиск самой ранней даты в столбце с временными метками и преобразование результата в формат даты.

Возможные значения:

  • Тип: date (дата)
  • Диапазон: любая валидная дата
  • Примеры: 2020-01-01, 2018-03-15, 2022-12-31

1.2 last_raw_date

Краткое описание: Дата последней сырой точки наблюдения.

Детальное описание: Показатель определяет самую позднюю дату, на которую имеются реальные наблюдения в временном ряду. Этот параметр критически важен для оценки актуальности данных и определения степени их устаревания относительно текущего момента времени.

Применение в анализе временных рядов:

  • Оценка свежести данных для принятия решений
  • Определение временного лага между последним наблюдением и текущей датой
  • Планирование стратегий обновления моделей
  • Анализ рисков, связанных с использованием устаревших данных

Метод расчета: Находится максимальная дата среди всех дат наблюдений в исходном наборе данных. Процесс включает поиск самой поздней даты в столбце с временными метками и преобразование результата в формат даты.

Возможные значения:

  • Тип: date (дата)
  • Диапазон: любая валидная дата
  • Примеры: 2024-01-01, 2023-12-31, 2022-06-15

1.3 span_weeks_raw

Краткое описание: Длина исторического горизонта в неделях между первой и последней сырой датой.

Детальное описание: Показатель измеряет общую продолжительность временного ряда в неделях, рассчитывая разность между последней и первой датой наблюдений. Чем больше значение, тем богаче историческая база для обучения моделей и выявления долгосрочных трендов.

Применение в анализе временных рядов:

  • Оценка достаточности исторических данных для обучения
  • Определение возможности выявления долгосрочных трендов
  • Планирование размера обучающей выборки
  • Валидация временного окна для различных типов анализа

Метод расчета: Вычисляется разность в днях между последней и первой датой наблюдений, затем результат делится на 7 для получения количества недель. К результату добавляется 1, чтобы включить обе граничные даты в подсчет. Полученное значение округляется до целого числа.

Возможные значения:

  • Тип: int (целое число)
  • Диапазон: 1 ≤ значение < ∞
  • Примеры: 52 (1 год), 156 (3 года), 104 (2 года)

1.4 tail_weeks_to_today

Краткое описание: Количество недель, прошедших с последней сырой точки до текущей даты.

Детальное описание: Показатель измеряет временной лаг между последним доступным наблюдением и текущим моментом. Высокие значения указывают на потенциальную устарелость данных и могут снижать качество прогнозов. Этот показатель используется для оценки актуальности данных и планирования стратегий обновления моделей.

Применение в анализе временных рядов:

  • Оценка актуальности данных для прогнозирования
  • Определение необходимости обновления моделей
  • Анализ рисков использования устаревших данных
  • Планирование стратегий сбора и обновления данных
  • Оценка качества прогнозов при больших временных лагах
  • Анализ деградации точности модели со временем

Метод расчета: Вычисляется разность в днях между текущей датой и датой последнего наблюдения, затем результат делится на 7 для получения количества недель. Полученное значение округляется до целого числа.

Возможные значения:

  • Тип: int (целое число)
  • Диапазон: 0 ≤ значение < ∞
  • Примеры: 0 (данные актуальны), 4 (месяц назад), 52 (год назад)

2. Показатели диапазона значений

2.1 min_raw

Краткое описание: Минимальное наблюденное значение в сырых данных.

Детальное описание: Показатель определяет наименьшее значение среди всех реальных наблюдений в временном ряду. Используется для sanity-check данных, определения нижней границы динамического диапазона и настройки масштабирования признаков.

Применение в анализе временных рядов:

  • Валидация корректности данных (проверка на аномально низкие значения)
  • Настройка нормализации и масштабирования данных
  • Определение границ для детекции выбросов
  • Планирование стратегий обработки экстремальных значений

Метод расчета: Находится минимальное значение среди всех числовых значений в столбце с данными временного ряда. Результат преобразуется в формат числа с плавающей точкой.

Возможные значения:

  • Тип: float (число с плавающей точкой)
  • Диапазон: -∞ < значение < ∞
  • Примеры: 0.0, -15.5, 1000000.0

2.2 max_raw

Краткое описание: Максимальное наблюденное значение в сырых данных.

Детальное описание: Показатель определяет наибольшее значение среди всех реальных наблюдений в временном ряду. Позволяет оценить фактический динамический диапазон данных и выявить потенциальные аномалии.

Применение в анализе временных рядов:

  • Оценка динамического диапазона временного ряда
  • Валидация корректности данных (проверка на аномально высокие значения)
  • Настройка масштабирования и нормализации
  • Определение верхней границы для детекции выбросов

Метод расчета: Находится максимальное значение среди всех числовых значений в столбце с данными временного ряда. Результат преобразуется в формат числа с плавающей точкой.

Возможные значения:

  • Тип: float (число с плавающей точкой)
  • Диапазон: -∞ < значение < ∞
  • Примеры: 100.0, 999999.99, 0.001

3. Показатели плотности данных

3.1 observed_weeks

Краткое описание: Количество недель, в которых присутствуют сырые наблюдения.

Детальное описание: Показатель подсчитывает количество недель в заданном временном диапазоне, для которых имеются реальные (не интерполированные) наблюдения. Используется как числитель при расчете плотности данных.

Применение в анализе временных рядов:

  • Оценка полноты данных во временном диапазоне
  • Расчет индексов плотности и разреженности
  • Планирование стратегий интерполяции
  • Оценка качества временного покрытия

Метод расчета: Генерируется список всех воскресений в диапазоне от первой до последней даты наблюдений. Затем подсчитывается количество воскресений, для которых в исходных данных имеются соответствующие наблюдения. Результат представляет количество недель с реальными данными.

Возможные значения:

  • Тип: int (целое число)
  • Диапазон: 0 ≤ значение ≤ expected_weeks
  • Примеры: 10, 52, 156

3.2 expected_weeks

Краткое описание: Общее количество недель от первой сырой точки до текущей даты.

Детальное описание: Показатель определяет максимально возможное количество недель в анализируемом временном диапазоне. Используется как знаменатель при расчете плотности данных и позволяет нормализовать метрики полноты.

Применение в анализе временных рядов:

  • Нормализация метрик плотности данных
  • Расчет процента покрытия временного диапазона
  • Оценка эффективности сбора данных
  • Планирование целевых показателей полноты данных

Метод расчета: Генерируется список всех воскресений в диапазоне от первой даты наблюдений до текущей даты. Подсчитывается общее количество воскресений в этом диапазоне, что представляет максимально возможное количество недель с данными.

Возможные значения:

  • Тип: int (целое число)
  • Диапазон: 1 ≤ значение < ∞
  • Примеры: 52 (1 год), 104 (2 года), 260 (5 лет)

3.3 sparsity_pct

Краткое описание: Доля пустот в данных (1 - observed/expected).

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

Применение в анализе временных рядов:

  • Оценка качества временного покрытия
  • Планирование стратегий заполнения пропусков
  • Оценка пригодности данных для различных типов анализа
  • Сравнение качества разных временных рядов

Метод расчета: Вычисляется отношение количества недель с реальными данными к общему количеству недель в диапазоне. Из единицы вычитается это отношение, что дает долю пропущенных недель. Если общее количество недель равно нулю, результат устанавливается равным единице.

Возможные значения:

  • Тип: float (число с плавающей точкой)
  • Диапазон: 0.0 ≤ значение ≤ 1.0
  • Примеры: 0.0 (нет пропусков), 0.3 (30% пропусков), 1.0 (все данные пропущены)

3.4 interpolated_weeks_share

Краткое описание: Доля недель в рабочем интервале, где пришлось интерполировать данные.

Детальное описание: Показатель измеряет процент недель в анализируемом временном диапазоне, для которых значения были получены путем интерполяции, а не являются реальными наблюдениями. Чем выше значение, тем ниже доверие к данным.

Применение в анализе временных рядов:

  • Оценка надежности данных
  • Планирование стратегий сбора дополнительных данных
  • Корректировка весов при обучении моделей
  • Оценка неопределенности прогнозов

Метод расчета: Генерируется список всех воскресений в рабочем интервале от первой до последней даты наблюдений. Создается множество дат, для которых имеются реальные данные. Подсчитывается количество воскресений, отсутствующих в этом множестве, что соответствует неделям с интерполированными данными. Результат делится на общее количество воскресений в интервале.

Возможные значения:

  • Тип: float (число с плавающей точкой)
  • Диапазон: 0.0 ≤ значение ≤ 1.0
  • Примеры: 0.0 (нет интерполяции), 0.2 (20% интерполировано), 1.0 (все интерполировано)

4. Показатели частоты и регулярности

4.1 inferred_frequency

Краткое описание: Автоматически определенная частота временного ряда (двухгодичная/годовая/квартальная/месячная/недельная).

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

Применение в анализе временных рядов:

  • Адаптация алгоритмов анализа к специфике данных
  • Выбор подходящих методов прогнозирования
  • Настройка параметров сезонной декомпозиции
  • Планирование стратегий сбора данных

Метод расчета: Вычисляются интервалы между соседними наблюдениями в неделях. Находится медианное значение этих интервалов. На основе медианного интервала определяется частота:

  • если интервал составляет 90-112 недель, то частота двухгодичная (biennial);
  • если интервал составляет 45-60 недель, то частота годовая (yearly);
  • если интервал составляет 10-16 недель, то частота квартальная (quarterly);
  • если интервал составляет 3-6 недель, то частота месячная (monthly);
  • если интервал составляет 0.5-2.5 недели, то частота недельная (weekly). Во всех остальных случаях частота считается неизвестной.

Возможные значения:

  • Тип: str (строка)
  • Варианты: 'biennial', 'yearly', 'quarterly', 'monthly', 'weekly', 'unknown'
  • Примеры: 'monthly', 'quarterly', 'unknown'

4.2 frequency_consistency

Краткое описание: Степень соответствия интервалов между наблюдениями ожидаемой частоте.

Детальное описание: Показатель измеряет регулярность временного ряда, оценивая, насколько стабильны интервалы между наблюдениями. Низкие значения указывают на нерегулярность, что усложняет моделирование и прогнозирование.

Применение в анализе временных рядов:

  • Оценка пригодности данных для стандартных методов анализа
  • Планирование стратегий нормализации временных интервалов
  • Выбор подходящих алгоритмов обработки нерегулярных данных
  • Оценка сложности задачи прогнозирования

Метод расчета: Если частота определена, вычисляется ожидаемый интервал как медианное значение всех интервалов. Для каждого интервала проверяется, насколько он отклоняется от ожидаемого значения в относительном выражении. Подсчитывается количество интервалов, отклонение которых не превышает заданный порог (обычно 30%). Результат делится на общее количество интервалов, что дает долю регулярных интервалов.

Возможные значения:

  • Тип: float (число с плавающей точкой)
  • Диапазон: 0.0 ≤ значение ≤ 1.0
  • Примеры: 1.0 (идеальная регулярность), 0.8 (80% регулярных интервалов), 0.0 (полная нерегулярность)

5. Показатели качества сигнала

5.1 variance_filled

Краткое описание: Дисперсия временного ряда после заполнения пропусков.

Детальное описание: Показатель измеряет вариабельность данных в заполненном временном ряду. Дает представление о масштабе изменчивости сигнала и используется для оценки информативности данных.

Применение в анализе временных рядов:

  • Оценка информативности временного ряда
  • Планирование стратегий нормализации данных
  • Сравнение вариабельности разных рядов
  • Оценка сложности задачи прогнозирования

Метод расчета: Вычисляется выборочная дисперсия всех значений в заполненном временном ряду. Дисперсия рассчитывается как среднее квадратов отклонений значений от их среднего арифметического. Результат преобразуется в формат числа с плавающей точкой.

Возможные значения:

  • Тип: float (число с плавающей точкой)
  • Диапазон: 0.0 ≤ значение < ∞
  • Примеры: 0.0 (нет вариабельности), 25.5 (средняя вариабельность), 10000.0 (высокая вариабельность)

5.2 std_filled

Краткое описание: Стандартное отклонение заполненного временного ряда.

Детальное описание: Показатель представляет квадратный корень из дисперсии и является более интерпретируемой мерой вариабельности. Используется для оценки масштаба изменений в данных.

Применение в анализе временных рядов:

  • Интерпретация масштаба вариабельности данных
  • Настройка параметров алгоритмов машинного обучения
  • Оценка значимости изменений в данных
  • Планирование стратегий обработки данных

Метод расчета: Вычисляется выборочное стандартное отклонение всех значений в заполненном временном ряду. Стандартное отклонение рассчитывается как квадратный корень из дисперсии. Результат преобразуется в формат числа с плавающей точкой.

Возможные значения:

  • Тип: float (число с плавающей точкой)
  • Диапазон: 0.0 ≤ значение < ∞
  • Примеры: 0.0 (нет вариабельности), 5.0 (средняя вариабельность), 100.0 (высокая вариабельность)

5.3 smoothness_ratio

Краткое описание: Отношение дисперсии первой разности к дисперсии исходного ряда.

Детальное описание: Показатель измеряет гладкость временного ряда. Чем меньше значение, тем более гладкий сигнал, что обычно указывает на более стабильные и предсказуемые паттерны, полезные для устойчивости моделей.

Применение в анализе временных рядов:

  • Оценка стабильности временного ряда
  • Выбор подходящих методов сглаживания
  • Оценка пригодности данных для различных алгоритмов
  • Планирование стратегий предобработки данных

Метод расчета: Если в ряду более одного значения, вычисляется первая разность (разности между соседними значениями). Рассчитывается дисперсия первой разности и дисперсия исходного ряда. Отношение дисперсии первой разности к дисперсии исходного ряда дает показатель гладкости. Если дисперсия исходного ряда равна нулю, результат устанавливается равным нулю.

Возможные значения:

  • Тип: float (число с плавающей точкой)
  • Диапазон: 0.0 ≤ значение < ∞
  • Примеры: 0.0 (идеально гладкий), 0.5 (средняя гладкость), 2.0 (шумный ряд)

5.4 seasonality_strength_weekly

Краткое описание: Оценка силы недельной сезонности с использованием STL декомпозиции.

Детальное описание: Показатель измеряет долю общей вариабельности временного ряда, объясняемую недельными сезонными паттернами. Вычисляется с помощью STL (Seasonal and Trend decomposition using Loess) с периодом 52 недели.

Применение в анализе временных рядов:

  • Выявление сезонных паттернов в данных
  • Планирование стратегий учета сезонности в моделях
  • Оценка пригодности данных для сезонных алгоритмов
  • Сравнение сезонности разных временных рядов

Метод расчета: Если в ряду не менее 104 наблюдений (2 года), выполняется STL декомпозиция с недельным периодом (52 недели). Из результата декомпозиции извлекается сезонная компонента. Вычисляется дисперсия сезонной компоненты и общая дисперсия ряда. Отношение дисперсии сезонной компоненты к общей дисперсии показывает силу недельной сезонности. При ошибке или недостатке данных результат не определяется.

Возможные значения:

  • Тип: float или None (число с плавающей точкой или отсутствие значения)
  • Диапазон: 0.0 ≤ значение ≤ 1.0 или None
  • Примеры: 0.0 (нет сезонности), 0.3 (слабая сезонность), 0.8 (сильная сезонность), None (недостаточно данных)

5.5 trend_strength

Краткое описание: Доля трендовой компоненты в общей вариабельности временного ряда.

Детальное описание: Показатель измеряет силу долгосрочного тренда в данных с использованием LOWESS (Locally Weighted Scatterplot Smoothing). Высокие значения указывают на необходимость учета трендовых компонент в моделях.

Применение в анализе временных рядов:

  • Выявление долгосрочных трендов
  • Планирование стратегий детрендинга данных
  • Оценка необходимости трендовых регрессоров в моделях
  • Анализ долгосрочной динамики показателей

Метод расчета: Если в ряду не менее 20 наблюдений, применяется LOWESS сглаживание с параметром сглаживания 0.3 для выделения трендовой компоненты. Вычисляется дисперсия трендовой компоненты и общая дисперсия исходного ряда. Отношение дисперсии трендовой компоненты к общей дисперсии показывает силу тренда. При ошибке или недостатке данных результат не определяется.

Возможные значения:

  • Тип: float или None (число с плавающей точкой или отсутствие значения)
  • Диапазон: 0.0 ≤ значение ≤ 1.0 или None
  • Примеры: 0.0 (нет тренда), 0.4 (слабый тренд), 0.9 (сильный тренд), None (недостаточно данных)

6. Показатели устойчивости данных

6.1 outlier_rate_raw

Краткое описание: Доля выбросов в сырых данных, определенная робастным методом.

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

Применение в анализе временных рядов:

  • Выявление аномальных наблюдений
  • Планирование стратегий обработки выбросов
  • Оценка качества исходных данных
  • Настройка параметров алгоритмов для работы с зашумленными данными

Метод расчета: Если в ряду более одного значения, вычисляется медиана всех значений. Рассчитывается медианное абсолютное отклонение (MAD) как медиана абсолютных отклонений от медианы. MAD делится на константу 0.6745 для получения робастной оценки стандартного отклонения. Значения, отклоняющиеся от медианы более чем на 3 робастных стандартных отклонения, считаются выбросами. Доля выбросов рассчитывается как среднее арифметическое булевых значений.

Возможные значения:

  • Тип: float (число с плавающей точкой)
  • Диапазон: 0.0 ≤ значение ≤ 1.0
  • Примеры: 0.0 (нет выбросов), 0.05 (5% выбросов), 0.2 (20% выбросов)

6.2 missing_run_max_weeks

Краткое описание: Максимальная длина самой длинной последовательности наблюдений.

Детальное описание: Показатель определяет наибольшее количество недель подряд, в течение которых отсутствуют наблюдения. Большие значения указывают на значительные пробелы в , что может негативно влиять на стабильность оценок и качество прогнозов.

Применение в анализе временных рядов:

  • Оценка качества временного покрытия
  • Планирование стратегий заполнения длинных пропусков
  • Оценка рисков для стабильности моделей
  • Приоритизация сбора данных для критических периодов

Метод расчета: Генерируется список всех воскресений в диапазоне от первой до последней даты наблюдений. Создается множество дат, для которых имеются реальные данные. Последовательно просматриваются все воскресенья, и для каждого отсутствующего воскресенья увеличивается счетчик текущей последовательности пропусков. При встрече воскресенья с данными счетчик сбрасывается. Отслеживается максимальная длина последовательности пропусков.

Возможные значения:

  • Тип: int (целое число)
  • Диапазон: 0 ≤ значение < ∞
  • Примеры: 0 (нет пропусков), 4 (месяц пропусков), 52 (год пропусков)

7. Показатели качества

7.1 quality_score

Краткое описание: Итоговая оценка качества временного ряда в диапазоне от 0 до 1.

Детальное описание: Комплексный показатель, объединяющий все аспекты качества временного ряда: историческую глубину, свежесть данных, плотность наблюдений, регулярность, наличие выбросов и пропусков. Рассчитывается как взвешенная сумма компонентных оценок.

Применение в анализе временных рядов:

  • Ранжирование временных рядов по качеству
  • Принятие решений о пригодности данных для анализа
  • Планирование стратегий улучшения качества данных
  • Мониторинг качества данных во времени

Метод расчета: Вычисляется взвешенная сумма шести компонентных оценок качества. Каждая компонента умножается на соответствующий вес: историческая глубина (25%), свежесть данных (25%), плотность данных (20%), регулярность (10%), качество временного покрытия (10%) и устойчивость к выбросам (10%). Результат ограничивается диапазоном от 0 до 1.

Возможные значения:

  • Тип: float (число с плавающей точкой)
  • Диапазон: 0.0 ≤ значение ≤ 1.0
  • Примеры: 0.0 (очень низкое качество), 0.5 (среднее качество), 1.0 (отличное качество)

7.2 quality_components

Краткое описание: Разложение итоговой оценки качества на отдельные компоненты.

Детальное описание: Словарь, содержащий оценки по каждому аспекту качества временного ряда. Позволяет понять, какие именно факторы влияют на общую оценку качества и где необходимо сосредоточить усилия по улучшению.

Применение в анализе временных рядов:

  • Диагностика проблем качества данных
  • Планирование приоритетов улучшения данных
  • Сравнение качества разных аспектов временных рядов
  • Мониторинг изменений в отдельных компонентах качества

Метод расчета: Каждая компонента рассчитывается отдельно: историческая оценка как отношение фактической длины ряда к требуемой длине, свежесть как экспоненциальная функция от времени с последнего наблюдения, плотность как доля недель с данными, регулярность как доля интервалов, соответствующих ожидаемой частоте, качество покрытия как экспоненциальная функция от максимальной длины пропусков, устойчивость как обратная функция от доли выбросов.

Возможные значения:

  • Тип: dict (словарь с компонентами)
  • Структура: {'history_score': float, 'recency_score': float, 'density_score': float, 'regularity_score': float, 'missing_runs_score': float, 'robustness_score': float}
  • Диапазон каждой компоненты: 0.0 ≤ значение ≤ 1.0

7.3 warnings

Краткое описание: Список предупреждений о проблемах качества данных.

Детальное описание: Набор флагов, указывающих на конкретные проблемы качества временного ряда. Обеспечивает быструю диагностику критических проблем и помогает в принятии решений о дальнейших действиях.

Применение в анализе временных рядов:

  • Быстрая диагностика критических проблем
  • Автоматизация принятия решений о качестве данных
  • Мониторинг состояния временных рядов
  • Планирование корректирующих действий

Метод расчета: Предупреждения генерируются на основе пороговых значений компонентных оценок: если количество наблюдений меньше минимально необходимого (4 для квартальных/месячных, 6 для недельных), добавляется предупреждение о недостатке данных; если оценка свежести меньше 0.5, добавляется предупреждение об устаревших данных; если оценка плотности меньше 0.3, добавляется предупреждение о разреженности; если оценка регулярности меньше 0.5, добавляется предупреждение о нерегулярной частоте.

Возможные значения:

  • Тип: list (список строк)
  • Варианты: ['недостаточно_наблюдений'], ['устаревшие_данные'], ['разреженные_данные'], ['нерегулярная_частота'], [] (нет предупреждений)
  • Примеры: [], ['устаревшие_данные'], ['разреженные_данные', 'нерегулярная_частота']

Заключение

Данная система показателей качества временных рядов обеспечивает комплексную оценку пригодности данных для различных аналитических задач. Каждый показатель имеет четко определенную цель и метод расчета, что позволяет использовать их как для автоматизированной оценки, так и для ручного анализа качества данных.

Правильное понимание и интерпретация этих показателей критически важны для:

  • Выбора подходящих алгоритмов анализа
  • Планирования стратегий улучшения качества данных
  • Принятия обоснованных решений о пригодности данных
  • Обеспечения надежности результатов анализа