【问题标题】:How to do outlier treatment in SAS如何在SAS中进行异常值处理
【发布时间】:2014-04-15 10:17:25
【问题描述】:

我有家庭身份证及其各自的销售额。事实证明,这些 HH ID 中很少有人拥有极高的总销售额。各位大侠能否推荐一个处理异常值的好方法。 如果您在 SAS 中提出建议,那就太好了。

问候, 酒糟

【问题讨论】:

  • 欢迎来到 StackOverflow。如果您有一些可以轻松复制的示例代码,您将获得更好的响应。

标签: sas outliers


【解决方案1】:

以下是一个基本的,相当粗略的方法。它涉及从平均值中删除超过 3 个标准差的值:-

**  Standardise data;
proc standard data=sales_data mean=0 std=1 out=sales_data_std;
  var sales;
run;

**  Remove values more than 3 std devs from mean;
data sales_data_no_outliers;
  set sales_data_std;
  where sales < -3 or sales > 3;
run;

Wikipedia 中有对这种方法的引用。

不过,还是很粗糙;它依赖于你的变量是正态分布的,并且几乎总是会找到异常值(如果 n > 100),即使在所有合理的情况下,这些值并不是真正的异常值。

异常值的主题冗长而详细,但对该主题进行粗略的概述可能会很有用。不幸的是,我真的想不出任何介绍性的资源。

【讨论】:

  • Proc boxplot 使用相同的方法来识别异常值,如果您想要图形视图,也可能值得考虑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-29
  • 2020-05-01
  • 1970-01-01
  • 2011-02-16
  • 1970-01-01
  • 2017-07-23
  • 1970-01-01
相关资源
最近更新 更多