Hoe de p-waarde van een f-statistiek in r te berekenen


Een F-toets levert een F-statistiek op. Om de p-waarde te vinden die is gekoppeld aan een F-statistiek in R, kunt u de volgende opdracht gebruiken:

pf(fstat, df1, df2, onder.staart = ONWAAR)

  • fstat – de waarde van de f-statistiek
  • df1 – vrijheidsgraden 1
  • df2 – vrijheidsgraden 2
  • lower.tail – of de waarschijnlijkheid die hoort bij de onderste staart van de F-verdeling wel of niet moet worden geretourneerd. Dit is standaard WAAR.

Hier ziet u bijvoorbeeld hoe u de p-waarde kunt vinden die is gekoppeld aan een F-statistiek van 5, met vrijheidsgraden 1 = 3 en vrijheidsgraden 2 = 14:

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

#[1] 0.01457807

Een van de meest voorkomende toepassingen van een F-test is het testen van de algehele betekenis van een regressiemodel . In het volgende voorbeeld laten we zien hoe u de p-waarde van de F-statistiek voor een regressiemodel kunt berekenen.

Voorbeeld: Berekening van de p-waarde uit de F-statistiek

Laten we zeggen dat we een dataset hebben die het totale aantal gestudeerde uren, het totale aantal afgelegde voorbereidende examens en het eindexamencijfer voor 12 verschillende studenten toont:

 #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

Vervolgens kunnen we een lineair regressiemodel op deze gegevens aansluiten, waarbij we studie-uren en voorbereidende examens gebruiken als voorspellende variabelen en de eindscore als responsvariabele. Vervolgens kunnen we het resultaat van het model visualiseren:

 #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    
#---
#Significant. 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

Op de allerlaatste rij van het resultaat kunnen we zien dat de F-statistiek voor het algehele regressiemodel 5.091 is. Deze F-statistiek heeft 2 vrijheidsgraden voor de teller en 9 vrijheidsgraden voor de noemer. R berekent automatisch dat de p-waarde voor deze F-statistiek 0,0332 is.

Om deze equivalente p-waarde zelf te berekenen, zouden we de volgende code kunnen gebruiken:

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

#[1] 0.0331947

Merk op dat we hetzelfde antwoord krijgen (maar met meer decimalen weergegeven) als de bovenstaande lineaire regressie-uitvoer.

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert