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 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 = 0.32, 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, 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).