Released: 2026-09-03
maive_from_metafor() converts a metafor
escalc data frame or an rma.uni fit into the
data frame maive() and waive() expect. It
takes the standard error as sqrt(vi), so metafor’s sampling
variance cannot land in the sebs slot by mistake (which
silently shifts the estimate), and it resolves sample sizes from
ni, the ni column, the ni
attribute escalc() stamps on the effect sizes, or
n1i + n2i, never from the variance. rma.uni
rows are taken through the fit’s subset and missing-value
masks so effects, variances, sample sizes, and study identifiers stay
aligned. rma.mv, rma.glmm, and other
rma subclasses are refused with a message. metafor is a
suggested dependency only.Released: 2026-09-03
estimate,
se, n, and study_id are resolved
before the data frame is validated, so the documented custom column
example in the vignette runs (it previously failed with “Missing
required columns: bs, sebs, Ns”). Completely empty rows are still
dropped before resolution.seed argument now reaches the wild bootstrap
(SE = 3). Previously the helper always used seed 123, so
different seeds gave identical bootstrap confidence intervals and
seed = NULL did not use the current RNG state. The reported
SE under SE = 3 is the CR1 cluster-robust SE and is
unchanged; only the bootstrap confidence intervals (for example
egger_boot_ci) depend on the seed, and a non-default seed
now changes them.studylevel = 0
and 1 run, and studylevel = 2 and
3 surface clubSandwich’s own message that clustering needs
more than one cluster. Results on multi-study data are unchanged.beta_standard at method = 3 (PET-PEESE)
now comes from the same conventional fit as SE_standard. It
was previously read from the auxiliary PET-PEESE model that uses MAIVE’s
own weights, so the returned pair mixed two regressions and
beta_standard moved with weight while
SE_standard did not. This is a deliberate change to the
reported value at method = 3; methods 1, 2, and 4 are
unaffected, and the Hausman statistic still uses the auxiliary pair and
is unchanged.maive() and waive() return
ek_structure (“kink”, “linear”, or “intercept”) for
method = 4, so an intercept-only degenerate EK fit is
identifiable directly rather than inferred from a zero slope
coefficient. It is NA for other methods.study_id argument is given and no column is
named study_id, using the fourth column as the study
identifier now emits a warning naming the column. Pass
study_id = "<column>" to confirm the mapping, or drop
the column if it is not a study identifier. A column named
study_id is used regardless of its position.maive() documents the study_id fallback
and the origin of beta_standard and
SE_standard.Released: 2026-08-05
Released: 2026-02-04
Released: 2026-02-04
Released: 2026-01-07
Released: 2026-01-07
Released: 2026-01-07
Released: 2026-01-07
Released: 2025-12-18
Released: 2025-12-02
Released: 2025-12-02
Released: 2025-11-27
Released: 2025-11-27
Released: 2025-11-26
maive(): Main function implementing PET, PEESE,
PET-PEESE, and Endogenous Kink (EK) methodswaive(): Robust extension with downweighting of
spurious precision and outliers