Element Parsing
.obj
s is parsed into a name list that is used to determine
the required number of combinations of subsets of the name list
included the dominance analysis. How the name list is obtained
depends on .obj
's class.
formula_list
The formula_list
creates a name list out of response-term pairs.
The terms are obtained using terms.formula
applied to each individual
formula in the list.
Additional Details
By default, names obtained from .obj
are all considered separate
'value-generating names' with the same priority.
Each value-generating name will be a separate element when
computing combination subsets and will be compared to all other
value-generating names.
formula
s and formula_list
elements are assumed to have an intercept
except if explicitly removed with a - 1
in the formula
(s) in .obj
.
If removed, the intercept will be removed in all formula
(s) in each
sapply
-ed subset to .fct
.
If offset
s are included, they are passed, like intercepts, while
sapply
-ing subsets to .fct
.
Changing Element Parsing
All methods' default behavior that considers all value-generating names
to be of equal priority can be overriden using .set
and .all
arguments.
Names in .set
and .all
must also be present in .obj
.
.set
.set
binds together value-generating names such that
they are of equal priority and are never separated when submitted to
.fct
.
Thus, the elements in .set
bound together contribute jointly to the
returned value and are considered, effectively, a single
value-generating name.
If list elements in .set
are named, this name will be used in all
returned results as the name of the set of value-generating names bound
together.
.set
thus considers the value-generating names an 'inseparable set' in the
dominance analysis and are always included or excluded together.
.all
.all
gives immediate priority to value-generating names.
The value-generating names in .all
are bound together, are
ascribed their full amount of the returned value from .fct
, and
are not adjusted for contribution of other value-generating names.
The value of .fct
ascribed to the value-generating names bound
together in .all
is returned separately from, and not directly
compared to, the other value-generating names.
The formula
method for .all
does not allowthe submitted formula to have
a left hand side.
.all
includes the value-generating names in 'all subsets' submitted to
the dominance analysis which effectively removes the value associated with
this set of names.
.adj
.adj
indicates that an intercept-only model should be supplied to .fct
.
This intercept-only subset is given most immediate priority and the
value of .fct
ascribed to it is removed from all other
value-generating names and sets including those in .all
.
The formula
method will submit an intercept-only formula to .fct
.
The formula_list
method creates a separate, intercept-only subset for each
of the formula
s in the list.
Both the formula
and formula_list
methods will respect the user's
removal of an intercept and or inclusion of an offset
.
.adj
then 'adjusts' the returned value for a non-0 value-returning
null model when no value generating names are included. This is often
useful when a predictive model's fit metric is not 0 when no
predictive factors are included in the model.
Additional Details
All methods submit combinations of names as an object of the same class as
.obj
. A formula
in .obj
will submit all combinations of names as
formula
s to .fct
. A formula_list
in .obj
will submit all
combinations of subsets of names as formula_list
s to .fct
.
In the case that .fct
requires a different class
(e.g.,
a character vector of names, a Formula::Formula
see fmllst2Fml
) the
subsets of names will have to be processed in .fct
to obtain the correct
class
.
The all subsets of names will be submitted to .fct
as the first, unnamed
argument.
.fct
as Analysis Pipeline
.fct
is expected to be a complete analysis pipeline that receives a
subset of names of the same class
as .obj
and uses these names in the
class
as submitted to generate a returned value of the appropriate
type to dominance analyze. Typically, the returned value is a
scalar fit statistic/metric extracted from a predictive model.
At current, only atomic (i.e., non-list
), numeric scalars (i.e.,
vectors of length 1) are allowed as returned values.
The .fct
argument is strict about names submitted and returned value
requirements for functions used. A series of checks to ensure the submitted
names and returned value adhere to these requirements.
The checks include whether the .obj
can be submitted to .fct
without
producing an error and whether the returned value from .fct
is a length 1,
atomic, numeric vector.
In most circumstances, the user will have to make their own named or
anonymous function to supply as .fct
to satisfy the checks.