Le Fmax de Hartley

add

\bullet Présentation:

Né en 1950 suite aux travaux de Herman Otto Hartley, le F_{max} de Hartley ou test de Hartley est une approche paramétrique permettant de tester si les sous-échantillons X|_{Y = g_1}, \cdots, X|_{Y = g_K}, de X continue et restreint aux K \geq 2 groupes d’une variable Y, ont même variance.

L’hypothèse d’utilisation est que les sous-échantillons X|_{Y = g_1}, \cdots, X|_{Y = g_K} suivent une loi normale.

A savoir que le F_{max} de Hartley, malgré sa simplicité d’application, reste particulièrement sensible au non respect de l’hypothèse de normalité.

\bullet Le test:

Hypothèse préliminaire: X variable continue suivant une loi normale et Y qualitative à K \geq 2 groupes.

La statistique du test de Hartley est:

F_{max} = \frac{max_{k \in [1, \cdots, K]} (\sigma_k ^2)}{min_{k \in [1, \cdots, K]} (\sigma_k ^2)}

Elle suit une loi d’Hartley de paramètre (K, n-1) et l’hypothèse H_0 est: « Les variances sont égales / \sigma_1 ^2 = \cdots = \sigma_K ^2« .

Ci-dessous la table de la loi de Hartley:

add

Tendance pour le rejet de H_0:

Plus le F_{max} de Hartley est grand et plus nous avons de chance de rejeter H_0. En effet, la formule de la statistique de test se résume en un ratio entre la plus grande variance sur la plus petite,

F_{max} = \frac{max_{k \in [1, \cdots, K]} \sigma_k ^2}{min_{k \in [1, \cdots, K]} \sigma_k ^2}

Le rapport est logiquement borné par 1 et est atteint lorsque max_{k \in [1, \cdots, K]} \sigma_k ^2 \rightarrow min_{k \in [1, \cdots, K]} \sigma_k ^2, soit que la plus forte et la plus faible variance sont proches ce qui implique que l’ensemble des variances le sont.

Si ces deux valeurs sont fortement différentes alors max_{k \in [1, \cdots, K]} \sigma_k ^2 >>>> min_{k \in [1, \cdots, K]} \sigma_k ^2 \Rightarrow F_{max} \rightarrow \infty.

\bullet Tendance lorsque n \longrightarrow \infty:

– Nous avons fait tourner cinq simulations afin d’étudier la robustesse du F_{max} de Hartley. Nous générons des échantillons de taille 10, 10 ^2, 10 ^3, 10 ^4 puis 10 ^5 selon une loi normale de telle manière à ce que les variances soient bien distinctes et nous étudions si le fait d’augmenter le paramètre n a une influence sur le fait d’accepter H_0 à tort.

add

Nous constatons que nous rejetons à chaque fois l’hypothèse H_0, ce qui est en adéquation avec les hypothèses fixées. Toutefois, remarquons que la p-valeur associée au F_{max} de Hartley semble bornée par 0.0003.

– Nous avons fait tourner cinq simulations afin d’étudier la robustesse du F_{max} de Hartley. Nous générons des échantillons de taille 10, 10 ^2, 10 ^3, 10 ^4 puis 10 ^5 selon une loi normale de telle manière à ce que les variances soient assez proches et nous étudions si le fait d’augmenter le paramètre n a une influence sur le fait de rejeter H_0 à tort.

add

Nous constatons que passé un échantillon de taille N = 10 000 nous rejetons à tort H_0.

Nos simulations montrent bien que le test de F_{max} de Hartley est influencé par la taille d’échantillon.

\bullet Annexe théorique:

Initialement le F_{max} de Hartley a été conçu au cas où Y binaire. Nous présentons ici une esquisse de la démonstration permettant de généraliser cette statistique de test.

Le F_{max} de Hartley peut être vu comme le ratio entre la plus grande valeur et la plus petite valeur d’une série de K valeurs du \chi ^2 indépendantes et à n-1 degrés de liberté chacune. De ce fait, la fonction de répartition du F_{max} peut s’écrire de la manière suivante:

I(F) = P(F_{max} \leq F) = K \int_0 ^{\infty} p(x) [P(F_x) - P(x)] ^{K - 1} dx

Avec,

p(x) = \frac{1}{2 ^{\frac{n-1}{2}} \Gamma(\frac{n-1}{2})} x ^{\frac{n-1}{2} - 1} e ^{- \frac{x}{2}}, x \geq 0

P(F_x) = \int_0 ^{F_x} p(x) dx \rightarrow 1 quand x \rightarrow \infty

L’intervalle d’intégration peut être découpé en un x_0 tel que 1 - P(F_{x_0}) \leq \epsilon \approx 0 avec une précision suffisante. Nous pouvons alors développer I(F) en,

