In general (beware of special extensions below), the suggested model
size is the smallest model size \(k \in \{0, 1, ...,
\texttt{nterms\_max}\}\) for which either the
lower or upper bound (depending on argument type
) of the
normal-approximation (or bootstrap; see argument stat
) confidence
interval (with nominal coverage 1 - alpha
; see argument alpha
of
summary.vsel()
) for \(U_k - U_{\mathrm{base}}\) (with
\(U_k\) denoting the \(k\)-th submodel's true utility and
\(U_{\mathrm{base}}\) denoting the baseline model's true utility)
falls above (or is equal to) $$\texttt{pct} \cdot (u_0 -
u_{\mathrm{base}})$$ where \(u_0\) denotes the null
model's estimated utility and \(u_{\mathrm{base}}\) the baseline
model's estimated utility. The baseline model is either the reference model
or the best submodel found (see argument baseline
of summary.vsel()
).
If !is.na(thres_elpd)
and stat = "elpd"
, the decision rule above is
extended: The suggested model size is then the smallest model size \(k\)
fulfilling the rule above or \(u_k - u_{\mathrm{base}} >
\texttt{thres\_elpd}\). Correspondingly, in case
of stat = "mlpd"
(and !is.na(thres_elpd)
), the suggested model size is
the smallest model size \(k\) fulfilling the rule above or \(u_k -
u_{\mathrm{base}} > \frac{\texttt{thres\_elpd}}{N}\) with \(N\) denoting the number of observations.
For example (disregarding the special extensions in case of stat = "elpd"
or stat = "mlpd"
), alpha = 2 * pnorm(-1)
, pct = 0
, and type = "upper"
means that we select the smallest model size for which the upper
bound of the 68% confidence interval for \(U_k - U_{\mathrm{base}}\) exceeds (or is equal to) zero, that is (if stat
is a
performance statistic for which the normal approximation is used, not the
bootstrap), for which the submodel's utility estimate is at most one
standard error smaller than the baseline model's utility estimate (with
that standard error referring to the utility difference).
Apart from the two summary.vsel()
arguments mentioned above (alpha
and
baseline
), resp_oscale
is another important summary.vsel()
argument
that may be passed via ...
.