挑战 11 - 异常值筛选
异常值筛选是一种异常检测方法,其中数据通常是数字。 JMP在分析 > 筛选 > 探索异常值菜单选项下有四种异常值筛选方法。 其中两种方法是单变量的,适用于可以从单列数据中识别出的异常值。
这些方法使用标准方法将异常值定义为远离数据中心的观测值。 算法定义远和中心是这些类型方法的核心。 当数据是单峰和无界时,它们工作得很好,但当离群值出现在边界附近或作为主要模式之间的集群或数据值的末端时,它们工作得很好。
在这些情况下,标准的异常值筛选方法要么找不到异常值,要么需要多次迭代。 引发这些行为的三个例子在三个异常值示例.JMP以下。
对于本月的挑战,开发一种算法,除了通过标准技术发现的异常值之外,还可以找到这些类型的异常值。 假设异常值是单变量,数据是数字。 这探针JMP样本数据表是一组很好的数据来测试你的算法。

你能想出一种改进的异常值筛选方法吗?
回复:挑战 11 - 异常值筛选这是一个有趣的练习!这是我为所附数据表的 Bimodal 列提交的内容。我承认需要对 K 参数进行一些微调才能获得所需的结果。对于其他 2 列,我不太清楚什么应该被视为异常值。
dt = Open( "Three Outlier Examples.jmp" );
obj1 = dt << Explore Outliers(
Y( :Bimodal ),
K Nearest Neighbor Outliers( K( 20 ), Impute Missing( 1 ) )
);
obj1 << Save NN Distances;
obj2 = dt << Explore Outliers(
Y( :Nearest 20 Distance ),
Robust Fit Outliers( K Sigma( 200 ), Huber( 1 ) )
);
obj2 << Select Rows (:"Nearest 20 Distance"n) << Color Rows (:"Nearest 20 Distance"n);
dt << Graph Builder(
Size( 489, 454 ),
Show Control Panel( 0 ),
Variables( X( :Bimodal ) ),
Elements( Points( X, Legend( 3 ) ) )
);
回复:挑战 11 - 异常值筛选谢谢@mzwald ,我喜欢这种方法。