5.1.16. 中位数绝对偏差聚合

未匹配的标注

中位数绝对偏差聚合

单值聚合近似于其搜索结果的中位数绝对偏差

中位数绝对偏差是变异性的量度。这是一个可靠的统计信息,这意味着它对于描述可能具有异常值或未正常分布的数据很有用。对于此类数据,它比标准偏差更具描述性。

计算为每个数据点与整个样本的中值的偏差的中值。即,对于随机变量X,中值绝对偏差为中值(| median(X)-X〜i〜|)。

示例

假设我们的数据代表一到五星级的产品评论。此类评论通常被概括为平均值,这很容易理解,但却无法描述评论的可变性。估计中值绝对偏差可以洞悉彼此之间有多少差异。

在此示例中,我们的产品平均评分为3星。让我们看一下其评分的中位数绝对偏差,以确定它们之间的差异

GET reviews/_search
{
  "size": 0,
  "aggs": {
    "review_average": {
      "avg": {
        "field": "rating"
      }
    },
    "review_variability": {
      "median_absolute_deviation": {
        "field": "rating" 
      }
    }
  }
}
  1. 评分必须是数字字段

所得的2的绝对中位数绝对值告诉我们,评级中存在相当大的可变性。评论者必须对此产品有不同的意见。

{
  ...
  "aggregations": {
    "review_average": {
      "value": 3.0
    },
    "review_variability": {
      "value": 2.0
    }
  }
}

近似值

计算中值绝对偏差的幼稚实现将整个样本存储在内存中,因此此聚合计算出一个近似值。 它使用 TDigest 数据结构 来近似估计样本中位数和样本中位数的偏差中位数,有关TDigests近似特性的更多信息,请参见 百分位数通常是近似值

资源使用率与TDigest分位数逼近度的精度之间的权衡,以及由此聚合的中位数绝对偏差近似值的精度,由compression参数控制。较高的compression设置以较高的内存使用量为代价提供了更准确的近似值。有关TDigestcompression参数的特征的更多信息,请参见压缩

GET reviews/_search
{
  "size": 0,
  "aggs": {
    "review_variability": {
      "median_absolute_deviation": {
        "field": "rating",
        "compression": 100
      }
    }
  }
}

此聚合的默认压缩值为1000。在此压缩级别,此聚合通常在精确结果的5%以内,但是观察到的性能将取决于样本数据。

脚本

此度量标准聚合支持脚本。在上面的示例中,产品评论的规模从1到5。如果我们想将它们修改为1到10的比例,则可以使用脚本。

要提供内联脚本:

GET reviews/_search
{
  "size": 0,
  "aggs": {
    "review_variability": {
      "median_absolute_deviation": {
        "script": {
          "lang": "painless",
          "source": "doc['rating'].value * params.scaleFactor",
          "params": {
            "scaleFactor": 2
          }
        }
      }
    }
  }
}

提供储存脚本

GET reviews/_search
{
  "size": 0,
  "aggs": {
    "review_variability": {
      "median_absolute_deviation": {
        "script": {
          "id": "my_script",
          "params": {
            "field": "rating"
          }
        }
      }
    }
  }
}

缺失值

missing参数定义应如何处理缺少值的文档。默认情况下,它们将被忽略,但也可以将它们视为具有值。

让我们保持乐观,假设有些评论者非常喜欢该产品,以至于他们忘记给它打分了。我们给他们分配五颗星

GET reviews/_search
{
  "size": 0,
  "aggs": {
    "review_variability": {
      "median_absolute_deviation": {
        "field": "rating",
        "missing": 5
      }
    }
  }
}

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
上一篇 下一篇
CrazyZard
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~