The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
Documentation-only release prepared in response to the CRAN pre-acceptance review of 2.0.0. No user-visible behavior changed.
wf_report() now carries a self-contained, executable
example built on wf_attrition() weights, replacing the
previous \dontrun{} block.inst/reference/wfc_future_usability.R restores
graphics::par() with the explicit oldpar idiom
instead of on.exit(), matching the CRAN convention for
script files.WFC 2.0 makes the verified, outcome-blind workflow the only supported path to weight construction. This is a deliberate breaking release: unsafe 1.x compatibility paths have no shim or override.
wf_design_data and non-demo wf_verified_target
objects before an engine can run.wf_target_manual(),
wf_target_shrink(), inline moment targets, manual pipeline
targets, and run-time margin injection. There is no supported
replacement for pass-rate goals, desired outcome means or intervals, or
other target choices intended to steer a result.Safety-oriented weighting workflow. This release adds a controlled path for bringing the defensible parts of external calibration workflows into WFC while preventing outcome-driven target or weight adjustment.
wf_prepare_design() to create a design-only
object that rejects undeclared columns and keeps outcome variables
outside weight planning.wfc_audit_v2
evidence schema.survey
reference comparison, and CI enforcement of that reference check.
Independent qualified statistical review remains a separate
release/reliance gate.inst/COPYRIGHTS for dependency
copyright boundaries.API freeze and publication release. This release closes the 0.10 -> 1.0 roadmap by freezing the public WFC core API, documenting the deprecation policy, and adding release infrastructure for CRAN and the bilingual pkgdown site.
inst/stability/api-freeze.md, including the frozen exported
signatures, object-field expectations, condition taxonomy, and the
one-minor-release deprecation policy.wf_warning_deprecated warning class
for future deprecations.cran-comments.md for the 1.0 initial CRAN
submission and the current local check status._pkgdown.yml for the 1.0 publication site, with
the English reference and article structure plus a link to the existing
Simplified Chinese README.Performance engineering. This release adds opt-in fork parallelism and optional progress reporting for the long-running calibration paths while preserving serial defaults and deterministic result ordering.
parallel = TRUE to wf_rake() and
wf_poststrat() so independent target groups can run through
parallel::mclapply on Unix-alike platforms. Windows falls
back to serial execution with a note.parallel = TRUE to wf_replicates()
so replicate refit closures can run concurrently after the replicate
multipliers have been generated.progress = TRUE to the same APIs. When the
optional cli package is installed, WFC shows a progress
bar; otherwise execution silently falls back to the existing no-progress
behavior.Methods II and influence diagnostics. This release adds panel
attrition weighting, high-influence unit diagnostics, and Fay’s BRR
while preserving the existing wf_weights and
replicate-variance contracts.
wf_attrition() to estimate inverse-retention
weights for panel nonresponse. It fits base-R logistic retention models,
supports grouped fits, stabilization, optional trimming,
retention-probability diagnostics, and balance checks against the full
prior wave.wf_attrition() returns
wf_attrition_weights, an additive subclass of
wf_weights, so attrition correction can be chained through
wf_compose() before calibration.wf_influence() to rank units by weight ratio,
squared-weight design effect share, leave-one-out design effect, and
optional target-margin share.wf_replicates(method = "brr", rho = ...), with the standard
BRR behavior preserved at rho = 0.as_svrepdesign() now preserves Fay BRR metadata by
forwarding rho to survey when available.wf_report() now carries attrition balance and
retention-probability sections for attrition-stage weights.Method-family expansion. This release adds soft calibration and
entropy balancing while keeping both methods inside the existing
wf_calibrate() and wf_weights contracts.
wf_calibrate(method = "soft"), a penalized
calibration engine that preserves exact group totals while allowing
declared margin relaxation within scalar or per-dimension
tolerances.$relaxation audit
table for every group, dimension, and category.wf_calibrate(method = "ebal") for entropy
balancing. It minimizes divergence from base weights under exact
categorical margins and optional continuous moment targets supplied
through moments = c(var = mean).$moments table with target and achieved means.wf_report() now carries soft-calibration relaxation and
entropy-moment sections, and wf_pipeline() /
wf_run() can execute both new methods.Production infrastructure. This release makes recurring weighting rounds declarative, auditable, and drift-checkable while continuing to run through the existing weighting engines.
wf_pipeline() to declare a serializable
target/stage/validation specification with a stable provenance
hash.wf_run() to execute population, reference,
manual, or ready-target pipelines, optionally prepend a propensity
pseudo-weight stage, accept numeric base weights for replicate refit
closures, and attach pipeline provenance to the returned
wf_weights.wf_validate() to compare new weights against a
reference release on group coverage, design effect, effective sample
size, total weights, optional margin residuals, and matched-unit
weight-ratio drift.wf_audit_export() to write dependency-free JSON
audit records with provenance, pipeline metadata, optional
guided-workflow ledgers, input hashes, and user-supplied metadata.wf_warning_quality conditions and preserve structured
validation tables for downstream review.Ecosystem interoperability. This release connects WFC results to survey/srvyr and broom-style consumers without changing any calibration engine or adding a hard dependency.
as_svydesign() to align wf_weights
with analysis data by exact unit ID and return a standard
survey.design2, including cluster, strata, finite
population, nesting, and downstream survey-estimator support.as_svrepdesign() for
wf_replicate_weights, mapping bootstrap, JK1, JKn, and BRR
metadata while preserving WFC scale/rscales and full-estimate MSE
semantics. survey::svymean() reproduces
wf_variance() standard errors for all three WFC replication
methods.wf_error_dependency when the suggested
survey package is absent.generics::tidy(),
glance(), and augment() methods for weights,
diagnostics, blend results, and variance results. They return base data
frames with stable English programmatic keys;
augment.wf_weights() appends .weight and
.feature by exact ID.Guided workflow and localized output. This release adds an auditable non-specialist path over the existing engines without changing their numerical semantics or stable object keys.
wf_autoweigh() to build or accept a target,
enforce precheck, apply only declared category-collapse remediations,
route to raking, post-stratification, or bounded logit calibration, and
return weights, diagnostics, a manager report, final inputs, and an
ordered decision ledger.min_cell are supplied;
otherwise it uses raking and never silently selects bounded logit
calibration.wf_auto_trim(): finite
recommendations may be confirmed and applied, while no-trim and
no-solution outcomes are recorded explicitly. Non-interactive runs
remain reproducible and auditable.wf_report() and all package plot methods now localize
human-facing labels while preserving English object, column, condition,
action, and ledger keys.wf_autoweigh_result printing, aligned structured
artifacts, localized narration, classed refusal paths, and focused tests
for every routing, remediation, trim, and language branch.wf_apply_collapse() now keeps retained joint population
cells synchronized with collapsed margins, so guided post-stratification
cannot use stale joint categories after remediation.Usability foundations. This release adds review and communication layers over the existing weighting engines without changing their numerical semantics.
wf_report() with manager and analyst projections,
structured method-specific sections, Markdown output, dependency-free
escaped HTML, print(), and as.data.frame()
support. Reports accept both wf_weights and
wf_blend_result objects.wf_auto_trim() to sweep candidate caps, expose
the bias-variance frontier, preserve candidate warnings/failures, and
recommend the loosest cap satisfying declared design-effect and
margin-residual criteria.wf_suggest_ladder() to draft adjacent category
merges from worst-group support, order dimensions by affected sample
share, and return a validated ladder for explicit human review.wf_propensity_weights subclass and retain fitted propensity
vectors for overlap plotting while remaining fully compatible with
wf_weights consumers.lang argument on wf_report() reserves
the 0.11 localization contract; 0.10 reports are English-only and reject
unsupported languages explicitly.Stabilization release. No public API signatures or weighting-method semantics changed.
survey::rake().wfc_example with support in every
documented joint cell. The former deterministic pattern passed marginal
precheck but made the README raking quick start structurally
non-convergent.wf_precheck() so an NA grouping key is reported
as na_group without leaking into group arithmetic and
causing an unrelated missing-value error.Package renamed from weightflow to WFC:
CRAN already hosts an unrelated survey-weighting package named
weightflow, so the old name could not be submitted and
would shadow installations from CRAN.
wf_* function names, classes, and condition classes are
unchanged.weightflow_example
to wfc_example (regenerated by
data-raw/make-wfc-example.R).inst/design/wfc_future_design.md) committing the 0.10
-> 1.0 roadmap: guided workflow, localized reports, survey/broom
bridges, pipeline infrastructure, soft calibration, entropy balancing,
attrition weighting, and influence diagnostics; with reference
prototypes under inst/reference/wfc_future_*.R.Audit fixes for robustness and CRAN/GitHub compliance. No new public API.
wf_rake() now raises a classed
wf_error_convergence (with the group, the worst dimension,
and the last deviation) when IPF fails to converge within
max_iter, instead of silently recording a non-converged log
row. This implements the behaviour specified in the core design
document.wf_poststrat() now validates the
init_weight column name and raises
wf_error_schema when it is absent, matching
wf_rake().wf_propensity() now rejects NA values in
membership-model predictors with a classed wf_error_input
instead of failing inside glm() with an unrelated
message.wf_rake() and wf_poststrat() provenance
now records the installed package version instead of a hard-coded
historical string.wf_poststrat() (per-ladder-level instead of per-row),
improving large-sample performance.Imports: stats, utils, set a real package
maintainer, and extended .Rbuildignore (nested
.DS_Store, .worktrees, root tarballs).R CMD check --as-cran workflow
across R devel, release, and oldrel on Linux, macOS, and Windows.Bounded calibration. Adds a Deville-Sarndal calibration engine to
wf_calibrate() with linear (GREG) and bounded (logit)
distances.
wf_calibrate(method = "greg") for the linear GREG
estimator.wf_calibrate(method = "logit", bounds = c(L, U))
for calibration with weights bounded within (L, U) by
construction, merging margin alignment and weight trimming into one
step.wf_target margins,
honour init_weight, and return the standard
wf_weights so they compose and support replicate
variance.Variance and uncertainty. Adds replicate-weight variance that re-runs the calibration pipeline per replicate, so estimates carry standard errors and confidence intervals including calibration uncertainty.
wf_replicates() to generate re-calibrated
replicate weights via Rao-Wu bootstrap, stratified delete-one jackknife,
or BRR, driven by a user refit closure.wf_variance() to combine replicate weights and an
estimator into an estimate, variance, standard error, and normal or
percentile confidence interval, using one unified combining rule across
methods.init_weight argument to wf_rake()
so raking can consume replicate base weights (unchanged behaviour when
NULL).Non-probability correction via propensity. Adds a two-step propensity workflow that corrects a self-selected online sample against an offline probability reference, emitting pseudo-design weights that feed calibration as initial weights.
wf_target_propensity() to stack an online sample
and a probability reference into a membership-model specification.wf_propensity() to fit a base-R logistic
membership model and emit inverse-propensity pseudo-design weights as a
wf_weights stage, with stabilized IPW on by default and
optional trimming.wf_warning_quality on poor support.Dual-source fusion. Adds estimator-level online/offline fusion without stacking row-level weights.
wf_blend() for estimator-level dual-source fusion
of online and offline wf_weights objects.wf_blend_result with source estimates, applied
lambda values, diagnostics, sensitivity output, and provenance.neff, inverse_variance,
and fixed lambda strategies.Weight pipeline ledger. Adds a composition layer for chaining weighting stages while preserving stage-level provenance.
wf_compose() to multiply compatible
wf_weights stages into one auditable
wf_weights result.normalize = "mean1" and
normalize = "sum".Foundation API completion. Extends the calibration workflow with manual targets, target shrinkage, and a unified dispatcher, while preserving the existing raking and post-stratification engines.
wf_target_manual() to build a canonical target
from a ready-made long margin table.wf_target_shrink() to shrink a target toward a
reference target.wf_suggest_collapse() to turn precheck findings
into a reviewable collapse plan using ladders declared in
wf_dims().wf_apply_collapse() to apply a collapse plan
consistently to both the sample and the target.wf_calibrate(), a unified dispatcher that routes
to wf_rake() or wf_poststrat() while
preserving the common wf_weights contract.Post-stratification engine. Adds cell-level calibration against joint population targets, with reviewable collapse ladders and planning.
wf_target_population(..., keep_joint = TRUE).wf_collapse_ladder() to declare
post-stratification collapse ladders.wf_plan_poststrat() to plan cell resolution
before execution.wf_poststrat() to run cell-level
post-stratification, returning a cell_report and
collapse_map.Initial package foundation and core raking workflow.
wf_dims() to declare schema-agnostic calibration
dimensions.wf_target_population() and
wf_target_reference() target constructors.wf_precheck() for structured sample/target
compatibility checks.wf_rake() grouped raking (iterative proportional
fitting) with trimming cycles and a missing-data policy.wf_diagnose() weight and margin diagnostics.weightflow_example dataset for
examples and tests.These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.