I(F) \approx K \int_0 ^{x_0} p(x) [P(F_x) - P(x)] ^{K - 1} dx + K \int_{x_0} ^{\infty} p(x) [1 - P(x)] ^{K - 1} dx

= K \int_0 ^{x_0} p(x) [P(F_x) - P(x)] ^{K - 1} dx + [1 - P(x_0)] ^K

 = I_1 + I_2

En utilisant la suite d’intervalles adaptée pour x et les valeurs appropriées de F, P(F_x) et P(x) peuvent être reportées à la loi du \chi ^2 à n-1 degrés de liberté. Nous avons finalement,

2 p(\chi_{n-1} ^2) = P(\chi_{n - 1 - 2} ^2) - P(\chi_{n-1} ^2) = P(\chi_{n - 3} ^2) - P(\chi_{n-1} ^2)

, qui permet de déterminer I_1 et I.

A partir de cette formule nous pouvons obtenir la distribution du F_{max} de Hartley pour (K,n-1) degrés de liberté.

\bullet Exemple:

Soit l’échantillon ci-dessous:

add

Les boxplots suivants offrent une visualisation plus concrète de notre jeu de données:

add

Cette représentation des données permet de voir que les variances de nos 3 groupes sont sensiblement les mêmes. Prouvons le statistiquement.

Commençons par déterminer les 3 variances de X restreint aux groupes de Y:

var(X|_{Y = 1}) = \sigma_1 ^2 = 13.19884

var(X|_{Y = 2}) = \sigma_2 ^2 = 11.45007

var(X|_{Y = 3}) = \sigma_3 ^2 = 9.107011

Nous pouvons désormais calculer le F_{max} de Hartley au travers de la statistique de test:

F_{max} = \frac{max_{k \in [1,2,3]} \sigma_k ^2}{min_{k \in [1,2,3]} \sigma_k ^2}

= \frac{\sigma_3 ^2}{\sigma_1 ^2}

= \frac{13.19884}{9.107011}

= 1.449305

Si nous reportons cette statistique de test à la table de la loi de Hartley pour les degrés de liberté suivants: (3, 20-1) = (3,19) nous trouvons une p-valeur de 0,7045 >>>>>> 5 \%. Nous en concluons que nous ne pouvons rejeter H_0 et donc que les variances sont égales.

\bullet Application informatique:

Procédure SAS: http://analytics.ncsu.edu/sesug/2014/SD-05.pdf

Package et fonction R:

Fmax_Hartley = function(DATA) {

# Fmax de Hartley sur l’ensemble des variables disponibles dans la base de données. Le format des données doit être: colonne 1 -> qualitative à K >= 2 groupes, colonnes suivantes -> continue

# Chargement de la librairie contenant la table de la loi de Hartley
library(SuppDists)

 # Adaptation de la base de données
DATA = na.omit(DATA)
DATA = as.data.frame(DATA)
DATA[,1] = as.factor(DATA[,1])
# Récupération des informations descriptives
n = dim(DATA)[1]
P = dim(DATA)[2]-1
biblioY = summary(DATA[,1])
K = length(biblioY)
# Création de la matrice de résultats finaux
Resultats = matrix(0,P,K+10)

 # Application du Fmax de Hartley pour toutes les variables de la base de données
for (p in 1:P) {
variance = matrix(0,1,K)
# Calcul des différentes variances
for (k in 1:K) {variance[k] = var(DATA[which(DATA[,1]==names(biblioY[k])),p+1])}
# Recherche des valeurs minimales et maximales des variances
MAXv = max(variance)
MINv = min(variance)
 # Calcul du Fmax de Hartley
Fmax = MAXv/MINv
# Report de la statistique de test à la table de la loi de Hartley pour déterminer la p-valeur
pvalue = 1 – pmaxFratio(Fmax,n-1,K)
 # Insertion de l’ensemble des résultats pour la variable en cours
Resultats[p,] = c(names(DATA)[p+1],n,variance,names(biblioY[which(variance==MINv,arr.ind=TRUE)[2]]),names(biblioY[which(variance==MAXv,arr.ind=TRUE)[2]]),Fmax,pvalue,pvalue<0.0001,pvalue<0.01,pvalue<0.05,pvalue<0.1)
}

 # Préparation et impression de la matrice de résultats
Resultats = as.data.frame(Resultats)
names(Resultats) = c(« VAR », »Pop »,names(biblioY), »Min_var », »Max_var », »Fmax », »p-value », »p<0.0001″, »p<0.01″, »p<0.05″, »p<0.1″)
return(Resultats)

}

\bullet Bibliographie:

– Le site: http://unt-ori2.crihan.fr/unspf/2009_Limoges_Vignoles_TestsComparaisons/co/08-5-1%20introduction.html

– The Use of Range in Analysis of Variance de Herman Otto Hartley

– Upper 5 and 1 \% points of maximum F-ration de H. A. David