View source: R/model_comparison.R
| compare_nested_models | R Documentation |
Performs a likelihood-ratio test for two nested glmmTMB models. The models
may use ordinary data frames or dyadMLM_data
objects, and their calls do not need to refer to the same R object. Models may
be supplied in either order. The model with fewer estimated parameters is
shown first in the result.
compare_nested_models(model1, model2, alpha = 0.05)
model1, model2 |
Two fitted |
alpha |
Significance level used for the printed conclusion. Must be one number between 0 and 1. |
Both model calls must use named data-frame objects that remain available when
the models are compared. The checks assume these objects have not been
modified since fitting. All ordinary data columns must be identical,
including their types and attributes. For dyadMLM_data, package-generated
columns may differ, but the original columns must be identical. Ordinary and
prepared data may be compared with each other. Dyad metadata are checked when
both models use dyadMLM_data. The function also checks fitted rows,
outcomes, weights and offsets, model family and link, maximum-likelihood
estimation, and model convergence. Each model must use the same untransformed
response column.
Because the test requires maximum-likelihood fits, models fitted with
priors in glmmTMB::glmmTMB() are rejected. Their estimates are maximum a
posteriori, not maximum likelihood.
These checks establish that the models use equivalent observations. They
cannot establish that one model is mathematically nested within the other.
The caller remains responsible for supplying genuinely nested models. The
usual chi-squared reference distribution may also be inappropriate when
tested variance parameters are on the boundary.
alpha affects only the printed conclusion, not the test results.
An anova-style data frame containing model degrees of freedom,
information criteria, log-likelihoods, the likelihood-ratio statistic, and
its chi-squared p-value. When printed, a short conclusion interprets the
test at the selected significance level.
if (requireNamespace("glmmTMB", quietly = TRUE)) {
restricted_data <- prepare_dyad_data(
dyads_cross,
dyad = coupleID,
member = personID,
role = gender,
# All three observed compositions in `dyads_cross` are detected and retained
# by default. This example focuses on `female-male` dyads, so we restrict the
# analysis here.
keep_compositions = "female-male",
include_arbitrary_member_contrast = TRUE,
seed = 123
)
full_data <- restricted_data
# Compare an exchangeable model with a distinguishable model.
restricted_model <- glmmTMB::glmmTMB(
closeness ~ 1 +
us(1 | coupleID) +
us(0 + .member_contrast_arbitrary | coupleID),
dispformula = ~ 0,
data = restricted_data
)
full_model <- glmmTMB::glmmTMB(
closeness ~ 0 + gender +
us(0 + gender | coupleID),
dispformula = ~ 0,
data = full_data
)
# Test equal means and residual variances jointly.
compare_nested_models(restricted_model, full_model)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.