DecisionDrift 0.2.0
New features
dd_decompose() – flow decomposition of each change in
the decision rate into inflow (uptake) and outflow (reversal) using the
marginal-transition identity. Reports turnover, net endpoint change
(NEC), cumulative marginal burden (CMB), cumulative transition burden
(CTB), and, for unbalanced panels, the gap between paired and
cross-sectional change.
dd_group_decompose() – symmetric midpoint decomposition
of aggregate change into within-group and composition components,
composition drift D_C, and group-specific uptake and
reversal. Supports time-varying group membership.
dd_cluster_bootstrap() – unit-level cluster bootstrap
that keeps each unit’s full history. One set of draws can be shared by
all inference functions.
dd_global_test() – global test that uptake, reversal,
and/or prevalence are constant across waves, overall or by group. Max-t
and Wald statistics with a centred bootstrap null; familywise-adjusted
p-values and simultaneous confidence bands. Contrasts compare each step
with the previous one (contrast = "consecutive", default)
or with the first one (contrast = "baseline", more power
against gradual drift).
dd_simulate() – simulate panels under stable, marginal,
masked, abrupt, group-masked, and composition-change scenarios, or
custom uptake and reversal sequences.
inst/simulation/mc_study.R – script for the Monte Carlo
study comparing the prevalence trend test with the global stability
test.
dd_decompose, dd_group_decompose, and
dd_global_test have print() and
plot() methods.
Changes to existing
functions
dd_audit() no longer returns
"no drift detected", "marginal drift",
"moderate drift", or "strong drift". Those
labels came from fixed, uncalibrated cut-offs. The audit now runs one
cluster bootstrap, the flow and group decompositions, and
dd_global_test(), and returns a conclusion
stating the test result at level alpha.
verdict is kept as an alias of conclusion. New
arguments: global_test, components,
alpha, thresholds (user-supplied practical
cut-offs), and seed.
dd_changepoint(): the event-alignment result no longer
has a "strong"/"weak" evidence
label; it returns alpha and a logical
significant. Documentation now notes that the wave-level
methods have little power with few waves.
Bug fixes
dd_transition(): reversal_drift held the
mean absolute change in uptake P(1|0), not reversal. It now holds the
mean absolute change in reversal P(0|1). The uptake value is now
returned as uptake_drift. TDI values are unchanged. Code
that used reversal_drift from 0.1.0 was reading uptake
drift and should switch to uptake_drift to keep the old
numbers.
dd_transition() and dd_indices()
documentation now gives the TDI and CDB formulas in terms of uptake,
reversal, and the decision rate.
plot.dd_transition() now shows uptake and
reversal.
- Repository URLs updated to github.com/subirhait.
DecisionDrift 0.1.0
Initial release
Core modules
dd_build() — construct a drift_panel
object from long-format panel data.
dd_prevalence() — detect drift in decision rate;
computes Decision Drift Index (DDI).
dd_transition() — detect drift in transition structure;
computes Transition Drift Index (TDI).
dd_entropy_trend() — track rolling Shannon entropy and
switching rate over time.
dd_group_drift() — detect group-differential drift;
computes Group Differential Drift (GDD).
dd_changepoint() — change-point and regime-shift
detection via CUSUM, segmented regression, and event alignment.
Summary indices
dd_indices() — compute all four original drift indices
in one call: DDI, TDI, GDD (Group Differential Drift), CDB (Cumulative
Drift Burden).
Robustness & sensitivity
dd_robustness() — test stability of drift conclusions
across analytic choices (balanced panel, leave-one-period-out,
leave-one-group-out, min_waves grid, bootstrap CI).
dd_sensitivity() — probe vulnerability to data
problems: decision miscoding, missing-wave attrition, threshold shifts,
and subgroup composition shifts.
Flagship audit
dd_audit() — integrated three-layer audit (detection →
decomposition → stress-testing) with a single-call verdict.
Plotting
- S3
plot() methods for all module outputs.
- Multi-panel composite via
plot.dd_audit() (requires
patchwork).
Relationship to
decisionpaths
decisionpaths asks: What happened? (path
construction, DRI, entropy, equity)
DecisionDrift asks: Did the system change?
(drift detection, decomposition, stress-testing)
- These packages form complementary layers of a longitudinal decision
audit framework.