From fb7c2370005f542841b149201b3d8a16a1f3f45e Mon Sep 17 00:00:00 2001 From: evilfps <208441420+evilfps@users.noreply.github.com> Date: Sat, 16 May 2026 22:23:55 +0530 Subject: [PATCH] Add statistical consistency checker --- README.md | 2 + statistical-consistency-checker/README.md | 40 ++ .../data/sample-statistics-input.json | 92 ++++ statistical-consistency-checker/docs/demo.svg | 17 + .../docs/demo.webm | Bin 0 -> 143421 bytes .../docs/requirement-map.md | 11 + statistical-consistency-checker/package.json | 15 + .../scripts/demo.js | 14 + .../src/statistical-consistency-checker.js | 505 ++++++++++++++++++ .../statistical-consistency-checker.test.js | 238 +++++++++ 10 files changed, 934 insertions(+) create mode 100644 statistical-consistency-checker/README.md create mode 100644 statistical-consistency-checker/data/sample-statistics-input.json create mode 100644 statistical-consistency-checker/docs/demo.svg create mode 100644 statistical-consistency-checker/docs/demo.webm create mode 100644 statistical-consistency-checker/docs/requirement-map.md create mode 100644 statistical-consistency-checker/package.json create mode 100644 statistical-consistency-checker/scripts/demo.js create mode 100644 statistical-consistency-checker/src/statistical-consistency-checker.js create mode 100644 statistical-consistency-checker/test/statistical-consistency-checker.test.js diff --git a/README.md b/README.md index d338cf6..bc8be7d 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # deepevents.ai deepevents.ai main codebase + +- `statistical-consistency-checker/` adds statistical methods, unit, artifact, and review readiness checks for research packets. diff --git a/statistical-consistency-checker/README.md b/statistical-consistency-checker/README.md new file mode 100644 index 0000000..44fa4d6 --- /dev/null +++ b/statistical-consistency-checker/README.md @@ -0,0 +1,40 @@ +# Statistical Consistency Checker + +This module adds a focused research review slice for statistical method consistency. + +It covers: + +- p-value, alpha, and reported-significance alignment +- effect size and confidence interval consistency +- null-value checks for significant and non-significant findings +- multiple-comparison correction review +- sample-size and small-group warnings +- unit mismatches and linked data/code artifact availability +- reviewer actions, audit events, and deterministic digests + +The implementation is dependency-free and uses synthetic sample data only. + +## Run + +```bash +npm run check +npm test +npm run demo +``` + +## Demo Assets + +- short demo video: `docs/demo.webm` +- `docs/demo.svg` + +## API + +```js +import { + evaluateStatisticalConsistency, + renderStatisticalConsistencyReport +} from "./src/statistical-consistency-checker.js"; + +const result = evaluateStatisticalConsistency(input); +console.log(renderStatisticalConsistencyReport(result)); +``` diff --git a/statistical-consistency-checker/data/sample-statistics-input.json b/statistical-consistency-checker/data/sample-statistics-input.json new file mode 100644 index 0000000..987ea66 --- /dev/null +++ b/statistical-consistency-checker/data/sample-statistics-input.json @@ -0,0 +1,92 @@ +{ + "generatedAt": "2026-05-16T16:35:00Z", + "manuscript": { + "id": "ms-neuroimmune-042", + "title": "Neuroimmune Marker Study", + "domain": "neuroscience" + }, + "artifacts": [ + { + "id": "data-raw-csf", + "type": "dataset", + "available": true, + "hash": "sha256:5c1c8b" + }, + { + "id": "code-model-r", + "type": "analysis-script", + "available": false, + "hash": "sha256:missing" + }, + { + "id": "code-summary-r", + "type": "analysis-script", + "available": true, + "hash": "sha256:af4d22" + } + ], + "analyses": [ + { + "id": "primary-csf-marker", + "claim": "Marker levels were higher in responders.", + "test": "welch-t-test", + "pValue": 0.031, + "alpha": 0.05, + "reportedSignificant": true, + "effectSize": 0.82, + "confidenceInterval": [0.12, 0.65], + "direction": "positive", + "sampleSize": 28, + "groups": [ + { "name": "responders", "n": 8 }, + { "name": "non-responders", "n": 20 } + ], + "multipleComparisons": { + "tests": 6, + "correction": "none" + }, + "units": [ + { + "variable": "CSF marker", + "expected": "ng/mL", + "observed": "pg/mL" + } + ], + "primaryOutcome": true, + "preregistered": false, + "dataArtifactId": "data-raw-csf", + "codeArtifactId": "code-model-r" + }, + { + "id": "secondary-cognition-score", + "claim": "Cognitive score change was not statistically significant.", + "test": "linear-model", + "pValue": 0.18, + "alpha": 0.05, + "reportedSignificant": false, + "effectSize": 0.09, + "confidenceInterval": [-0.11, 0.32], + "direction": "positive", + "sampleSize": 64, + "groups": [ + { "name": "treatment", "n": 32 }, + { "name": "control", "n": 32 } + ], + "multipleComparisons": { + "tests": 1, + "correction": "not reported" + }, + "units": [ + { + "variable": "score delta", + "expected": "points", + "observed": "points" + } + ], + "primaryOutcome": false, + "preregistered": true, + "dataArtifactId": "data-raw-csf", + "codeArtifactId": "code-summary-r" + } + ] +} diff --git a/statistical-consistency-checker/docs/demo.svg b/statistical-consistency-checker/docs/demo.svg new file mode 100644 index 0000000..a47b12b --- /dev/null +++ b/statistical-consistency-checker/docs/demo.svg @@ -0,0 +1,17 @@ + + Statistical consistency checker demo + Terminal-style demo output for the statistical consistency checker. + + + + + + + Statistical Consistency Check + Neuroimmune Marker Study: blocked (24/100) + Findings high/medium/low: 2/4/1 + Manifest: 20b466c71e117884 + - high code_artifact_not_found + - high effect_outside_ci + - medium multiple_comparisons_uncorrected + diff --git a/statistical-consistency-checker/docs/demo.webm b/statistical-consistency-checker/docs/demo.webm new file mode 100644 index 0000000000000000000000000000000000000000..c3d7e727afdc5c1f6d17fab6d236fb2981e5b9cc GIT binary patch literal 143421 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ΝD7GSJRk^i{!=Non_yHa^bn(k}9~#|PKtxaK6> z8NQ&+_-O6)^N1kI<}mBf{=8xGU5`<%k!;h?r0{VoLZoTRoJz@9NB20`x$|QiP@NX*o#-PZ-{8|_YYFjrbU&pg z`r*5TrosHkZ)5$Fv6>_MAKjI#k$(VGsR=+P-FmJ)iVlF`Q)_G=KHEp zJ6K?IN~elK)hKof1moIykuc3C{7$?6F6c?yjENs;&YnPl3DHQQS7iSp*Rb#1(f!B~ zU98%VMCB=Tk}6A-TuYT8g>soCMz=Ex;un|N%{VON=kQ12hr!mqsFX|Cqd(R1vQjX# zH2vweJL{R+B6ev9LFSuh4yvBMWK6bT(TE-#Ntn6qnH=PMqy}X!fE%5nU=Z+dZ*N7w zaYaV*!)!<9iS%MLGManQ39SvlKj;Q+sx>XffSH=^e zbg>

