Ce n'est pas normal, ou pas ?
Dans plusieurs discussions récentes sur l'utilisation de tests paramétriques, la question de savoir si les données sont normalement distribuées (ou passent un test d'ajustement pour la normalité) a été soulevée. Dans chacun des cas, la taille de l'échantillon était relativement faible (< 30) et la conclusion était que les données ne provenaient pas d'une population normalement distribuée. Les étapes suivantes impliquaient des étapes de transformation alambiquées qui compliquaient excessivement l'analyse.
J'ai commencé à me demander quelles étaient les chances d'échouer à un test d'ajustement lorsque la population sous-jacente était en fait distribuée normalement, ou quel était le taux d'erreur de type I. D'un autre côté, si la population était juste un peu biaisée, non normale, à quelle fréquence réussirait-elle un test d'ajustement ?
Pour commencer, j'ai généré des ensembles de 10 échantillons à partir d'une population distribuée normalement et d'une population distribuée gamma en utilisant certaines fonctions aléatoires comme formules dans un tableau de données. Random normal (20,4) et Random Gamma (20). Les statistiques de population montrent clairement que la distribution normale est normale et que la distribution gamma échoue à un test de normalité (figure 1).

Figure 1. Comparaisons de distribution de populations à partir d'une distribution normale ou gamma. La taille de l'échantillon est de 10 000. Avec un échantillon de grande taille, les queues de la population distribuée gamma (panneau de gauche) se situent clairement en dehors des intervalles de confiance à 95 % (lignes pointillées rouges) de la ligne de régression de probabilité normale dans le graphique quantile normal.
Français Les grands ensembles de données (n = 100 000) ont été divisés en groupes de 10 et chaque sous-groupe (n = 10 000) a été testé pour la normalité en utilisant les mêmes tests que ceux utilisés pour l'ensemble de données de la figure 1. Les petites valeurs de probabilité rejettent l'hypothèse nulle selon laquelle les données proviennent d'une distribution normale, de sorte qu'un seuil de 0,05 a été utilisé pour déterminer si le sous-groupe a réussi le test d'adéquation. Les résultats tabulés sont présentés dans la figure 2. Les tests d'adéquation d'Anderson-Darling et de Shapiro-Wilk ont tous deux signalé une proportion similaire de groupes d'échantillons. Les groupes de la population normale ont échoué environ 5 % du temps et les groupes de la population distribuée gamma ont réussi environ 94 % (ont échoué environ 6 %) du temps.

Figure 2. Proportion d'échantillons échouant aux tests d'adéquation. Les groupes d'échantillons (n=10) avec une probabilité d'être issus d'une distribution normale <= 0,05 sont étiquetés « 1 » et les groupes réussissant sont étiquetés « 0 ».
J'ai été un peu surpris par le taux d'erreur de type 1 pour les échantillons de la distribution normale (je n'aurais peut-être pas dû l'être...). Cela signifie qu'avec un petit échantillon, environ 1 fois sur 20, les données d'une population sous-jacente distribuée normalement échoueront à un test d'adéquation. Les échantillons d'une population légèrement biaisée avaient un taux de détection similaire.
De toute évidence, le problème est la petite taille de l'échantillon. L'étape suivante consistait à effectuer les mêmes groupes de test avec des tailles d'échantillon de plus en plus grandes. Le taux de faux positifs diminuera certainement considérablement avec un échantillon un peu plus grand. L'étape suivante consistait à tester des sous-groupes de 30, avec peu d'effet, suivis de sous-groupes de 100, 300 et 1000. Maintenant, juste pour garder les choses égales, je voulais n=10 000 pour le nombre de sous-groupes ; cependant, les tableaux ont commencé à devenir gros et l'analyse a commencé à devenir lente, alors j'ai arrêté avec la taille d'échantillon de 1000. Principalement parce que je ne suis pas très patient et que la tendance devenait évidente. Dans mon domaine scientifique, une taille d'échantillon de 3 était le minimum, 10 était beaucoup, et 30 devenait tout simplement ridicule. Il s'avère que le bon nombre est probablement beaucoup plus élevé pour vraiment évaluer la qualité de l'ajustement de manière fiable. La figure 3 inclut la proportion d'échantillons échouant aux tests de qualité de l'ajustement pour les tailles d'échantillon que j'ai utilisées.

