Repository navigation
Releases: joonho112/pvstackr
Release list
pvstackr 0.2.1
This release changes the documentation only. The R code, the computations and
the printed output are the same as in 0.2.0.
-
The help pages, the ten articles and the README are rewritten in plain
language and checked against the code, the companion methods preprint and the
cited literature. -
Statements that did not match the package are corrected:
- pvstackr fits a single-level linear regression weighted by the survey
weights and reports its fixed effects. A formula with a random-effect term
stopspv_brr_target(),stack_directandstack_psiswith an error. The
earlier articles presented a two-level model with a school variance. - The likelihood of each plausible value is survey-weighted, and each row of
the stacked data has as its weight the final weight divided by its mean and
by the number of plausible values. The earlier text called the likelihood
unweighted and gave the row weight as one over the number of plausible
values. - pvstackr runs no part of Pareto smoothed importance sampling:
stack_psis
takes importance weights and Pareto k-hat values computed elsewhere. The
thresholds of Vehtari et al. (2017, 2024) are now stated apart from
pvstackr's single threshold,psis_k_threshold. - The companion methods paper is cited as its Zenodo preprint
(https://doi.org/10.5281/zenodo.22407935). Its stacked fixed-effect point
identity is Theorem 4.1, with conditions (R1)–(R5). Coverage results that
the preprint does not report are no longer attributed to it; the interval
labels (interval_role,coverage_claim_allowed) are pvstackr's
reporting rule. - The covariance that
pv_brr_target()computes from the replicate weights
is called the BRR–Fay replicate covariance, not a sandwich estimator.
- pvstackr fits a single-level linear regression weighted by the survey
-
The interval label
coverage_claim_allowedis described as what it is:
a record of how an interval was built, by pvstackr's reporting rule. It does
not certify the coverage of the interval. -
The package title and description are rewritten in plain words.
-
The articles have new titles; their file names and web addresses are
unchanged. The website has a "Get started" link to the first article. -
The tests that check phrases in the documentation follow the new wording and
check the same facts.
pvstackr 0.2.0
The first hardening release. It makes stored objects portable across R
versions and machines, opens the bundled brms adapter as a public three-function
interface, and tightens what a fit is allowed to retain when it is blocked.
Portability (changes hash values)
- Content hashes and validation stamps no longer depend on the R version that
wrote them. Both hashed the whole serialization stream, whose fourteen-byte
header records the writing R version. Content hashes computed by earlier
releases will not match the ones this release derives, so a stored
design_hashfrom 0.1.x is expected to differ. - A saved fit no longer refuses its own accessors after an R upgrade.
pv_revalidate_brr_target()no longer requires a legacy target's weighted
least-squares estimates to match bit-for-bit. Those last bits differ between
BLAS implementations, so a target built on one machine could not be
revalidated on another. Structure, declared inputs, and the input-derived
design hash are still compared exactly; the estimates go through the
package's numeric policy (absolute 1e-12, relative 1e-10). A difference
large enough to matter still fails closed.
Backend
- The bundled brms adapter is public:
pv_backend_brms_fit_function(),
pv_backend_brms_draws_function(), andpv_backend_brms_sampler_diagnostics().
Injecting all three runs the same code the bundled backend runs; any one can
be replaced to attach a different engine. The routes differ in recorded
provenance, and a reportable injected fit needs all three. pv_fit(method = "stack_direct")withpv_control(backend = "brms")now runs
without an injected adapter pair.- A population-level prior (
class = "b"with nocoef) is expanded onto the
individual slope coefficients instead of being refused.
Fail-closed behaviour
- Final fits carry an exact validation record with a deep tier and a cheap
rehash tier. - Blocked fits use a generic retention firewall: heavy payloads are absent, and
only canonical evidence is retained. stack_psisseparates weight input route, Pareto-k source, and smoothing
provenance; supplied weights enter the reportable route only when the caller
declares an external producer and version.pv_migrate_legacy_psis_fit()gives historical PSIS results an
inspection-only migration path.
See NEWS.md for the
full list, and the package website for
documentation.