owmTsw>5MMy*uA&lN40J#v0o(=j^PC08&~7ihS)l4O8Aw8mLfg~HpJHo?^d zP1FoT2$Cr1K2i@eAa}yX%%)$Xh>>wi2b@~daDSNu^-)NLX{n9ggF7e8T+z7x^4lIJ zcRG<8EQh8TDG;n=1ikLpe~9=DI8=P4caqotCJWQOiPFVH0eWpi5MK>{UOqeZZ~ZIG z0h!Ud*+-I^ba&$VOAb_YQCQest5Dt(R6_j7fNpRBfGTEG z^Eb|0gH);CkJg;LoB0=5?-b|l!aF&le?>p~ZkGR8jTC zs^|*Ix|hIsXfuBbwu?F9%(9c@SRVjfC%TQuF9XftJ|sqOI?PSrrSdrjZzXrBUPrTK zp~**;5;q)aj#o-KZAvG>KkCc@4K*QG-;0(m;&i-o`jk4DEr1ob;#@hmDoO#XedL$E z6!=hW=gv%kwrisLu%&KYqzlRnyRBrxD%=`y|K`&mYgeC|6@Ymvt>CB({z*K0Px6B& zPJ7kkCDUF`S<3e^XpvQ{dxr{DkH=e%<{14{(M;67B-Pc_`P%-OlA7ZE*V1@ox9KbC zIDYP@@;XZwT%%dy4;#fnV12B&6RRha=9KKfxT%^!UR%aJt<^H)1bTjYE=rwlFV#jd zb(lh|0Yk@KHYq#rFPV7n1f&j#=QDA7#^K~|!^IIj^b!60h`P6FHtbOtr z`;3w<`t^+9OB`ZHd7TJU%x#@a1 z0#PPIav3c-3(t(xe_ih%=a4siadqq)s z&D4C~Z%4EtNNx;FP%e5HI@mFMZd-MAgx_RS@DM7$3hc6R`dzB2^<1)E2vQ+yb*}w=OM02+3+5Nuqdgx zZ0G$7nRAZ`74fF2ZlGE)W~*Sk{jcFCI{AP_3)C-G<8!3m4<+@{GuC$D$V3h{Q<`6K zy1~SAFZ(-^44qQqdn;7asz1-I`g;^M#y_P@;|iY`;`@WtJxgg1!M3@{n_ivE6%f*! z2YJZCQTN&_nq&5#`qLo;+pq{S{RqdwL%=;DC->207i+7A6IxSFek21s1a zKQll=`cOPD--+NUs6Z9@&)W+wFiw*^UZN_n9qB(G?WwPy=qC~oF25J9@QkQ!D*SMZ zm*-oxl)L|+b}m*PKKs+exc{f$FUAwUkigRmpDYLYE5{fxqFWg&7qI?o*slOGoR?l9 zIOMl>rr3}~@g|-h4?i3vihR%czFr8QBi?|>SnjJ$+1thMFr)q%=0skcj;DwxE=0O9 zFtQn%lJ)Rw$^s{^W#Oz>?2a&3sE>G8pg8ao)HFcLV3D|82V+-RB{{3-eAL?8G;8tu zLdiL#63`zhjD|I!IG_-w_N&d-T3%H%vRzodUSUOWT<4aEtast24I*Ucp=FHUmAyxfFLtSqh^980-=ehkFtjcl6N9 zSM1QM7SVx4$~c9AUgcj{U^L?csY)2nRv{M?SpA~fdg%}sa=pD4x}1=}sZlhHaYbcS&c{tO^^C{Y*aClTN;x^1tVIV)B?w!!2qx=b<)R@>=|- z21adKZT$hz${olWUoa-)eg+H_K_iC&QCQ|F#D%6 zPwlZV>IoTzaBd5l))C?oddN zLN=7b0lnM#w?$aBrL*4l`nblAX;`W6!h5$}u7$tOb9QZtV?s~b6)OTWf&>%Y^>`wr3lKsPkDS7|yM(|sNN{EZ z`I7dkbC#L~)cm|7*$c2N(%#lLR?n-%ZR71q9w=dj?2l7*8t~ay{KWbze|2S*`izTE zN2(2r(-($*%@B<;%M&!J_CTpHH#MIo74_H(M}f3kaDl7yI*yX7S4h&(519{ zM2%9-t|YZ%cmUe-stcxO&S3~W%w_fguX9J63C7`nD_01HCogh$UTsUBmj+ti(keKo z*?b{4gJ(Ldam~zve>(J-lOsJ$>Q}xR(xH2`I0W+!LnX)j9wK;w`ULI-5SHgztYV3 z?m2_W7|6JYdfeJ0xU_P1h z-|||sl)5o#r9%PtW0aRii;6_pGG|hE_BBb47uMGZ9~KHy9=LJ2)!-9SAx6(D2r986!|m&uEmLUxl*~hG zgdT=R!-^PO=ZVx$gRyXUhp6z5GM~K*)M~Wf5=?A@M%2jDgmh#5H4%|fvgb<_R+LW#bgLiVj z=8E=H2>m{esy9so{EZ3>l|idyN7ZJE9mX3E0ySMn9&L9cURck4Z(DhBx-UvVN==$5 z;@J<_CJpRXqTcGy=#FN|7`V~Z+S=^zWyC2PtocHXBsyz|W+yA6{N^K>#pUHmJ#P+e z37dLOo8u;T#*sErw6qR9dR{!LQB3nQB?@G5GLpieXqqM#+JwqSplMRU16fe=nUPXy zZYUhSLB{u&8e%2LaF4-JH-ZyOlpeW{GK7RVUn;n33vYIhuxYJ{5}E|#a-N1Ei|fss zdo&IKI^(}T#X!)soK+VL9Y7k-gJVz@GF35awSJaP}@Gzl4 zt0=nfb3QwLXFtUyGfSDXlNom6WbTElpBWjJ+67i^kSbSjO}fP%E=tto=f$E9ndc+0 zi&-572_ZEk`NIoAx_`k5uda+(^r!t=ivQULaHeU4M+TpM%VL0gJB=7zjMzZm+aP_wE=NAaDT>6|&7=g^3RmWZMuN+o!|QBDL@ zCu!bGW=<03N3B;wVN`J~tv(xDSMkyYuH3$JTKu-aMt6k3(Nb(noK1UIlv)^FsCAW( zxab5o8qXhH|H;t~-rQ*$0+(^A$HlWS#SJSU&xg(92FQjzW{8AAf$cutXRh(DdM_Pur5{`H0`vUG1fjv=4_uOO1=|En%Be!6*n7jh{PkswT?KIdXI1zX1RRgZ=;_zzhU{80j5=3Bc4~xCcP`fdT-2 z0K_%1s+B0UAxp70p~@9G@j;7$HLl7PIQD*v#&)LiZml`GM{|h8i zZ2bo8iNraeqW|qh&_HDS?)F#yK=*(+=x?xC0A?x-%&F<<$b=sY01N;?1%M3sp22Q~ zF?`lOaV@76``p1ET>HVZUp%0ANDJ1B!?QY5<{rkN`*! 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" + }, + "license": "MIT" +} diff --git a/statistical-consistency-checker/scripts/demo.js b/statistical-consistency-checker/scripts/demo.js new file mode 100644 index 0000000..ac984b3 --- /dev/null +++ b/statistical-consistency-checker/scripts/demo.js @@ -0,0 +1,14 @@ +import fs from "node:fs"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import { + evaluateStatisticalConsistency, + renderStatisticalConsistencyReport +} from "../src/statistical-consistency-checker.js"; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const inputPath = path.join(__dirname, "..", "data", "sample-statistics-input.json"); +const input = JSON.parse(fs.readFileSync(inputPath, "utf8")); + +const result = evaluateStatisticalConsistency(input); +console.log(renderStatisticalConsistencyReport(result)); diff --git a/statistical-consistency-checker/src/statistical-consistency-checker.js b/statistical-consistency-checker/src/statistical-consistency-checker.js new file mode 100644 index 0000000..99e0f0c --- /dev/null +++ b/statistical-consistency-checker/src/statistical-consistency-checker.js @@ -0,0 +1,505 @@ +import crypto from "node:crypto"; + +const SEVERITY_WEIGHT = { + high: 18, + medium: 9, + low: 4 +}; + +const SEVERITY_RANK = { + high: 0, + medium: 1, + low: 2 +}; + +const DEFAULT_ALPHA = 0.05; +const MIN_TOTAL_SAMPLE_SIZE = 30; +const MIN_GROUP_SAMPLE_SIZE = 10; + +function asArray(value) { + return Array.isArray(value) ? value : []; +} + +function asObject(value) { + return value && typeof value === "object" && !Array.isArray(value) ? value : {}; +} + +function parseNumber(value) { + if (typeof value === "number" && Number.isFinite(value)) { + return value; + } + + if (typeof value === "string" && value.trim() !== "") { + const parsed = Number(value); + return Number.isFinite(parsed) ? parsed : null; + } + + return null; +} + +function normalizeText(value) { + return String(value ?? "") + .trim() + .toLowerCase() + .replace(/\s+/g, " "); +} + +function normalizeUnit(value) { + return normalizeText(value).replace(/[._-]+/g, " "); +} + +function stableStringify(value) { + if (Array.isArray(value)) { + return `[${value.map(stableStringify).join(",")}]`; + } + + if (value && typeof value === "object") { + return `{${Object.keys(value) + .sort() + .map((key) => `${JSON.stringify(key)}:${stableStringify(value[key])}`) + .join(",")}}`; + } + + return JSON.stringify(value); +} + +function shortDigest(value, length = 16) { + return crypto.createHash("sha256").update(stableStringify(value)).digest("hex").slice(0, length); +} + +function normalizeSeverity(severity) { + return severity === "high" || severity === "medium" || severity === "low" ? severity : "low"; +} + +function availableArtifactIds(artifacts) { + return new Set( + asArray(artifacts) + .filter((artifact) => artifact && artifact.available !== false) + .map((artifact) => artifact.id) + .filter(Boolean) + ); +} + +function addFinding(findings, analysis, severity, code, message, action, metadata = {}) { + findings.push({ + analysisId: analysis.id ?? "unlabeled-analysis", + severity: normalizeSeverity(severity), + code, + message, + action, + ...metadata + }); +} + +function alphaForAnalysis(analysis) { + const rawAlpha = analysis.alpha; + if (rawAlpha === undefined || rawAlpha === null || rawAlpha === "") { + return DEFAULT_ALPHA; + } + + const alpha = parseNumber(rawAlpha); + return alpha !== null && alpha > 0 && alpha < 1 ? alpha : DEFAULT_ALPHA; +} + +function confidenceInterval(analysis) { + const values = asArray(analysis.confidenceInterval); + if (values.length !== 2) { + return null; + } + + const lower = parseNumber(values[0]); + const upper = parseNumber(values[1]); + if (lower === null || upper === null || lower > upper) { + return null; + } + + return { lower, upper }; +} + +function comparisonCount(analysis) { + const multipleComparisons = asObject(analysis.multipleComparisons); + const explicitTests = parseNumber(multipleComparisons.tests ?? analysis.comparisonCount); + const families = asArray(multipleComparisons.families); + + if (explicitTests !== null && explicitTests > 0) { + return Math.floor(explicitTests); + } + + if (families.length > 0) { + return families.length; + } + + return 1; +} + +function hasCorrection(analysis) { + const correction = normalizeText(asObject(analysis.multipleComparisons).correction); + return correction !== "" && correction !== "none" && correction !== "not reported"; +} + +function checkAlpha(analysis, findings) { + const rawAlpha = analysis.alpha; + if (rawAlpha === undefined || rawAlpha === null || rawAlpha === "") { + return; + } + + const alpha = parseNumber(rawAlpha); + if (alpha === null || alpha <= 0 || alpha >= 1) { + addFinding( + findings, + analysis, + "high", + "invalid_alpha", + "The alpha threshold is missing or outside the 0..1 range.", + "Correct the alpha threshold before interpreting significance." + ); + } +} + +function checkPValueConsistency(analysis, findings) { + const alpha = alphaForAnalysis(analysis); + const pValue = parseNumber(analysis.pValue); + const reportedSignificant = analysis.reportedSignificant; + + if (pValue === null || pValue < 0 || pValue > 1) { + addFinding( + findings, + analysis, + "high", + "invalid_p_value", + "The reported p-value is missing or outside the 0..1 range.", + "Correct the p-value or mark the analysis as pending." + ); + return; + } + + if (typeof reportedSignificant === "boolean") { + const expectedSignificant = pValue <= alpha; + if (reportedSignificant !== expectedSignificant) { + addFinding( + findings, + analysis, + "medium", + "significance_label_mismatch", + `The significance label does not match p=${pValue} at alpha=${alpha}.`, + "Update the significance label or explain the threshold used." + ); + } + } +} + +function checkConfidenceInterval(analysis, findings) { + const interval = confidenceInterval(analysis); + const pValue = parseNumber(analysis.pValue); + const effectSize = parseNumber(analysis.effectSize); + const alpha = alphaForAnalysis(analysis); + const nullValue = parseNumber(analysis.nullValue) ?? 0; + + if (!interval) { + addFinding( + findings, + analysis, + "medium", + "confidence_interval_missing", + "The confidence interval is missing or invalid.", + "Add a two-sided confidence interval for the reported effect." + ); + return; + } + + if (effectSize !== null && (effectSize < interval.lower || effectSize > interval.upper)) { + addFinding( + findings, + analysis, + "high", + "effect_outside_ci", + "The reported effect size is outside its confidence interval.", + "Recalculate the effect size or the interval before submission." + ); + } + + if (pValue !== null && pValue >= 0 && pValue <= 1) { + const crossesNull = interval.lower <= nullValue && interval.upper >= nullValue; + if (pValue <= alpha && crossesNull) { + addFinding( + findings, + analysis, + "high", + "significant_p_value_ci_crosses_null", + "The p-value is significant but the interval still crosses the null value.", + "Recheck the model, confidence level, and reported interval." + ); + } + + if (pValue > alpha && !crossesNull) { + addFinding( + findings, + analysis, + "medium", + "nonsignificant_p_value_ci_excludes_null", + "The p-value is not significant but the interval excludes the null value.", + "Align the p-value, interval, and hypothesis test." + ); + } + } + + const direction = normalizeText(analysis.direction); + if (direction === "positive" && interval.upper < 0) { + addFinding( + findings, + analysis, + "medium", + "direction_interval_mismatch", + "The direction is labeled positive but the interval is negative.", + "Fix the direction label or review the sign convention." + ); + } + + if (direction === "negative" && interval.lower > 0) { + addFinding( + findings, + analysis, + "medium", + "direction_interval_mismatch", + "The direction is labeled negative but the interval is positive.", + "Fix the direction label or review the sign convention." + ); + } +} + +function checkSamples(analysis, findings) { + const sampleSize = parseNumber(analysis.sampleSize); + const groups = asArray(analysis.groups); + + if (sampleSize === null || sampleSize < MIN_TOTAL_SAMPLE_SIZE) { + addFinding( + findings, + analysis, + "medium", + "sample_size_needs_review", + "The analysis has no sample size or a small total sample size.", + "Add power evidence or mark this as exploratory." + ); + } + + for (const group of groups) { + const groupN = parseNumber(group?.n); + if (groupN !== null && groupN < MIN_GROUP_SAMPLE_SIZE) { + addFinding( + findings, + analysis, + "low", + "small_group_size", + `Group ${group.name ?? "unnamed"} has fewer than ${MIN_GROUP_SAMPLE_SIZE} observations.`, + "Confirm the group is not over-interpreted." + ); + } + } +} + +function checkMultipleComparisons(analysis, findings) { + const tests = comparisonCount(analysis); + if (tests > 1 && !hasCorrection(analysis)) { + addFinding( + findings, + analysis, + "medium", + "multiple_comparisons_uncorrected", + `${tests} comparisons are reported without a correction method.`, + "Add a correction method or justify the family-wise testing plan." + ); + } +} + +function checkUnits(analysis, findings) { + for (const unit of asArray(analysis.units)) { + const expected = normalizeUnit(unit?.expected); + const observed = normalizeUnit(unit?.observed); + if (expected && observed && expected !== observed) { + addFinding( + findings, + analysis, + "medium", + "unit_mismatch", + `${unit.variable ?? "A variable"} is reported as ${unit.observed}, expected ${unit.expected}.`, + "Fix the unit label or add a conversion note." + ); + } + } +} + +function checkArtifacts(analysis, artifacts, findings) { + const ids = availableArtifactIds(artifacts); + const requiredIds = [ + ["data", analysis.dataArtifactId], + ["code", analysis.codeArtifactId] + ]; + + for (const [kind, id] of requiredIds) { + if (!id) { + addFinding( + findings, + analysis, + "low", + `${kind}_artifact_not_linked`, + `The ${kind} artifact is not linked to this analysis.`, + `Attach the ${kind} artifact before final review.` + ); + continue; + } + + if (!ids.has(id)) { + addFinding( + findings, + analysis, + "high", + `${kind}_artifact_not_found`, + `The linked ${kind} artifact ${id} is unavailable.`, + `Attach ${id} or update the analysis artifact link.`, + { artifactId: id, artifactKind: kind } + ); + } + } +} + +function checkPreregistration(analysis, findings) { + if (analysis.primaryOutcome === true && analysis.preregistered !== true) { + addFinding( + findings, + analysis, + "medium", + "primary_outcome_not_preregistered", + "A primary outcome is not marked as preregistered.", + "Add registration evidence or mark this as post hoc." + ); + } +} + +function statusFromFindings(score, findings) { + if (findings.some((finding) => finding.severity === "high")) { + return "blocked"; + } + + if (score >= 80) { + return "ready"; + } + + if (score >= 55) { + return "review"; + } + + return "blocked"; +} + +function severityCounts(findings) { + return findings.reduce( + (counts, finding) => { + counts[finding.severity] += 1; + return counts; + }, + { high: 0, medium: 0, low: 0 } + ); +} + +function sortedReviewerActions(findings) { + return [...findings] + .filter((finding) => finding.severity !== "low") + .sort( + (left, right) => + SEVERITY_RANK[left.severity] - SEVERITY_RANK[right.severity] || left.code.localeCompare(right.code) + ) + .map((finding) => ({ + severity: finding.severity, + code: finding.code, + analysisId: finding.analysisId, + artifactId: finding.artifactId, + action: finding.action + })); +} + +export function evaluateStatisticalConsistency(input) { + const packet = asObject(input); + const manuscript = asObject(packet.manuscript); + const analyses = asArray(packet.analyses); + const artifacts = asArray(packet.artifacts); + const findings = []; + + if (!packet.generatedAt) { + throw new Error("generatedAt is required"); + } + + if (analyses.length === 0) { + addFinding( + findings, + { id: "packet" }, + "high", + "analysis_set_empty", + "No statistical analyses were provided.", + "Add at least one analysis record before review." + ); + } + + for (const analysis of analyses.map(asObject)) { + checkAlpha(analysis, findings); + checkPValueConsistency(analysis, findings); + checkConfidenceInterval(analysis, findings); + checkSamples(analysis, findings); + checkMultipleComparisons(analysis, findings); + checkUnits(analysis, findings); + checkArtifacts(analysis, artifacts, findings); + checkPreregistration(analysis, findings); + } + + const penalty = findings.reduce((total, finding) => total + SEVERITY_WEIGHT[finding.severity], 0); + const score = Math.max(0, 100 - penalty); + const counts = severityCounts(findings); + const manifestDigest = shortDigest({ + manuscript, + analyses, + artifacts, + generatedAt: packet.generatedAt + }); + const findingsDigest = shortDigest(findings); + + return { + manuscriptId: manuscript.id ?? "unlabeled-manuscript", + title: manuscript.title ?? "Untitled manuscript", + status: statusFromFindings(score, findings), + score, + counts, + findings, + reviewerActions: sortedReviewerActions(findings), + auditEvents: [ + { + type: "statistical_consistency_evaluated", + at: packet.generatedAt, + analyses: analyses.length, + findings: findings.length, + findingsDigest + } + ], + manifestDigest, + findingsDigest + }; +} + +export function renderStatisticalConsistencyReport(result) { + const lines = [ + "Statistical Consistency Check", + `${result.title}: ${result.status} (${result.score}/100)`, + `Findings high/medium/low: ${result.counts.high}/${result.counts.medium}/${result.counts.low}`, + `Manifest: ${result.manifestDigest}`, + "", + "Reviewer actions:" + ]; + + if (result.reviewerActions.length === 0) { + lines.push("- none"); + } else { + for (const action of result.reviewerActions) { + lines.push(`- ${action.severity} ${action.code}: ${action.action}`); + } + } + + return lines.join("\n"); +} diff --git a/statistical-consistency-checker/test/statistical-consistency-checker.test.js b/statistical-consistency-checker/test/statistical-consistency-checker.test.js new file mode 100644 index 0000000..4282adb --- /dev/null +++ b/statistical-consistency-checker/test/statistical-consistency-checker.test.js @@ -0,0 +1,238 @@ +import assert from "node:assert/strict"; +import test from "node:test"; +import { + evaluateStatisticalConsistency, + renderStatisticalConsistencyReport +} from "../src/statistical-consistency-checker.js"; + +function basePacket(overrides = {}) { + return { + generatedAt: "2026-05-16T16:35:00Z", + manuscript: { + id: "ms-001", + title: "Clean Trial" + }, + artifacts: [ + { id: "data-1", type: "dataset", available: true }, + { id: "code-1", type: "script", available: true } + ], + analyses: [ + { + id: "primary", + pValue: 0.2, + alpha: 0.05, + reportedSignificant: false, + effectSize: 0.1, + confidenceInterval: [-0.2, 0.4], + direction: "positive", + sampleSize: 80, + groups: [ + { name: "a", n: 40 }, + { name: "b", n: 40 } + ], + multipleComparisons: { + tests: 1, + correction: "not reported" + }, + units: [{ variable: "score", expected: "points", observed: "points" }], + primaryOutcome: false, + preregistered: true, + dataArtifactId: "data-1", + codeArtifactId: "code-1" + } + ], + ...overrides + }; +} + +test("allows a clean packet", () => { + const result = evaluateStatisticalConsistency(basePacket()); + + assert.equal(result.status, "ready"); + assert.equal(result.score, 100); + assert.deepEqual(result.counts, { high: 0, medium: 0, low: 0 }); + assert.equal(result.reviewerActions.length, 0); +}); + +test("blocks an effect size outside the confidence interval", () => { + const input = basePacket({ + analyses: [ + { + ...basePacket().analyses[0], + effectSize: 1.2, + confidenceInterval: [0.2, 0.8] + } + ] + }); + + const result = evaluateStatisticalConsistency(input); + + assert.equal(result.status, "blocked"); + assert(result.findings.some((finding) => finding.code === "effect_outside_ci")); +}); + +test("flags significant p-values whose interval crosses the null", () => { + const input = basePacket({ + analyses: [ + { + ...basePacket().analyses[0], + pValue: 0.01, + reportedSignificant: true, + confidenceInterval: [-0.1, 0.5] + } + ] + }); + + const result = evaluateStatisticalConsistency(input); + + assert(result.findings.some((finding) => finding.code === "significant_p_value_ci_crosses_null")); +}); + +test("flags non-significant p-values whose interval excludes the null", () => { + const input = basePacket({ + analyses: [ + { + ...basePacket().analyses[0], + pValue: 0.18, + reportedSignificant: false, + confidenceInterval: [0.1, 0.5] + } + ] + }); + + const result = evaluateStatisticalConsistency(input); + + assert(result.findings.some((finding) => finding.code === "nonsignificant_p_value_ci_excludes_null")); +}); + +test("flags invalid p-values", () => { + const input = basePacket({ + analyses: [ + { + ...basePacket().analyses[0], + pValue: 1.4 + } + ] + }); + + const result = evaluateStatisticalConsistency(input); + + assert.equal(result.status, "blocked"); + assert(result.findings.some((finding) => finding.code === "invalid_p_value")); +}); + +test("flags invalid alpha thresholds", () => { + const input = basePacket({ + analyses: [ + { + ...basePacket().analyses[0], + alpha: 1.3 + } + ] + }); + + const result = evaluateStatisticalConsistency(input); + + assert.equal(result.status, "blocked"); + assert(result.findings.some((finding) => finding.code === "invalid_alpha")); +}); + +test("flags significance labels that do not match alpha", () => { + const input = basePacket({ + analyses: [ + { + ...basePacket().analyses[0], + pValue: 0.01, + reportedSignificant: false, + confidenceInterval: [0.1, 0.5] + } + ] + }); + + const result = evaluateStatisticalConsistency(input); + + assert(result.findings.some((finding) => finding.code === "significance_label_mismatch")); +}); + +test("flags multiple comparisons without correction", () => { + const input = basePacket({ + analyses: [ + { + ...basePacket().analyses[0], + multipleComparisons: { tests: 4, correction: "none" } + } + ] + }); + + const result = evaluateStatisticalConsistency(input); + + assert(result.findings.some((finding) => finding.code === "multiple_comparisons_uncorrected")); +}); + +test("flags unit mismatches and missing artifacts", () => { + const input = basePacket({ + artifacts: [{ id: "data-1", type: "dataset", available: true }], + analyses: [ + { + ...basePacket().analyses[0], + units: [{ variable: "marker", expected: "ng/mL", observed: "pg/mL" }], + codeArtifactId: "missing-code" + } + ] + }); + + const result = evaluateStatisticalConsistency(input); + + assert(result.findings.some((finding) => finding.code === "unit_mismatch")); + const artifactFinding = result.findings.find((finding) => finding.code === "code_artifact_not_found"); + assert.equal(artifactFinding.artifactId, "missing-code"); +}); + +test("requires generatedAt", () => { + assert.throws(() => evaluateStatisticalConsistency({ analyses: [] }), /generatedAt is required/); +}); + +test("produces deterministic digests", () => { + const first = evaluateStatisticalConsistency(basePacket()); + const second = evaluateStatisticalConsistency(basePacket()); + + assert.equal(first.manifestDigest, second.manifestDigest); + assert.equal(first.findingsDigest, second.findingsDigest); +}); + +test("sorts reviewer actions by severity", () => { + const result = evaluateStatisticalConsistency( + basePacket({ + analyses: [ + { + ...basePacket().analyses[0], + multipleComparisons: { tests: 4, correction: "none" }, + codeArtifactId: "missing-code" + } + ] + }) + ); + + assert.equal(result.reviewerActions[0].severity, "high"); + assert.equal(result.reviewerActions[0].code, "code_artifact_not_found"); +}); + +test("renders a reviewer friendly report", () => { + const result = evaluateStatisticalConsistency( + basePacket({ + analyses: [ + { + ...basePacket().analyses[0], + pValue: "bad", + confidenceInterval: [0.1, 0.2] + } + ] + }) + ); + + const report = renderStatisticalConsistencyReport(result); + + assert.match(report, /Statistical Consistency Check/); + assert.match(report, /invalid_p_value/); + assert.match(report, /Manifest:/); +});