亲爱的社区,
我们正在处理大表并希望排除异常值。
我们发现,根据 huber 的平台稳健拟合异常值排除了所有行,除非在摘要中没有发现异常值,请参阅图片和示例表脚本进行重现(Windows 上的 JMP15 或 JMP16)。
这真的有意义还是存在错误,我希望有不同的行为。

New Table( "Huber-outlier-0-sigma",
Add Rows( 100 ),
New Script(
"Explore Outliers of value",
Explore Outliers( Y( :value ), Robust Fit Outliers )
),
New Column( "value",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
0.4, 0.4]
),
Set Display Width( 83 )
),
)
请联系support@jmp.com报告问题。
我无法评估这种奇怪现象对用户生产环境的影响。 我不能代表开发人员的想法,是否有解决方案。
这是我从数字角度的看法。 在这种情况下,根据异常值的定义方式以及计算机的计算方式,所有数据确实都是异常值。 根源在于浮点运算. 这个案例有两个问题:
- 第一个 0.4 不能在计算机中精确表示。 想象一下,计算机中的 0.4 是 0.40000000000000xx,最后还有一些微小的附属物。
- 其次,Huber Center 估计值也不完全是 0.4。 由于浮点运算,即使是一堆 0.4 的平均值在计算机中也不是 0.4。 想象这里的 Huber 中心估计是 0.40000000000000yy,最后还有一些其他微小的附属物 yy,但与 xx 不同。
这是我将格式更改为固定后的屏幕截图,其中小数点后的数字长度足够。 您可以在 Huber 中心看到附件。

鉴于 Huber Spread 的估计值为零,并且所有观测值在数值上都与 Huber 中心不同,它们确实距离 Huber 中心数光年,因此根据定义以及它们在我们不完善的计算机中的计算方式,它们是异常值。
亲@peng_liu ,
首先感谢您的回复,我会转发support@jmp.com .
在我看来,这种行为是不正确的,据我所知,对话框报告零异常值(Huber N Outliers = 0),与此相反,排除按钮排除所有行。
另外我的解决方法是,我测试列的范围,如果上限和下限完全相同,我跳过异常值测试(不排除所有行)。 由于这现在非常有效,我得出结论认为 JMP 认为这些数字都完全相同。
最好的祝福