Агрегация медианного абсолютного отклонения
Эта single-value агрегация приближает медиану абсолютного отклонения результатов поиска.
Медиана абсолютного отклонения — это мера вариации. Это устойчивая статистика, что означает, что она полезна для описания данных, которые могут содержать выбросы или не подчиняться нормальному распределению. Для таких данных она может быть более информативной, чем стандартное отклонение.
Она вычисляется как медиана отклонения каждого значения от медианы всего выборки. То есть, для случайной величины X медиана абсолютного отклонения равна медиане(|медиана(X) - Xi|).
Пример
Предположим, наши данные представляют отзывы о продукте по пятибалльной шкале. Такие отзывы обычно суммируются как среднее значение, что легко понять, но не описывает вариацию отзывов. Оценка медианы абсолютного отклонения может дать представление о том, насколько отзывы отличаются друг от друга.
В этом примере у нас есть продукт со средней оценкой 3 звезды. Давайте посмотрим на медианное абсолютное отклонение оценок, чтобы определить, насколько они различаются.
GET reviews/_search
{
"size": 0,
"aggs": {
"review_average": {
"avg": {
"field": "rating"
}
},
"review_variability": {
"median_absolute_deviation": {
"field": "rating"
}
}
}
} |
|
Полученное медианное абсолютное отклонение 2 говорит нам о том, что существует значительная вариация в оценках. Отзывчики должны иметь разные мнения об этом продукте.
{
...
"aggregations": {
"review_average": {
"value": 3.0
},
"review_variability": {
"value": 2.0
}
}
} Приближение
При простом вычислении медианного абсолютного отклонения вся выборка хранится в памяти. Поэтому данная агрегация вместо этого вычисляет приближение. Она использует структуру данных TDigest для приближения медианы выборки и медианы отклонений от медианы выборки. Дополнительную информацию о характеристиках приближения TDigest см. в Процентили (как правило) приблизительные.
Компромисс между использованием ресурсов и точностью приближения квантилей TDigest, а следовательно, и точностью приближения медианного абсолютного отклонения этой агрегации, регулируется параметром compression. Более высокое значение compression обеспечивает более точное приближение за счет большего использования памяти. Более подробную информацию о характеристиках параметра TDigest compression см. в Сжатие.
GET reviews/_search
{
"size": 0,
"aggs": {
"review_variability": {
"median_absolute_deviation": {
"field": "rating",
"compression": 100
}
}
}
} Значение параметра compression по умолчанию для данной агрегации равно 1000. При этом уровне сжатия агрегация обычно отличается от точного результата не более чем на 5%, но наблюдаемая производительность зависит от данных выборки.
Скрипт
В примере выше оценки продукта находятся в диапазоне от одного до пяти. Если вы хотите изменить их на шкалу от одного до десяти, используйте поле runtime.
GET reviews/_search?filter_path=aggregations
{
"size": 0,
"runtime_mappings": {
"rating.out_of_ten": {
"type": "long",
"script": {
"source": "emit(doc['rating'].value * params.scaleFactor)",
"params": {
"scaleFactor": 2
}
}
}
},
"aggs": {
"review_average": {
"avg": {
"field": "rating.out_of_ten"
}
},
"review_variability": {
"median_absolute_deviation": {
"field": "rating.out_of_ten"
}
}
}
} Что приведет к:
{
"aggregations": {
"review_average": {
"value": 6.0
},
"review_variability": {
"value": 4.0
}
}
} Пропущенное значение
Параметр missing определяет, как должны обрабатываться документы, у которых отсутствует значение. По умолчанию они игнорируются, но также можно обрабатывать их так, как будто у них есть значение.
Давайте будем оптимистичны и предположим, что некоторые рецензенты настолько полюбили продукт, что забыли оценить его. Мы присвоим им пять звезд.
GET reviews/_search
{
"size": 0,
"aggs": {
"review_variability": {
"median_absolute_deviation": {
"field": "rating",
"missing": 5
}
}
}
}
© 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-metrics-median-absolute-deviation-aggregation.html