Figure 3. Proportion d'échantillons anormaux. La proportion d'échantillons anormaux pour chaque taille d'échantillon est représentée graphiquement pour les tests d'Anderson-Darling et de Shapiro-Wilk. Les échantillons provenaient d'une population avec une distribution normale.
D'après les données et les analyses de ces simulations, je suis plus prudent quant à l'acceptation des résultats d'un test d'adéquation sans examiner attentivement les données. J'hésiterais beaucoup à ajouter une statistique d'adéquation aux critères d'acceptation ou à une procédure opérationnelle standard pour la gestion des données. Utiliser des statistiques à l'aveugle est-il aussi sûr que de courir avec des ciseaux ? Je suppose que cela soulève la question de savoir comment mieux évaluer les hypothèses de normalité des tests paramétriques. C'est peut-être un bon sujet pour un futur article de blog.
Si vous souhaitez améliorer la méthode que j'ai utilisée pour contester le taux de faux positifs d'un test de normalité, ou si vous souhaitez simplement essayer de reproduire mes résultats, j'ai inclus le script que j'ai utilisé pour générer des données ci-dessous. Dans ce script, il y a des notes sur l'endroit où modifier les valeurs pour la taille du tableau et la taille de l'échantillon.
Names Default To Here( 1 );
dt = New Table( "Source Data",
Add Rows( 10000 ), //Change row number when using larger sample sizes
New Column( "Normal", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Normal( 20, 4 ) ) ),
New Column( "Gamma", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Gamma( 20 ) ) ),
//Change the number of times the group column repeats for larger or smaller sample sizes
New Column( "group", Numeric, "Continuous", Format( "Best", 12 ), Formula( Sequence( 1, N Rows(), 1, 10 ) ) )
);
rpt = New Window( "Distribution",
dt << Distribution(
Continuous Distribution(
Column( :Normal ),
Quantiles( 0 ),
Summary Statistics( 0 ),
Process Capability( 0 ),
Fit Normal( Goodness of Fit( 1 ) )
),
Continuous Distribution(
Column( :Gamma ),
Quantiles( 0 ),
Summary Statistics( 0 ),
Process Capability( 0 ),
Fit Normal( Goodness of Fit( 1 ) )
),
By( :group )
)
);
Wait( 0 );
//Get tables from the report
dt1 = rpt["Distributions", "group=1", "Normal", "Fitted Normal Distribution", "Goodness-of-Fit Test", Table Box( 1 )] << Make Combined Data Table;
dt1 << set name( "AD" );
dt2 = rpt["Distributions", "group=1", "Normal", "Fitted Normal Distribution", "Goodness-of-Fit Test", Table Box( 2 )] << Make Combined Data Table;
dt2 << set name( "SW" );
rpt << Close Window;
//table formatting
dt1 << New Formula Column( Operation( Category( "Row" ), "Row" ), Columns( :Table ) );
dt2 << New Formula Column( Operation( Category( "Row" ), "Row" ), Columns( :Table ) );
dt1:Column 1 << Set Name( "Goodness of Fit Test" );
dt2:Column 1 << Set Name( "Goodness of Fit Test" );
Column( dt1, 7 ) << Set Name( "Fit" );
Column( dt2, 7 ) << Set Name( "Fit" );
Column( dt1, 8 ) << Set Name( "Prob" );
Column( dt2, 8 ) << Set Name( "Prob" );
dt3 = dt1 << Concatenate( dt2, Output Table( "Goodness of Fit Tests" ) );
Close( dt, nosave );Close( dt1, nosave );Close( dt2, nosave );
sfsdff
J'ai commencé à me demander quelles étaient les chances d'échouer à un test d'ajustement lorsque la population sous-jacente était en fait distribuée normalement, ou quel était le taux d'erreur de type I. D'un autre côté, si la population était juste un peu biaisée, non normale, à quelle fréquence réussirait-elle un test d'ajustement ?
Une autre considération intéressante (en particulier si vous effectuez une analyse de capacité de processus) est la probabilité que la distribution normale n'apparaisse pas en tête de liste lors de la comparaison des distributions basées sur l'AICc.