Hoe een waarschijnlijkheidsratiotest uit te voeren in r
Een waarschijnlijkheidsratiotest vergelijkt de ‘goodness of fit’ van twee geneste regressiemodellen.
Een genest model is eenvoudigweg een model dat een subset van voorspellende variabelen in het algehele regressiemodel bevat.
Stel dat we bijvoorbeeld het volgende regressiemodel hebben met vier voorspellende variabelen:
Y = β 0 + β 1 x 1 + β 2 x 2 + β 3 x 3 + β 4 x 4 + ε
Een voorbeeld van een genest model is het volgende model met slechts twee van de oorspronkelijke voorspellende variabelen:
Y = β 0 + β 1 x 1 + β 2 x 2 + ε
Om te bepalen of deze twee modellen significant van elkaar verschillen, kunnen we een waarschijnlijkheidsratiotest uitvoeren waarbij gebruik wordt gemaakt van de volgende nul- en alternatieve hypothesen:
H 0 : Het volledige model en het geneste model passen even goed bij de gegevens. U moet dus een genest model gebruiken .
H A : Het volledige model past aanzienlijk beter bij de gegevens dan het geneste model. U moet dus het volledige sjabloon gebruiken .
Als de p-waarde van de test onder een bepaald significantieniveau ligt (bijvoorbeeld 0,05), kunnen we de nulhypothese verwerpen en concluderen dat het volledige model een significant betere fit biedt.
In het volgende voorbeeld ziet u hoe u een waarschijnlijkheidsratiotest uitvoert in R.
Voorbeeld: Likelihood ratio-test in R
De volgende code laat zien hoe u de volgende twee regressiemodellen in R kunt passen met behulp van gegevens uit de ingebouwde mtcars- gegevensset:
Volledig model: mpg = β 0 + β 1 beschikbaar + β 2 carb + β 3 pk + β 4 cil
Model: mpg = β 0 + β 1 beschikbaar + β 2 carb
We zullen de functie lrtest() van het pakket lmtest gebruiken om een waarschijnlijkheidsratiotest uit te voeren op deze twee modellen:
library (lmtest) #fit full model model_full <- lm(mpg ~ disp + carb + hp + cyl, data = mtcars) #fit reduced model model_reduced <- lm(mpg ~ disp + carb, data = mtcars) #perform likelihood ratio test for differences in models lrtest(model_full, model_reduced) Likelihood ratio test Model 1: mpg ~ disp + carb + hp + cyl Model 2: mpg ~ available + carb #Df LogLik Df Chisq Pr(>Chisq) 1 6 -77.558 2 4 -78.603 -2 2.0902 0.3517
Uit het resultaat kunnen we zien dat de chikwadraattoetsstatistiek 2,0902 is en de overeenkomstige p-waarde 0,3517 .
Omdat deze p-waarde niet kleiner is dan 0,05, zullen we er niet in slagen de nulhypothese te verwerpen.
Dit betekent dat het volledige model en het geneste model even goed bij de gegevens passen. We moeten daarom het geneste model gebruiken, omdat de extra voorspellende variabelen in het volledige model geen significante verbetering van de fit opleveren.
We zouden dan nog een waarschijnlijkheidsratiotest kunnen uitvoeren om te bepalen of een model met één enkele voorspellende variabele significant verschilt van een model met beide voorspellers:
library (lmtest) #fit full model model_full <- lm(mpg ~ disp + carb, data = mtcars) #fit reduced model model_reduced <- lm(mpg ~ disp, data = mtcars) #perform likelihood ratio test for differences in models lrtest(model_full, model_reduced) Likelihood ratio test Model 1: mpg ~ available + carb Model 2: mpg ~ available #Df LogLik Df Chisq Pr(>Chisq) 1 4 -78.603 2 3 -82.105 -1 7.0034 0.008136 ** --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Uit het resultaat kunnen we zien dat de p-waarde van de waarschijnlijkheidsratio-test 0,008136 is. Omdat dit getal kleiner is dan 0,05, zouden we de nulhypothese verwerpen.
We zouden dus kunnen concluderen dat het model met twee voorspellers een significante verbetering in de fit oplevert ten opzichte van het model met één voorspeller.
Ons uiteindelijke model zou dus zijn:
mpg = β 0 + β 1 beschikbaar + β 2 koolhydraten
Aanvullende bronnen
Hoe eenvoudige lineaire regressie uit te voeren in R
Hoe meervoudige lineaire regressie uit te voeren in R
Hoe betekeniscodes in R te interpreteren