getLRT.RdPerforms a likelihood ratio test (LRT) between two nested models. Supports
models of class lm, lmerMod, glmerMod, lme, and gls.
getLRT(fit1, fit0)A named numeric vector with:
Test statistic (twice the difference in log-likelihoods).
Degrees of freedom (difference in number of parameters).
P-value from the chi-squared distribution.
## lm
fit1 <- lm(mpg ~ wt + hp, data = mtcars)
fit0 <- lm(mpg ~ wt, data = mtcars)
getLRT(fit1, fit0)
#> tobs df p.value
#> 1.137709e+01 1.000000e+00 7.435551e-04
## lmerMod
if (requireNamespace("lme4", quietly = TRUE)) {
library(lme4)
fit1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy, REML = FALSE)
fit0 <- lmer(Reaction ~ 1 + (Days | Subject), sleepstudy, REML = FALSE)
getLRT(fit1, fit0)
}
#> tobs df p.value
#> 2.353654e+01 1.000000e+00 1.225640e-06
## glmerMod
if (requireNamespace("lme4", quietly = TRUE)) {
library(lme4)
data(cbpp)
fit1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd),
data = cbpp, family = binomial)
fit0 <- glmer(cbind(incidence, size - incidence) ~ 1 + (1 | herd),
data = cbpp, family = binomial)
getLRT(fit1, fit0)
}
#> tobs df p.value
#> 2.560994e+01 3.000000e+00 1.151006e-05
## lme
if (requireNamespace("nlme", quietly = TRUE)) {
library(nlme)
fit1 <- lme(distance ~ age + Sex, random = ~1 | Subject,
data = Orthodont, method = "ML")
fit0 <- lme(distance ~ age, random = ~1 | Subject,
data = Orthodont, method = "ML")
getLRT(fit1, fit0)
}
#> tobs df p.value
#> 8.533057005 1.000000000 0.003487534
## gls
if (requireNamespace("nlme", quietly = TRUE)) {
library(nlme)
fit1 <- gls(mpg ~ wt + hp, data = mtcars, method = "ML")
fit0 <- gls(mpg ~ wt, data = mtcars, method = "ML")
getLRT(fit1, fit0)
}
#> tobs df p.value
#> 1.137709e+01 1.000000e+00 7.435551e-04