Chère communauté,
nous traitons de grandes tables et voulons exclure les valeurs aberrantes.
Nous avons constaté que la valeur aberrante de l'ajustement robuste de la plate-forme selon huber exclut toutes les lignes, sauf si dans le résumé aucune valeur aberrante n'est trouvée, voir l'image et l'exemple de script de table à reproduire (JMP15 ou JMP16 sous Windows).
Est-ce vraiment logique ou y a-t-il un bogue, je m'attendrais à un comportement différent.

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 )
),
)
Cher @peng_liu ,
tout d'abord merci pour votre réponse, je vais transmettre à support@jmp.com .
À mon avis, ce comportement n'est pas correct, pour autant que je sache, la boîte de dialogue signale zéro valeur aberrante (Huber N Outliers = 0), et contrairement à cela, le bouton d'exclusion exclut toutes les lignes.
De plus, ma solution de contournement est que je teste la plage de la colonne, et si la limite supérieure et inférieure est exactement la même, je saute le test des valeurs aberrantes (pour ne pas exclure toutes les lignes). Comme cela fonctionne parfaitement maintenant, j'en conclus que JMP pense que les chiffres sont tous exactement les mêmes.
Cordialement
S'il vous plaît contactez support@jmp.com pour signaler le problème.
Je ne peux pas évaluer l'impact de cette bizarrerie sur l'environnement de production de l'utilisateur. Et je ne peux pas parler pour l'esprit du développeur, s'il existe une solution.
Voici mon point de vue sous un angle numérique. Dans ce cas, toutes les données sont en effet des valeurs aberrantes, en fonction de la façon dont les valeurs aberrantes sont définies et de la façon dont notre ordinateur calcule. La racine réside dans le arithmétique en virgule flottante . Il y a deux problèmes avec ce cas :
- Le premier 0,4 ne peut pas être représenté exactement sur ordinateur. Imaginez que 0,4 dans l'ordinateur soit 0,40000000000000xx, avec un petit appendice à la fin.
- Deuxièmement, l'estimation du Huber Center n'est pas exactement de 0,4 non plus. Même la moyenne d'un groupe de 0,4 n'est pas de 0,4 en informatique, en raison également de l'arithmétique à virgule flottante. Imaginez ici que l'estimation du Huber Center est de 0,40000000000000yy, avec un autre petit appendice yy à la fin, mais différent de xx.
Voici la capture d'écran après avoir changé le format en Fixe avec une longueur suffisante pour les chiffres après la décimale. Vous pouvez voir l'appendice dans le Huber Center.

Étant donné que l'estimation de Huber Spread est nulle et que toutes les observations sont numériquement différentes du centre Huber, elles sont en effet à des années-lumière du centre Huber, elles sont donc des valeurs aberrantes selon la définition et la façon dont elles sont calculées dans notre ordinateur imparfait.