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.