Elamur Groupants⌕
☰

statistical-computing

The groupant beside models/statistical-computing.groupant in the Mova repository: what the code computes, what it never does, how to go back from its outputs, its invariants, cost and checks.

Facts

Implementation material. A Mova code model describes this code at one source revision: partial models, finite checks and their stated scope. It is not a reviewed general exposition, and its labels are shown as written, never raised.

Components

componentlabelwhere
approximantpartialforward
astnot materialized
compositionpartialcomposition
costsymbolic source derivedcost
descriptantpresentdescriptant
invariantpartialinvariant
testssee source local evidencechecks

Obernants

The typed relations around the forward model: the behaviour complement (what the code never does), the reverse reconstruction (every input compatible with an output) and specialised views.

idtypelabelwhere
behavior-complementbehavior_complementpartial source derived modelbehavior-complement
reverse-reconstructionreverse_reconstructionpartial source derived modelreverse-reconstruction
missingness-transportmissingness_transportpartial source derived modelmissingness-transport
random-calibrationstate_transitionpartial source derived modelrandom-calibration
table-statistic-shaperepresentation_transportpartial source derived modeltable-statistic-shape
error-metric-boundariesmetric_transportpartial source derived modelerror-metric-boundaries

Model text

descriptant

statistical-computing: wave30

Actual joins: stats imports builtins::table::{opts,opt}, table::groups, value::Table; mcgate imports stats and Rng; ext_boost/ext_nist import Interp whose registry resolves the same builtins. Invalid adapter example: group equality on NaN does not imply matching hash keys. Another: row-key signed zero canonicalization must agree with numerical sorting equality. Benchmark/calibration or full external dataset results are not inferred from helper tests. Paired ttest length compatibility precedes option parsing; only the minimum cleaned-sample-count check follows options. agg count and numel both count original values, so NaN insertion changes both. iso_date selects date-only formatting only for exactly integral inputs; rounded nonintegral midnight keeps a time-bearing pattern.

This source-bound partial group organizes existing Mova code. Native evidence and excluded effects are recorded in source sidecars and the root wave30 report. Registration is not a universal proof or whole-system runtime claim.

model

statistical-computing

forward

Rng(seed) advances xoshiro state, feeding mcgate's eight H0 scenarios. stats::t_one/t_two/anova_one/corr_p/ols/chi2_ind produce p vectors; mcgate emits count(p<=a)/len with 4.5*sqrt(a(1-a)/len)+margin for four ALPHAS. Table comparison/groups supply sorted category identities to stats::crosstab and ANOVA; stats::mode delegates table builtin agg. Builtin joins use table::row_key, aggregate summaries use table::groups and scatter results. Boost/NIST helpers transport interpreter output into relative-EPS or LRE acceptance regions; selected synthetic tests call actual helpers without external data.

invariant

For well-shaped bounded values, internal indices are zero-based and exposed sort permutations one-based; tables retain name/column/kind alignment when caller inputs satisfy representation preconditions. RNG cache distinguishes state-consuming polar generation from spare consumption. Missingness is operation-specific: groups coalesce NaNs, joins exclude them, t tests drop them, covariance propagates them. These policies must not be silently equated.

cost

For n rows,w columns,k keys: grouping/sort O(kn log n), copying O(nw), innerjoin output m can be nlnr and costs expected hash matching plus O(m log m) ordering. OLS O(np²+p³), chi2 O(rc), t/ANOVA O(n). Tiny Monte Carlo scales O(K) fixed-sized simulations with300 chi2 draws per replicate and unbounded worst-case polar rejection. External parser cost O(bytes); no speed measurement. Table make name checks cost O(w²) comparisons; table::dedupe may retry suffixes and cost O(w³) string comparisons plus text work. Pivot/import callers inherit that collision cost.

composition

Actual joins: stats imports builtins::table::{opts,opt}, table::groups, value::Table; mcgate imports stats and Rng; ext_boost/ext_nist import Interp whose registry resolves the same builtins. Invalid adapter example: group equality on NaN does not imply matching hash keys. Another: row-key signed zero canonicalization must agree with numerical sorting equality. Benchmark/calibration or full external dataset results are not inferred from helper tests. Paired ttest length compatibility precedes option parsing; only the minimum cleaned-sample-count check follows options. agg count and numel both count original values, so NaN insertion changes both. iso_date selects date-only formatting only for exactly integral inputs; rounded nonintegral midnight keeps a time-bearing pattern.

domain

CPU-only bounded synthetic values, well-shaped Mat/Table structures, practical finite dimensions, seed42, Monte Carlo K=0 and2, synthetic2x2 NIST-like text and special-function known points. Host datasets, GPU and external services excluded.

limitations

IEEE f64/transcendentals and statrs/faer behavior delegated. Direct public helper dimension preconditions and overflow-sensitive dates/windows are partial. No universal numerical accuracy or significance calibration claim. Physical file backend and frozen NIST/Boost suites unexecuted.

checks

catalog

behavior-complement

Composition excludes missing-key join pairs even though group summaries include missing groups; excludes 1 from uniform draws; excludes cached-normal state advance; excludes rejection only on p==alpha because stats verdict is strict. Zero-K mcgate cannot claim ok rows. Synthetic helper success excludes no possible failure in unexecuted external data suites.

reverse-reconstruction

Given gate fractions, antecedents are all p-vectors with matching threshold counts and scenario-compatible RNG/statistical states; original samples/seed generally not unique. Group sums and fitted beta admit many observation tables; missing rows and dropped columns cannot be recovered. Boost/NIST scalar error reports admit all curves beneath or attaining their maxima/caps.

missingness-transport

table::groups(NaN,NaN) puts both rows together; row_key(NaN)=None removes both from join indexes. stats::clean drops NaNs while cov_matrix sums them; passing grouped data into stats requires method-specific policy, not blanket missing equivalence.

random-calibration

Rng uniform consumes one integer transition; normal may consume cached spare without transition. mcgate reuses one RNG sequentially across scenarios, so modifying one scenario's draws changes later samples; per-row calibration is only a finite random experiment, and K=2 tests validate wiring only.

table-statistic-shape

Table numeric columns are n-by1. categories groups keys into0-based IDs, crosstab counts into row/column categories then emits column-major Mat; stats tables wrap numeric summaries as aligned columns. sortrows output permutation adds1; it cannot be reused as an internal index without subtracting1.

error-metric-boundaries

Boost e=abs((got-want)/want)/EPS excludes nonnormal reference values; NIST LRE=-log10(relative error) capped15 uses absolute error at certified zero. These metrics are not interchangeable, and neither finite synthetic observations nor source-bound models establishes a supported executable-surrogate percent cap.

This page in Markdown → https://md.groupants.elamur.ai/free/en/mova/models/statistical-computing.groupant/