You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: add one_way_anova + ground-truth validation; make docs honest (#23)
Code:
- Implement one_way_anova (src/stats/inferential.jl): it was called by
levenes_test and the 'anova' executor tool but never defined, so both
paths errored. Export it from StatistEase.jl.
- t_test_independent now returns cohens_d + effect_size_interpretation,
fulfilling its own docstring ('EFFECT SIZE: Computes Cohen's d') which
the implementation had never honoured.
- Fix run_examples() (src/tools/chat.jl): it referenced keys that don't
exist (t_statistic, p_value_two_tailed, effect_size_interpretation on
ANOVA, direction on Pearson) and would KeyError on the first t-test --
it had never run. Now uses the real return keys.
Tests:
- New test/reference_validation_test.jl: checks the trusted symbolic
layer against independently-derived ground truth (Welch t p=0.10753,
Pearson t=6*sqrt(3), ANOVA p=0.125 [closed form 2^-3], Mann-Whitney
z=1.74574, Cohen's d=-1.2, exact regression coefficients). The
no-mollocks guarantee only holds if the Julia layer is itself correct;
this is the missing check.
- Enable the real Levene's test case (was a @test-true placeholder
blocked on one_way_anova).
Docs (now match the tree):
- TOPOLOGY.md: Tests 0%/CI 0%/60% -> Tests 90% (632 assertions)/CI 80%
(14 workflows)/70% overall; add honest 'neural path 20%' row.
- STATE.a2ml: test-count 131 -> 632, ci-workflows 17 -> 14, add
stats-domain-modules=40, completion 85 -> 70.
- EXPLAINME.adoc: module count 17 -> ~40; file-map repointed at the real
dirs (src/stats, src/output, src/pipeline; not src/modules/outputs/
data_quality).
- ROADMAP.adoc: replace placeholder with honest phased status.
- NOTICE: state MPL-2.0 is the binding licence; Palimpsest exhibits are
non-binding addenda (as they declare themselves) -- removes the
'Palimpsest License (MPL-2.0)' conflation and invented 'PMPL Section 6'.
- examples/: replace stray ReScript/Deno template with a real offline
Julia example (run_examples.jl) that also shows executor-dispatch
parity.
Not run here (no Julia toolchain); e2e.yml runs Pkg.test in CI. Every
reference value was derived independently, not from this library's output.
Claude-Session: https://claude.ai/code/session_01GaTs8C1XVDqKq6AD2ENN2c
Co-authored-by: Claude <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: EXPLAINME.adoc
+24-15Lines changed: 24 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,30 +28,37 @@ The MOLLOCK WARNING (lines 40-47) enforces this invariant: no statistical value
28
28
29
29
*Caveat:* The neural component (LLM) does perform parsing of the user question and explanation generation, which are non-statistical tasks. The invariant applies specifically to numerical results, not linguistic processing.
This is verifiable in `src/modules/` with one subdirectory per statistical domain.
45
-
46
-
*Caveat:* All 17 modules have been implemented, but coverage is skewed toward classical frequentist methods. Bayesian coverage (prior updating, Bayes factor) is functional but simplified compared to Stan or PyMC.
48
+
*Caveat:* Coverage is broad but skewed toward classical frequentist methods.
49
+
Bayesian coverage is functional but simplified compared to Stan or PyMC, and
50
+
several advanced methods are explicitly labelled `proxy`/`basic`
51
+
(`random_forest_proxy`, `gwr_basic`). The trusted symbolic layer is now
52
+
checked against independently-derived ground-truth values in
0 commit comments