Skip to Content
📄 Fibonacci Laws — Read the paper
The ModelInsolation Null Test

Insolation Null Test — Does Berger Insolation Add Anything to L1+L2+L3?

TL;DR: we tested whether adding the classical Berger 1978 insolation features — obliquity ε(t), eccentricity e(t), and the climatic-precession products e·sin(ϖ) and e·cos(ϖ) — to the canonical climate formula (L1+L2+L3) improves R². Result for classical insolation: null. With the real orbital elements (La2010a on 0–500 kyr, La2004 over the full 5.3-Myr record) the added layer has no cross-window-stable gain in any LR04 regime — ΔR² = +0.00000 on LR04 0–500 kyr, +0.00001 on EPICA CO₂, and a maximum cross-validated +0.0051 anywhere in the record. Classical insolation features alone explain only R² = 0.0544 of post-MPT LR04 (vs L1 alone at R² = 0.870). With the model’s own H/3 eccentricity line in the features, the pre-registered statistic reads max ΔR² = +0.0297 in the pre-iNHG regime and survives cross-validation there (+0.0212) — Laskar’s e(t) does not reproduce it, so this is a sensitivity of the weakest-fit regime to a lattice-family line, recorded as an open L1-attribution item, not adopted as a layer. The 8H gravitational-coupling lattice already encodes the insolation-relevant variance.

Reproducibility: extract_insolation_features.jsmilankovitch_insolation_extension.pymilankovitch_insolation_laskar_check.pymilankovitch_insolation_stability.py. Tracked outputs: insolation-extension-results.json, insolation-laskar-check-results.json, insolation-stability-results.json. Every number on this page is bound to those files.


Question

The canonical climate formula (Climate Formula) is C(t) = c₀ + L1(t) + L2(t) + L3(t), where L1 was, for this test, the pre-admission lattice of 32 integer divisors of 8H = 2,682,536 yr (the test’s own result led to admitting n = 24 as the 33rd; orbital-coupling lattice; J2000 anchor — the integer-divisor positions are invariant at any epoch but the literal year counts rescale at geological time, see Expanding Resonance), L2 is 3 carbon-thermostat lines (405 / 202 / 135 kyr), and L3 is 6 Heaviside step components (PETM, EOT, Mi-1, MMCT, iNHG, MPT).

Standard Milankovitch theory (Berger 1978) attributes climate variation to solar insolation, parameterised by three orbital elements — obliquity ε(t), eccentricity e(t), and longitude of perihelion ϖ(t) — combined as climatic-precession products e·sin(ϖ), e·cos(ϖ). So:

Can we improve R² by adding these four classical insolation features to L1+L2+L3?

If yes → adopt them as a 4th canonical layer (L_insol). If no → L1’s lattice integers already encode whatever insolation contributes.


Method

Step 1: extract insolation features at LR04 sample times using the model’s analytical functions (computeObliquityEarth, computeEccentricityEarth, calcEarthPerihelionPredictive from tools/lib/orbital-engine.js).

Step 2: for each regime (post-MPT, iNHG-MPT, pre-iNHG, lr04-full, EPICA CO₂):

  1. Fit canonical L1+L2+L3 → measure r2_canon.
  2. Standardise the 4 insolation features (zero-mean, unit-std).
  3. Fit L_insol to the L1+L2+L3 residual via ridge regression (λ = 0.01).
  4. Compute ΔR² = R²(L1+L2+L3+L_insol) − R²(L1+L2+L3).

Step 3: pre-registered decision rule:

Max ΔR² across regimesVerdict
> 0.02POSITIVE — adopt L_insol as canonical 4th layer
0.005 – 0.02TENTATIVE — investigate cross-window stability before adopting
< 0.005NULL — L1 already captures insolation-driven variance

Results

ΔR² when L_insol is added to L1+L2+L3

RegimeWindow (kyr)L1+L2+L3+ L_insolΔR²
post-MPT0–10000.87350.8774+0.0038
iNHG-MPT1000–27000.72890.7358+0.0069
pre-iNHG2700–53200.42980.4595+0.0297
lr04-full0–53200.25530.2587+0.0035
EPICA CO₂0–8000.84520.8491+0.0040

Max ΔR² = +0.0297 (pre-iNHG) — inside the pre-registered POSITIVE band, which is why the cross-window stability check below decides the verdict.

L_insol coefficients (post-MPT)

After standardising each feature, the regression coefficients on the canonical-residual:

