Test de Brown – Forsythe dans R : exemple étape par étape



Une ANOVA unidirectionnelle est utilisée pour déterminer s’il existe ou non une différence significative entre les moyennes de trois groupes indépendants ou plus.

L’une des hypothèses d’une ANOVA unidirectionnelle est que les variances des populations dont proviennent les échantillons sont égales.

L’un des moyens les plus courants de tester cela consiste à utiliser un test de Brown-Forsythe , qui est un test statistique qui utilise les hypothèses suivantes :

  • H 0 : Les variances entre les populations sont égales.
  • H A : Les écarts entre les populations ne sont pas égaux.

Si la valeur p du test est inférieure à un certain niveau de signification (par exemple α = 0,05), alors nous rejetons l’hypothèse nulle et concluons que les variances ne sont pas égales entre les différentes populations.

Ce didacticiel fournit un exemple étape par étape de la façon d’effectuer un test de Brown-Forsythe dans R.

Étape 1 : Saisissez les données

Supposons que nous aimerions savoir si trois programmes d’entraînement différents conduisent ou non à différents niveaux de perte de poids.

Pour tester cela, nous recrutons 90 personnes et en assignons 30 au hasard pour utiliser chaque programme. Nous mesurons ensuite la perte de poids de chaque personne au bout d’un mois.

L’ensemble de données suivant contient des informations sur la quantité de poids perdue avec chaque programme :

#make this example reproducible
set.seed(0)

#create data frame
data <- data.frame(program = as.factor(rep(c("A", "B", "C"), each = 30)),
                   weight_loss = c(runif(30, 0, 3),
                                   runif(30, 0, 5),
                                   runif(30, 1, 7)))

#view first six rows of data frame
head(data)

#  program weight_loss
#1       A   2.6900916
#2       A   0.7965260
#3       A   1.1163717
#4       A   1.7185601
#5       A   2.7246234
#6       A   0.6050458

Étape 2 : Résumer et visualiser les données

Avant d’effectuer un test de Brown-Forsythe, nous pouvons créer des diagrammes en boîte pour visualiser la variance de la perte de poids pour chaque groupe :

boxplot(weight_loss ~ program, data = data)

Nous pouvons également calculer la variance de la perte de poids dans chaque groupe :

#load dplyr package
library(dplyr)

#calculate variance of weight loss by group
data %>%
  group_by(program) %>%
  summarize(var=var(weight_loss))

# A tibble: 3 x 2
  program   var
     
1 A       0.819
2 B       1.53 
3 C       2.46 

Nous pouvons voir que les variances entre les groupes diffèrent, mais pour déterminer si ces différences sontstatistiquement significatives , nous pouvons effectuer le test de Brown-Forsythe.

Étape 3 : Effectuer le test de Brown-Forsythe

Pour effectuer un test de Brown-Forsythe dans R, nous pouvons utiliser la fonction bf.test() du package onewaytests :

#load onewaytests package
library(onewaytests)

#perform Brown-Forsythe test
bf.test(weight_loss ~ program, data = data)

  Brown-Forsythe Test (alpha = 0.05) 
------------------------------------------------------------- 
  data : weight_loss and program 

  statistic  : 30.83304 
  num df     : 2 
  denom df   : 74.0272 
  p.value    : 1.816529e-10 

  Result     : Difference is statistically significant. 
------------------------------------------------------------- 

La valeur p du test s’avère inférieure à 0,000 et, comme l’indique le résultat, les différences de variances entre les trois groupes sont statistiquement significatives.

Prochaines étapes

Si vous ne parvenez pas à rejeter l’hypothèse nulle du test de Brown-Forsythe, vous pouvez alors procéder à une ANOVA unidirectionnelle sur les données.

Cependant, si vous rejetez l’hypothèse nulle, cela signifie que l’hypothèse d’égalité des variances est violée. Dans ce cas, vous avez deux options :

1. Procédez quand même à une ANOVA unidirectionnelle.

Il s’avère qu’une ANOVA unidirectionnelle est en fait robuste aux variances inégales tant que la plus grande variance n’est pas supérieure à 4 fois la plus petite variance.

À l’étape 2 de l’exemple ci-dessus, nous avons constaté que la plus petite variance était de 0,819 et la plus grande variance était de 2,46. Ainsi, le rapport de la variance la plus grande à la plus petite est 2,46 / 0,819 = 3,003 .

Puisque cette valeur est inférieure à 4, nous pourrions simplement procéder à l’ANOVA unidirectionnelle.

2. Effectuez un test de Kruskal-Wallis

Si le rapport de la plus grande variance à la plus petite variance est supérieur à 4, on peut plutôt choisir d’effectuer un test de Kruskal-Wallis . Ceci est considéré comme l’équivalent non paramétrique de l’ANOVA unidirectionnelle.

Vous pouvez trouver un exemple étape par étape d’un test de Kruskal-Wallis dans R ici .

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *