mirror of
https://github.com/allaunthefox/SilverSight.git
synced 2026-07-30 17:16:16 +00:00
- Rename python/build_corpus250.py → python/build_manifold.py - Rename emitCorpus250 → emitManifold, corpus250 → allFixtures - Schema: avm_rrc_corpus250_v1 → avm_rrc_manifold_v1 - Classify.lean now delegates to ClassifyN (generic n-dim module) - ClassifyN.hashTable8: extracted 119-entry hash table from old Classify - build_manifold.py now emits ClassifyN.classifyProxy hashTable8 + classifyExact 8 - build_pist_matrices_250.py: added pistMatrixDim constant - SilverSight docs/AGENTS.md updated for renames - Research Stack AGENTS.md updated for toolchain references - Authentik deployed on neon-64gb (port 30001, working) - cross_domain_significance.py: statistical significance test (all phases <6σ with n=3) - setup_authentik.sh: fixed image, password, port, key sharing Build: 3307 jobs, 0 errors (lake build)
96 lines
3.2 KiB
Python
96 lines
3.2 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
cross_domain_significance.py — Statistical significance test for
|
||
RRC cross-domain 1/n residual signatures.
|
||
|
||
Tests whether observed deviations from predicted 1/n scaling or
|
||
1/7 meta-solid threshold are statistically significant at ≥6σ.
|
||
"""
|
||
|
||
import json, math
|
||
from pathlib import Path
|
||
from datetime import datetime, timezone
|
||
|
||
ROOT = Path(__file__).resolve().parents[1]
|
||
|
||
def gaussian_p_value(z: float) -> float:
|
||
"""Two-tailed p-value from z-score via complementary error function."""
|
||
return math.erfc(abs(z) / math.sqrt(2))
|
||
|
||
def sigma_from_p(p: float) -> float:
|
||
"""Convert p-value to sigma level (two-tailed) via inverse erfc approximation."""
|
||
if p <= 0:
|
||
return float('inf')
|
||
if p >= 1:
|
||
return 0.0
|
||
t = math.sqrt(-2 * math.log(p if p <= 0.5 else 1 - p))
|
||
c = (2.515517, 0.802853, 0.010328)
|
||
d = (1.432788, 0.189269, 0.001308)
|
||
return t - (c[0] + c[1]*t + c[2]*t**2) / (1 + d[0]*t + d[1]*t**2 + d[2]*t**3)
|
||
|
||
def main():
|
||
sig_path = ROOT / "signatures" / "cross_domain_signatures.json"
|
||
sigs = json.loads(sig_path.read_text())
|
||
entries = sigs["signatures"]
|
||
|
||
phases = {}
|
||
for e in entries:
|
||
phases.setdefault(e.get("phase", 0), []).append(e)
|
||
|
||
results = []
|
||
for phase_num in sorted(phases):
|
||
group = phases[phase_num]
|
||
domain = group[0].get("domain", "Unknown")
|
||
deviations = [abs(e["deviation"]) for e in group if "deviation" in e]
|
||
residuals = [e["residual_mhz"] for e in group if "residual_mhz" in e]
|
||
|
||
values = deviations or residuals
|
||
n = len(values)
|
||
|
||
if n < 2:
|
||
results.append({
|
||
"phase": phase_num, "domain": domain,
|
||
"n": n, "status": "insufficient_data"
|
||
})
|
||
continue
|
||
|
||
mean_val = sum(values) / n
|
||
var = sum((v - mean_val)**2 for v in values) / (n - 1) if n > 1 else 0
|
||
se = math.sqrt(var / n)
|
||
z = mean_val / se if se > 0 else 0.0
|
||
p = gaussian_p_value(z)
|
||
sigma = sigma_from_p(p)
|
||
|
||
results.append({
|
||
"phase": phase_num,
|
||
"domain": domain,
|
||
"n": n,
|
||
"mean_deviation": round(mean_val, 6),
|
||
"std_err": round(se, 6),
|
||
"z_score": round(z, 4),
|
||
"sigma_level": round(sigma, 2) if sigma < 1e6 else "inf",
|
||
"passes_6sigma": bool(sigma >= 6.0),
|
||
})
|
||
|
||
summary = {
|
||
"schema": "cross_domain_significance_v1",
|
||
"generated_at": datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ"),
|
||
"source": "cross_domain_signatures.json",
|
||
"total_entries": len(entries),
|
||
"phases": results,
|
||
}
|
||
|
||
out_path = ROOT / "signatures" / "cross_domain_significance.json"
|
||
out_path.write_text(json.dumps(summary, indent=2) + "\n")
|
||
print(f"Wrote {out_path}")
|
||
for r in results:
|
||
s = r.get("sigma_level")
|
||
if s is not None and s != "inf":
|
||
tag = "✅" if r["passes_6sigma"] else "❌"
|
||
print(f" Phase {r['phase']} ({r['domain']}): σ={s} {tag}")
|
||
else:
|
||
tag = "✅" if r.get("status") == "insufficient_data" else "❌"
|
||
print(f" Phase {r['phase']} ({r['domain']}): σ={s} {tag}")
|
||
|
||
if __name__ == "__main__":
|
||
main()
|