亲爱的社区,
我们正在处理大型表格并希望排除异常值。
我们发现,根据 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,最后有一些微小的附属物。
- 其次,胡贝尔中心的估计也不是 0.4。 即使一堆 0.4 的平均值在计算机中也不是 0.4,这也是由于浮点运算的原因。 想象一下,胡贝尔中心的估计是 0.40000000000000yy,最后还有一些其他微小的附属物 yy,但与 xx 不同。
这是我将格式更改为“固定”并为小数点后的数字提供足够长度后的屏幕截图。 您可以在胡贝尔中心看到该附属物。

鉴于 Huber Spread 的估计为零,并且所有观测值在数值上都与 Huber 中心不同,它们确实距 Huber 中心数光年,因此根据定义以及在我们不完美的计算机中计算它们的方式,它们是异常值。