Comment calculer la valeur P d’une statistique F dans R



Un test F produit une statistique F. Pour trouver la valeur p associée à une statistique F dans R, vous pouvez utiliser la commande suivante :

pf(fstat, df1, df2, lower.tail = FALSE)

  • fstat – la valeur de la statistique f
  • df1 – degrés de liberté 1
  • df2 – degrés de liberté 2
  • lower.tail – s’il faut ou non renvoyer la probabilité associée à la queue inférieure de la distribution F. C’est VRAI par défaut.

Par exemple, voici comment trouver la valeur p associée à une statistique F de 5, avec des degrés de liberté 1 = 3 et des degrés de liberté 2 = 14 :

pf(5, 3, 14, lower.tail = FALSE)

#[1] 0.01457807

L’une des utilisations les plus courantes d’un test F consiste à tester la signification globale d’un modèle de régression . Dans l’exemple suivant, nous montrons comment calculer la valeur p de la statistique F pour un modèle de régression.

Exemple : Calcul de la valeur p à partir de la statistique F

Supposons que nous disposions d’un ensemble de données qui montre le nombre total d’heures étudiées, le nombre total d’examens préparatoires passés et la note finale obtenue à l’examen pour 12 étudiants différents :

#create dataset
data <- data.frame(study_hours = c(3, 7, 16, 14, 12, 7, 4, 19, 4, 8, 8, 3),
                   prep_exams = c(2, 6, 5, 2, 7, 4, 4, 2, 8, 4, 1, 3),
                   final_score = c(76, 88, 96, 90, 98, 80, 86, 89, 68, 75, 72, 76))

#view first six rows of dataset
head(data)

#  study_hours prep_exams final_score
#1           3          2          76
#2           7          6          88
#3          16          5          96
#4          14          2          90
#5          12          7          98
#6           7          4          80

Ensuite, nous pouvons adapter un modèle de régression linéaire à ces données en utilisant les heures d’étude et les examens préparatoires comme variables prédictives et le score final comme variable de réponse. Ensuite, nous pouvons visualiser le résultat du modèle :

#fit regression model
model <- lm(final_score ~ study_hours + prep_exams, data = data)

#view output of the model
summary(model)

#Call:
#lm(formula = final_score ~ study_hours + prep_exams, data = data)
#
#Residuals:
#    Min      1Q  Median      3Q     Max 
#-13.128  -5.319   2.168   3.458   9.341 
#
#Coefficients:
#            Estimate Std. Error t value Pr(>|t|)    
#(Intercept)   66.990      6.211  10.785  1.9e-06 ***
#study_hours    1.300      0.417   3.117   0.0124 *  
#prep_exams     1.117      1.025   1.090   0.3041    
#---
#Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
#Residual standard error: 7.327 on 9 degrees of freedom
#Multiple R-squared:  0.5308,	Adjusted R-squared:  0.4265 
#F-statistic: 5.091 on 2 and 9 DF,  p-value: 0.0332

Sur la toute dernière ligne du résultat, nous pouvons voir que la statistique F pour le modèle de régression global est 5,091 . Cette statistique F a 2 degrés de liberté pour le numérateur et 9 degrés de liberté pour le dénominateur. R calcule automatiquement que la valeur p pour cette statistique F est 0,0332 .

Afin de calculer nous-mêmes cette valeur p équivalente, nous pourrions utiliser le code suivant :

pf(5.091, 2, 9, lower.tail = FALSE)

#[1] 0.0331947

Notez que nous obtenons la même réponse (mais avec plus de décimales affichées) que la sortie de régression linéaire ci-dessus.

Ajouter un commentaire

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