Агрегирование последовательных разностей
Последовательное разностное вычисление — это техника, в которой значения в временном ряду вычитаются из самого себя с разными временными лагами или периодами. Например, точка данных f(x) = f(xt) - f(xt-n), где n — используемый период.
Период 1 эквивалентен производной без нормализации времени: это просто изменение от одной точки к другой. Одиночные периоды полезны для удаления постоянных, линейных трендов.
Одиночные периоды также полезны для преобразования данных в стационарный ряд. В этом примере индекс Доу-Джона показан примерно за 250 дней. Исходные данные не стационарны, что затруднит их использование с некоторыми техниками.
Вычислением первой разницы мы устраняем тренды (например, удаляем постоянный, линейный тренд). Мы можем видеть, что данные становятся стационарным рядом (например, первая разница распределена случайным образом около нуля и, кажется, не демонстрирует никаких закономерностей/поведения). Преобразование показывает, что набор данных следует случайному блужданию; значение равно предыдущему значению ± случайное количество. Этот вывод позволяет выбрать дополнительные инструменты для анализа.
Можно использовать более длительные периоды для удаления сезонного/циклического поведения. В этом примере численно генерировалась популяция леммингов с синусоидой + постоянным линейным трендом + случайным шумом. Синусоида имеет период 30 дней.
Первая разница удаляет постоянный тренд, оставляя только синусоиду. Затем применяется 30-я разница к первой разнице, чтобы устранить циклическое поведение, оставляя стационарный ряд, который пригоден для других анализов.
Синтаксис
Агрегирование serial_diff выглядит так изолированно:
{
"serial_diff": {
"buckets_path": "the_sum",
"lag": 7
}
} Таблица 73. serial_diff Параметры
| Имя параметра | Описание | Обязательно | Значение по умолчанию |
|---|---|---|---|
| Путь к метрике, представляющей интерес (см. | Обязательно | |
| Историческая группа для вычитания из текущего значения. Например, задержка 7 вычтет текущее значение из значения, которое было 7 группами ранее. Должно быть положительным целым числом, отличным от нуля | Необязательно |
|
| Определяет, что должно произойти при обнаружении разрыва в данных. | Необязательно |
|
| Формат, применяемый к выходному значению этого агрегирования | Необязательно |
|
serial_diff агрегации должны быть встроены внутри histogram или date_histogram агрегирования:
POST /_search
{
"size": 0,
"aggs": {
"my_date_histo": {
"date_histogram": {
"field": "timestamp",
"calendar_interval": "day"
},
"aggs": {
"the_sum": {
"sum": {
"field": "lemmings"
}
},
"thirtieth_difference": {
"serial_diff": {
"buckets_path": "the_sum",
"lag" : 30
}
}
}
}
}
} | Строится | |
| Используется метрика | |
| Наконец, мы указываем агрегирование |
Последовательные разности строятся путем сначала задания histogram или date_histogram по полю. Затем вы можете необязательно добавить обычные метрики, такие как sum, внутри этого гистограмма. Наконец, serial_diff встраивается в гистограмму. Параметр buckets_path используется для "указаний" на одну из метрик-сестёр внутри гистограммы (см. buckets_path Синтаксис для описания синтаксиса для buckets_path).
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/search-aggregations-pipeline-serialdiff-aggregation.html