Hoe de linearhypothese()-functie in r te gebruiken


U kunt de functie LinearHypothese() uit het car- pakket in R gebruiken om lineaire hypothesen in een specifiek regressiemodel te testen.

Deze functie gebruikt de volgende basissyntaxis:

 linearHypothesis(fit, c(" var1=0 ", " var2=0 "))

Dit specifieke voorbeeld test of de regressiecoëfficiënten var1 en var2 in het model dat fit wordt genoemd gezamenlijk gelijk zijn aan nul.

Het volgende voorbeeld laat zien hoe u deze functie in de praktijk kunt gebruiken.

Voorbeeld: hoe u de functie LinearHypothese() in R gebruikt

Stel dat we het volgende gegevensframe in R hebben dat het aantal uren aan studeren toont, het aantal afgelegde oefenexamens en de eindexamenscore van 10 studenten in een klas:

 #create data frame
df <- data.frame(score=c(77, 79, 84, 85, 88, 99, 95, 90, 92, 94),
                 hours=c(1, 1, 2, 3, 2, 4, 4, 2, 3, 3),
                 prac_exams=c(2, 4, 4, 2, 4, 5, 4, 3, 2, 1))

#view data frame
df

   score hours prac_exams
1 77 1 2
2 79 1 4
3 84 2 4
4 85 3 2
5 88 2 4
6 99 4 5
7 95 4 4
8 90 2 3
9 92 3 2
10 94 3 1

Stel nu dat we het volgende meervoudige lineaire regressiemodel in R willen passen:

Examenscore = β 0 + β 1 (uren) + β 2 (praktijkexamens)

We kunnen de functie lm() gebruiken om dit model aan te passen:

 #fit multiple linear regression model
fit <- lm(score ~ hours + prac_exams, data=df)

#view summary of model
summary(fit)

Call:
lm(formula = score ~ hours + prac_exams, data = df)

Residuals:
    Min 1Q Median 3Q Max 
-5.8366 -2.0875 0.1381 2.0652 4.6381 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 72.7393 3.9455 18.436 3.42e-07 ***
hours 5.8093 1.1161 5.205 0.00125 ** 
prac_exams 0.3346 0.9369 0.357 0.73150    
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.59 on 7 degrees of freedom
Multiple R-squared: 0.8004, Adjusted R-squared: 0.7434 
F-statistic: 14.03 on 2 and 7 DF, p-value: 0.003553

Stel nu dat we willen testen of de urencoëfficiënt en de oefenexamens beide nul zijn.

We kunnen hiervoor de functie LinearHypothese() gebruiken:

 library (car)

#perform hypothesis test for hours=0 and prac_exams=0
linearHypothesis(fit, c(" hours=0 ", " prac_exams=0 "))

Linear hypothesis testing

Hypothesis:
hours = 0
prac_exams = 0

Model 1: restricted model
Model 2: score ~ hours + prac_exams

  Res.Df RSS Df Sum of Sq F Pr(>F)   
1 9 452.10                                
2 7 90.24 2 361.86 14.035 0.003553 **
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

De hypothesetest retourneert de volgende waarden:

  • F-teststatistiek : 14.035
  • p-waarde : .003553

Deze specifieke hypothesetest maakt gebruik van de volgende nul- en alternatieve hypothesen:

  • H 0 : Beide regressiecoëfficiënten zijn gelijk aan nul.
  • H A : Minstens één regressiecoëfficiënt is niet gelijk aan nul.

Omdat de p-waarde van de test (0,003553) kleiner is dan 0,05, verwerpen we de nulhypothese.

Met andere woorden: we hebben niet genoeg bewijs om te zeggen dat de regressiecoëfficiënten voor uren en praktijkexamens beide gelijk zijn aan nul.

Aanvullende bronnen

De volgende zelfstudies bieden aanvullende informatie over lineaire regressie in R:

Hoe regressie-uitvoer in R te interpreteren
Hoe eenvoudige lineaire regressie uit te voeren in R
Hoe meervoudige lineaire regressie uit te voeren in R
Hoe logistische regressie uit te voeren in R

Einen Kommentar hinzufügen

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