Files
Jyotisha/docs/research/rectification_angle_timing_2026_10_01.md
T

8.3 KiB
Raw Blame History

生时校正「角度类时间技法」研究:行运压角 / 次限推运 / 太阳弧(2026-10-01,BUG-1141)

任务书 docs/tasks/TASK-rectification-angle-timing-research-20261001.md。离线研究,生产代码零改动。 数据:references/real_case_calibration/minute_rectification_holdout_v5.json(77 例公开 Rodden-AA,开放集,非盲测)。 脚本:scripts/research/angle_timing_lib.py、scripts/research/angle_timing_research.py;测试 tests/test_angle_timing_research.py。 结果:angle_timing_a1_2026_10_01.json(主检验)、angle_timing_jitter_2026_10_01.json(年龄结构保持的第二对照)、angle_timing_subsets_2026_10_01.json(按精度 / 年代拆分)。三份各两次复跑逐字节一致(PYTHONHASHSEED=0)。

1. 结论

技法 一句话结论 是否建议进产品
TR 行运土星 / 木星 / 罗睺(日精度加火星)压本命上升或天顶 无信号:9 项预先登记检验中,主窗口(±30)真实日期只胜过 31% / 58% / 45% 的乱序日期(容许度 1° / 2° / 3°),年龄结构保持的对照下 62% / 70% / 52% 否
SP 次限推运上升 / 天顶对本命行星 无信号:主窗口真实日期胜过 38% / 37% / 56% 的乱序;对照二 7% / 30% / 60% 否
SA 太阳弧上升 / 天顶对本命行星 无正向信号;1° / 2° 容许度下真实日期反而更差(胜过乱序 8.5% / 1.0%,对照二 0% / 0%),多重比较校正后不显著,原因未解释,方向相反不能当正向信号用 否
  • 显著门槛:9 项检验 Bonferroni 校正后需胜过 ≥ 99.44% 的乱序(200 次);任务书原定未校正 95% 也一并报出——没有任何一格达到 95%。
  • A2(叠加到六题后验)按任务书只对 A1 显著技法做,本轮未做。
  • 与打分层研究(BUG-1091)结论一致的方向:现有 77 例公开传记事件里,找不到能把出生时间定到分钟级的星盘时间信号。区别在于本轮检验的是物理灵敏度足够(1° ≈ 4 分钟)的一类技法,排除的是「灵敏度不够」这个解释。

2. 方法

2.1 特征

对每例每个候选分钟(真值 ±60,步长 1 分钟)、每件带日期事件,算下列三类接触的最小离度(0° / 90° / 180°):

代号 动点 被接触点 事件精度处理
TR 事件日行运土星、木星、平均罗睺 / 计都;日精度另加火星 本命上升、天顶 日:当天;月:该月逐日取最近;年:不用(土星一年走约 12°,远宽于容许度)
SP 次限推运(一天一年,同地点)上升、天顶 本命日、月、水、金、火、木、土 日:当天;月:月中;年:全年 5 点取最近
SA 太阳弧推进的上升、天顶(弧 = 推运太阳 − 本命太阳) 同上 同 SP
  • 黄道:回归黄道;行星与角点在同一黄道下的相位与黄道选择无关。交点:平均交点。
  • 推运角点每 5 个候选分钟精算一次、中间线性插值(误差 < 0.05°)。
  • 每例可用事件数中位:TR 5、SP 13、SA 13。

2.2 检验(预先登记,未事后调参)

  • 候选分数 = 容许度内有接触的事件数;真值排位 = 窗口内其他分钟分数高于真值的比例(并列算半);0 = 真值最好,0.5 = 随机。
  • 主检验:77 例平均真值排位,真实日期 vs 乱序日期(每例每件事按原精度在其生存年份内均匀重抽日期,200 次);9 项 = 3 技法 × 容许度 1° / 2° / 3°;主窗口 ±30,±10 / ±60 一并报。
  • 第二对照(敏感性):每件事前后挪 1~3 年(精度、月日保留),保持真实传记的年龄结构,50 次。
  • 稳健性拆分:按事件精度(日 / 月 / 年)与年代(1900 年前 7 例 / 其余 70 例),每格 50 次乱序。
  • A1 特征无可拟合参数,主检验不需要留一法;A2 才涉及权重拟合(未触发)。

3. 主检验(A1,200 次乱序)

真值平均排位(越小越好;0.5 = 随机)与真实日期胜过的乱序比例:

技法 容许度 ±10 真实 / 乱序均值 / 胜过 ±30 真实 / 乱序均值 / 胜过 ±60 真实 / 乱序均值 / 胜过
TR 1° 0.517 / 0.501 / 26.5% 0.514 / 0.500 / 30.8% 0.521 / 0.502 / 24.2%
TR 2° 0.494 / 0.499 / 57.8% 0.493 / 0.498 / 57.5% 0.504 / 0.501 / 46.0%
TR 3° 0.512 / 0.499 / 23.5% 0.500 / 0.499 / 45.0% 0.507 / 0.500 / 41.5%
SP 1° 0.521 / 0.503 / 27.8% 0.511 / 0.503 / 38.0% 0.518 / 0.504 / 31.0%
SP 2° 0.512 / 0.502 / 36.5% 0.512 / 0.502 / 36.5% 0.526 / 0.501 / 18.0%
SP 3° 0.485 / 0.497 / 69.2% 0.495 / 0.499 / 56.0% 0.512 / 0.498 / 30.5%
SA 1° 0.532 / 0.508 / 21.0% 0.556 / 0.509 / 8.5% 0.585 / 0.518 / 1.5%
SA 2° 0.547 / 0.499 / 4.0% 0.575 / 0.505 / 1.0% 0.592 / 0.514 / 0.0%
SA 3° 0.492 / 0.501 / 64.8% 0.526 / 0.507 / 29.0% 0.549 / 0.516 / 13.5%

乱序均值的标准差约 0.02~0.03;真实值都在乱序分布之内或偏向更差一侧。

4. 第二对照:年龄结构保持(50 次,每件事挪 1~3 年)

技法 容许度 ±30 真实 / 挪动均值 / 胜过
TR 1° / 2° / 3° 0.514 / 0.521 / 62% · 0.493 / 0.506 / 70% · 0.500 / 0.502 / 52%
SP 1° / 2° / 3° 0.511 / 0.477 / 7% · 0.512 / 0.500 / 30% · 0.495 / 0.502 / 60%
SA 1° / 2° / 3° 0.556 / 0.506 / 0% · 0.575 / 0.509 / 0% · 0.526 / 0.538 / 66%

SA 反向偏差的更正:A1 中 SA 1° / 2° 真实日期反而更差,研究中一度推测是乱序对照改变了年龄分布(太阳弧 ≈ 年龄)。第二对照保持了年龄结构,偏差仍在,所以该推测不成立。它是「真值分钟在真实事件日期上更少出现太阳弧接触」,校正后不显著,机制未解释;即便为真也是事后发现、方向相反,按任务书不得据此建正向特征。

5. 稳健性拆分(±30,每格 50 次乱序)

子集 例数 TR 1° / 2° / 3° 胜过 SP 1° / 2° / 3° 胜过 SA 1° / 2° / 3° 胜过
日精度事件 77 54% / 69% / 44% 4% / 16% / 14% 12% / 10% / 44%
月精度事件 77 8% / 16% / 50% 60% / 64% / 22% 16% / 12% / 94%
年精度事件(TR 不适用) 77 50% / 50% / 50% 80% / 62% / 62% 20% / 2% / 10%
1900 年前(LMT 时代) 7 2% / 19% / 0% 24% / 0% / 6% 2% / 20% / 60%
1900 年及以后 70 60% / 74% / 74% 44% / 54% / 66% 16% / 2% / 30%

45 格里没有一格达到 95%;最高 94%(月精度 · SA 3°)在 45 格中出现一次,符合随机波动。1900 年前 7 例普遍更差,与这批记录可能存在历史时区误差一致。事件日期 ±7 天 / ±1 月偏移的稳健性只用于检验已存在的信号,本轮无信号,未做(写明,不算通过)。

6. 局限

  • 只测了「接触计数」这一种组合方式;把事件领域映射到特定角点(如事业 → 天顶)、只用相合等更窄的预设未测。它们是更多的检验,需要新的预先登记与多重比较校正,不能在本轮结果上事后挑选。
  • 开放集非盲测;事件来自公开传记,记录到「月 / 日」的事件仅占 40%。
  • 只用了上升 / 天顶两个角点与七颗本命行星;主限向运(primary directions)、Naibod 弧未测。

7. 给产品的话

这一轮把「是不是因为我们用的规则灵敏度不够」这个最后的解释也排除了:灵敏度够的角度类技法,在 77 例真实传记上同样拿不出比随机日期更好的分钟信号。现有产品口径(盘型 + 可信度、不承诺分钟)保持不变;BUG-1141 按 closed_by_design 关闭。

附:复跑命令

export PYTHONHASHSEED=0
python3 -m scripts.research.angle_timing_research --stages a1 --shuffles 200 --json-out docs/research/angle_timing_a1_2026_10_01.json
python3 -m scripts.research.angle_timing_research --stages jitter --subset-shuffles 50 --json-out docs/research/angle_timing_jitter_2026_10_01.json
python3 -m scripts.research.angle_timing_research --stages subsets --subset-shuffles 50 --json-out docs/research/angle_timing_subsets_2026_10_01.json
python3 -m pytest -q tests/test_angle_timing_research.py