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: strong null. Max ΔR² = +0.0041 across all LR04 regimes and EPICA CO₂ — below the 0.005 tentative-adoption threshold. Even with Laskar 2010’s wide-range eccentricity substituted in, ΔR² = 0.000 on LR04 and 0.00001 on EPICA CO₂. Classical insolation features alone explain only R² = 0.05 of post-MPT LR04 (vs L1 alone at R² = 0.87). The 8H gravitational-coupling lattice already encodes all the insolation-relevant variance.

Reproducibility: milankovitch_insolation_extension.py + extract_insolation_features.js. Output JSON: data/insolation-extension-results.json.


Question

The canonical climate formula (Climate Formula) is C(t) = c₀ + L1(t) + L2(t) + L3(t), where L1 is 32 integer divisors of 8H = 2,682,536 yr (orbital-coupling lattice), 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 32 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.8776+0.0041
iNHG-MPT1000–27000.72890.7297+0.0009
pre-iNHG2700–53200.42980.4305+0.0007
lr04-full0–53200.25530.2573+0.0021
EPICA CO₂0–8000.84520.8494+0.0042

Max ΔR² = +0.0041 — well below the 0.005 tentative-adoption threshold.

L_insol coefficients (post-MPT)

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

CoefficientValueFeature
γ ε−23.45°−0.0069obliquity anomaly
γ e+0.0774eccentricity
γ e·sin(ϖ)−0.0263climatic precession (sin)
γ e·cos(ϖ)−0.0388climatic precession (cos)

All four coefficients are small (≤ 8% of normalised residual range). Eccentricity has the largest residual coefficient, but its contribution to overall R² is still only ~0.4%.

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.04918×
iNHG-MPT0.7220.00896×
pre-iNHG0.3810.0004950×
lr04-full0.2390.002120×

The 8H gravitational-coupling lattice (L1) carries 18 – 950× more explanatory power than classical Berger insolation features at every LR04 time window tested.

Side-by-side with Laskar 2010 hardening

The model’s analytical e(t) varies only 0.014–0.017 (single-cycle law-of-cosines formula) vs Laskar 2010’s full ~0.003–0.06 envelope. Substituting Laskar’s wider-range e(t) and ϖ(t) hardens the null rather than softening it. Full picture in one table:

TestLR04 (post-MPT, 0–1000 kyr)LR04 (0–500 kyr, Laskar window)EPICA CO₂ (0–800 kyr)
L1 alone (32 lattice integers)R² = 0.870R² ≈ 0.93R² ≈ 0.80
L1+L2+L3 (canonical formula)R² = 0.8735R² = 0.9424R² = 0.8452
Berger insolation alone (model e/ϖ)R² = 0.049R² = 0.188R² = 0.096
Berger insolation alone (Laskar e/ϖ)R² = 0.293R² = 0.172
L1+L2+L3 + Berger insolation (model)R² = 0.8776 → ΔR² = +0.0041R² = 0.9436 → +0.00123R² = 0.8494 → +0.0042
L1+L2+L3 + Berger insolation (Laskar)R² = 0.9424 → +0.00000R² = 0.9230 → +0.00001

Three lines tell the story:

  1. The 8H lattice (L1) carries the variance. R² = 0.87 on post-MPT LR04 — the lattice alone, 32 sinusoids at fixed gravitational-rhythm frequencies.
  2. Classical insolation alone explains very little. R² = 0.05 with our model’s e → R² = 0.29 with Laskar’s full-range e. Significant absolute, but a fraction of what L1 captures.
  3. The two parameterisations carry overlapping, not independent, information. Adding Laskar’s better-parameterised insolation to L1+L2+L3 yields ΔR² = 0.000 on LR04 and ΔR² = 0.00001 on EPICA. The lattice already contains all of it.

The third line is the crux. Berger insolation’s R² = 0.29 (Laskar e) is real — it’s just already inside L1.

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 — strong null

Max ΔR² = +0.0041 < tentative threshold 0.005

L1’s 32 integer-divisor lattice already encodes the variance that classical Berger insolation features provide. Adding ε(t), e(t), e·sin(ϖ), e·cos(ϖ) as separate regressors yields essentially no additional R² — at most 0.4% in any LR04 regime. The canonical formula C(t) = c₀ + L1(t) + L2(t) + L3(t) is complete with respect to the insolation degrees of freedom. No 4th canonical layer is added.


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 32 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.049 at post-MPT (and ≤ 0.008 pre-MPT). 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. ΔR² is slightly larger in regimes where L1+L2+L3 alone is weaker (post-MPT 0.004; pre-iNHG 0.0007). This is expected — when the formula already explains most variance, there is little headroom for additional features. The fact that ΔR² is small in every window tested strengthens the null rather than weakening it.


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

Total runtime: <1 second. Deterministic, no random seeds. The Laskar 2010 hardening test uses public/input/la2010-orbital-elements.json as input. Output JSON data/insolation-extension-results.json contains the full per-regime breakdown including L_insol-only R², coefficients, and verdict string.


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: