在 Postgres 中实现 Sn 和 Qn(Rousseeuw 和 Croux)进行异常值检测

问题描述 投票:0回答:2

我正在审查和试验异常值标记策略,并不断遇到 Rousseeuw 和 Croux 在 中值绝对偏差的替代方案中对 SnQn 的引用。

http://web.ipac.caltech.edu/staff/fmasci/home/astro_refs/BetterThanMAD.pdf

它们听起来相当出色,并且似乎广泛应用于跨学科的学术和应用统计中。我查了一下 Google Scholar,那篇论文被引用了 2,100 多次。

该技术的吸引人的特点是它不会受到不对称分布的严重影响。大多数时候,这就是我们所拥有的。有时非常极端。

这当然可以在 R 中使用,但我不是统计人员,我们没有服务器端访问 R(或 Python)的权限,并且希望直接在 Postgres 中进行一些搜索。我无法在任何 SQL 习惯用法中找到任何内容,并且希望一些统计爱好者可以掌握一些 Postgres 代码。

postgresql statistics outliers
2个回答
0
投票

现在我知道为什么人们在 R 中做这类工作了:因为 R 非常适合这类工作。如果将来有人遇到这种情况,就去使用 R。它是一个紧凑、易于使用、简单的工具-使用出色的 IDE 学习语言。

如果您有一个可以安装 PL/R 的 Postgres 服务器,那就更好了。 PL/R 被编写为使用

DBI
RPostgreSQL
R 包与 Postgres 连接。这意味着,您应该能够在 RStudio 中开发代码,然后添加所需的包装位,使其在 Postgres 服务器内的 PL/R 中运行。

对于离群值,到目前为止,我对

univOutl
(单变量离群值)很满意,它提供了 10 种常见和不太常见的方法,包括 Rousseeuw 和 Croux 技术。


0
投票

Qn 稳健的规模估计器在 statsmodels.robust.scale 中实现。

© www.soinside.com 2019 - 2024. All rights reserved.