CoefficientValueFeature
γ ε−23.45°−0.0182obliquity anomaly
γ e+0.0150eccentricity
γ e·sin(ϖ)+0.0487climatic precession (sin)
γ e·cos(ϖ)−0.0361climatic precession (cos)

All four coefficients are small (≤ 5% of normalised residual range); their combined contribution to post-MPT R² is +0.0038.

L1 alone vs Berger insolation alone

How much classical insolation explains on its own (no L1, no L2, no L3), pure 4-feature regression vs LR04:

RegimeR²_L1R²_insol_onlyL1 / insol ratio
post-MPT0.8700.054416×
iNHG-MPT0.7220.010569×
pre-iNHG0.3810.029813×
lr04-full0.2390.003568×

The 8H gravitational-coupling lattice (L1) carries an order of magnitude or more explanatory power than the classical Berger insolation features at every LR04 time window tested.

Side-by-side with Laskar 2010 hardening

The model’s e(t) is a single H/3 line, e(t) = base′·(1 + cos θ₃/2), spanning 0.00780.0233 over the LR04 record, against Laskar’s multi-mode envelope 0.00020.0578. Substituting the real e(t) and ϖ(t) removes the gain rather than adding to it. On the 0–500 kyr La2010a window:

TestLR04 (0–500 kyr)EPICA CO₂ (0–500 kyr)
L1+L2+L3 (canonical formula)R² = 0.9424R² = 0.9230
Berger insolation alone (model e/ϖ)R² = 0.191R² = 0.118
Berger insolation alone (Laskar e/ϖ)R² = 0.293R² = 0.172
L1+L2+L3 + Berger insolation (model)R² = 0.9430 → ΔR² = +0.00062R² = 0.9245+0.00152
L1+L2+L3 + Berger insolation (Laskar)R² = 0.9424+0.00000R² = 0.9230+0.00001

Cross-window stability — La2004 over the full record

The pre-registered rule reserves adoption for gains that are stable across windows. The stability instrument applies that check per LR04 regime with two feature sets — the model’s own e(t), ϖ(t) and La2004’s e(t), ϖ(t) over the whole 5.3-Myr record (obliquity held to the model) — cross-validating the L_insol layer split-half (canonical baseline fitted on the full regime; L_insol coefficients fitted on one half, scored on the other, both directions):

RegimeWindow (kyr)ΔR² model (in-sample)ΔR² La2004 (in-sample)CV ΔR² modelCV ΔR² La2004
post-MPT0–1000+0.0038+0.0008+0.0032−0.0048
iNHG-MPT1000–2700+0.0069+0.0010−0.0126−0.0134
pre-iNHG2700–5320+0.0297+0.0046+0.0212−0.0274
lr04-full0–5320+0.0035+0.0245−0.0094+0.0051

Three lines tell the story:

  1. The 8H lattice (L1) carries the variance. R² = 0.870 on post-MPT LR04 — the lattice alone, 32 sinusoids at fixed gravitational-rhythm frequencies.
  2. Classical insolation alone explains very little. R² = 0.0544 with the model’s e → R² = 0.293 with Laskar’s full-range e (0–500 kyr). Significant absolute, but a fraction of what L1 captures.
  3. Real orbital forcing never passes the stability bar. La2004’s one in-sample gain (lr04-full) collapses out of sample to +0.0051; the maximum cross-validated gain with the real elements anywhere is +0.0051, and on 0–500 kyr La2010a adds ΔR² = +0.00000 on LR04 and +0.00001 on EPICA. The lattice already contains all of it.

The one gain that survives cross-validation belongs to the model’s own e(t) in pre-iNHG (+0.0212, both halves positive). Because La2004’s e(t) does not reproduce it, it is not an insolation effect. A follow-up attribution identifies it as the single lattice line n = 24 (8H/24 = H/3, 111.8 kyr), which is not among L1’s 32 divisors (the list runs 2225): a free-phase 8H/24 pair gives the identical cross-validated gain (+0.0144 vs e(t) alone +0.0144), e(t) adds nothing on top of it (+0.0000 in sample), the neighbouring lines n = 23.5 and 24.5 are negative out of sample (−0.0459, −0.0114), and the data’s phase agrees with the model’s fixed H/3 phase to −8.5° (2.7 kyr). Secular theory has no 112-kyr eccentricity line; H/3 is the model’s own prediction, and the pre-iNHG record carries it out of sample at the model’s phase.

