The definition of containment follows from the SAS documentation on "The Four Types of Estimable Functions".
term_contain(term, factors, dataClasses, term_names)
character; name of a model term and one of term_names
.
the result of attr(terms_object, "factors")
.
the result of
attr(terms(model, fixed.only=FALSE), "dataClasses")
. Note that
fixed.only=FALSE
is only needed for merMod
objects, but does
no harm for lm
objects.
the result of attr(terms_object, "term.labels")
.
a logical vector indicating for each term in term_names
if
it contains term
.
Containment is defined for two model terms, say, F1 and F2 as: F1 is contained in F2 (F2 contains F1) if
F1 and F2 involve the same continuous variables (if any)
F2 involve more factors than F1
All factors in F1 (if any) are part of F2
The intercept, though not really a model term, is defined by SAS to be contained in all factor terms, but it is not contained in any effect involving a continuous variable.