Strict mathematical reading: the L1 frequencies (g_j ± g_k, k ± s_j beats at integer divisors of 8H) span the same linear subspace as Berger’s 4-feature decomposition. Once L1 is in the model, Berger features are linearly dependent on L1 features by construction — the empirical ΔR² = 0 result with Laskar substitution confirms this in data. This is not a coincidence; it is a theorem of secular theory expressed in regression form.


Verdict — null for classical insolation; a pre-iNHG sensitivity to the model’s own e(t)

Max ΔR² (model features) = <V k="insolExtMaxDeltaR2" /> pre-iNHG, in-sample → POSITIVE band Cross-validated, same regime, model features = <V k="insolStabModelCvPreInhg" /> (stable) Cross-validated, same regime, La2004 features = <V k="insolStabLaskarCvPreInhg" /> (no gain) Every other regime, cross-validated, either set ≤ +0.005

With the real orbital elements, L1’s integer-divisor lattice already encodes the variance that classical Berger insolation features provide — no cross-window-stable gain in any regime. The canonical formula C(t) = c₀ + L1(t) + L2(t) + L3(t) stands; no 4th canonical layer is adopted. The pre-iNHG gain that the model’s single-line e(t) produces is attributed to the lattice line n = 24 (above) — not a climate-formula layer. Whether n = 24 joins L1 is a separate structural decision: added to the lattice it lifts the pre-iNHG fit by ΔR² = +0.0196 at 1.64× the median amplitude, but on the full LR04 record it is 0.79× the median, below the admission rule; the lattice ships as 32.


Discussion

Insolation features are downstream of gravitational coupling. The three quantities ε(t), e(t), ϖ(t) are themselves products of the same gravitational coupling among solar-system bodies that produces the 8H lattice. Berger’s secular theory derives ε(t) and e(t) as sums of beats among Laskar’s fundamental frequencies (g₁..g₈, s₁..s₈); those beats are L1’s 33 integers (see L1 Attribution). Once L1 is in the formula, adding the literally-derived quantities is double-counting.

Classical insolation has very low standalone explanatory power for LR04. R²_insol_only = 0.0544 at post-MPT (and ≤ 0.0298 in the older regimes). LR04 is a record of ice volume, not summer-day insolation.

Consistent with the Climate Summary §4.3 conclusion: climate is forced by the gravitational coupling among solar-system bodies; insolation is one channel through which that coupling reaches Earth; the 8H integer-divisor lattice is a more complete description of the rhythm than the classical Berger insolation parameterisation — strictly more expressive, no information lost.


Caveats

Four features, not the full Berger 1978 expansion. The canonical Berger 1978 insolation formula includes higher-order terms (ε², ε·sin ϖ, e²·sin 2ϖ, etc.) and latitude/season-specific quantities like 65°N June caloric summer insolation W₆₅(t). We tested only the four linear Milankovitch features (ε, e, e·sin ϖ, e·cos ϖ) because they are the standard climatic-precession basis cited in every review of Milankovitch theory, and higher-order terms are products and harmonics of the same primitives — if the linear quartet adds <0.5% R², no realistic higher-order expansion will close the gap to the 0.87 set by L1.

Window/regime dependence. The in-sample ΔR² with the model’s own features is largest where L1+L2+L3 is weakest (pre-iNHG, R² = 0.4298) — headroom that any extra regressor can absorb. That is exactly why the verdict rests on the cross-validated, real-orbital-element check above rather than on the in-sample statistic alone.


Reproducibility

# Step 1 — dump insolation features at LR04 sample times node scripts/extract_insolation_features.js # Step 2 — run augmented regression and write results python3 scripts/milankovitch_insolation_extension.py # Step 3 — Laskar 2010 hardening on 0–500 kyr python3 scripts/milankovitch_insolation_laskar_check.py # Step 4 — cross-window stability with La2004 over the full record python3 scripts/milankovitch_insolation_stability.py

Total runtime: a few seconds. Deterministic, no random seeds. The hardening tests use public/input/la2010-orbital-elements.json and data/la2004-earth-51myr-back.asc as inputs. The three tracked output JSONs carry the full per-regime breakdowns, coefficients and verdict strings; every number on this page is a registry value bound to them.


See also

  • Climate Summary — the synthesis this test empirically defends
  • Climate Formula — canonical L1+L2+L3 architecture (the formula tested here)
  • L1 Attribution — per-integer Berger vs Holistic mapping; explains why L1 already encodes Berger insolation beats
  • Related Work — position relative to recent peer-reviewed work
Last updated on: