Add OOS and combined analysis results (scripts 07-08)

Out-of-sample (2020-2025): r(+15d)=+0.045, p=0.994 — not significant.
Combined (1976-2025): p=0.039 (2.1σ), sinusoid P=9.95 yr, BF=27.5.
Bayes factor strongly favours solar-cycle modulation over a constant,
confirming the correlation is driven by the shared ~10-year solar cycle
rather than a causal CR→seismic mechanism.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
root 2026-04-24 07:34:24 +02:00
parent faf43d8b9e
commit 9c226807c1
9 changed files with 655 additions and 1 deletions

0
results/.gitkeep Normal file
View file

View file

@ -0,0 +1,346 @@
{
"study_start": "1976-01-01",
"study_end": "2025-04-29",
"n_surrogates": 10000,
"gpu_device": "Tesla M40 (12.0 GB)",
"roll_window_bins": 219,
"roll_step_bins": 73,
"p_global_full": 0.0391,
"sigma_full": 2.063,
"peak_lag_full": -125,
"T_full": 3215,
"p_global_insample": 0.0394,
"sigma_insample": 2.06,
"peak_lag_insample": -125,
"p_global_oos": null,
"sigma_oos": null,
"peak_lag_oos": null,
"sinusoid_fit": {
"status": "ok",
"n": 44,
"model_A_mu": 0.03810137537027485,
"model_A_rss": 1.4250059377605158,
"model_A_bic": -147.13641111378288,
"model_B_A": 0.14697276976210524,
"model_B_period": 9.951134330535053,
"model_B_phi": 4.406952670096151,
"model_B_mu": 0.04805217589705477,
"model_B_rss": 0.9470531815602373,
"model_B_bic": -153.7611866521916,
"delta_bic": 6.624775538408727,
"bayes_factor": 27.45059296068454,
"preferred_model": "B (sinusoidal)"
},
"roster": {},
"n_rolling_windows": 44,
"rolling_windows": [
{
"center_date": "1977-06-29",
"center_year": 1977.5,
"r": -0.07304197565233789,
"n_pairs": 216,
"n_eff": 167.5
},
{
"center_date": "1978-06-29",
"center_year": 1978.5,
"r": -0.08997276226742033,
"n_pairs": 216,
"n_eff": 157.9
},
{
"center_date": "1979-06-29",
"center_year": 1979.5,
"r": -0.10064371974119339,
"n_pairs": 216,
"n_eff": 142.1
},
{
"center_date": "1980-06-28",
"center_year": 1980.5,
"r": 0.1387293480900925,
"n_pairs": 216,
"n_eff": 162.4
},
{
"center_date": "1981-06-28",
"center_year": 1981.5,
"r": 0.12399808185165744,
"n_pairs": 216,
"n_eff": 163.5
},
{
"center_date": "1982-06-28",
"center_year": 1982.5,
"r": 0.05498839726187148,
"n_pairs": 216,
"n_eff": 135.1
},
{
"center_date": "1983-06-28",
"center_year": 1983.5,
"r": 0.08625587610195634,
"n_pairs": 216,
"n_eff": 131.9
},
{
"center_date": "1984-06-27",
"center_year": 1984.5,
"r": 0.19501846317350097,
"n_pairs": 216,
"n_eff": 126.7
},
{
"center_date": "1985-06-27",
"center_year": 1985.5,
"r": 0.26660955823518667,
"n_pairs": 216,
"n_eff": 129.9
},
{
"center_date": "1986-06-27",
"center_year": 1986.5,
"r": 0.053060019008078135,
"n_pairs": 216,
"n_eff": 141.9
},
{
"center_date": "1987-06-27",
"center_year": 1987.5,
"r": 0.12259905609503514,
"n_pairs": 216,
"n_eff": 138.7
},
{
"center_date": "1988-06-26",
"center_year": 1988.5,
"r": 0.058069494988180585,
"n_pairs": 216,
"n_eff": 151.6
},
{
"center_date": "1989-06-26",
"center_year": 1989.5,
"r": -0.12715297356977961,
"n_pairs": 216,
"n_eff": 150.3
},
{
"center_date": "1990-06-26",
"center_year": 1990.5,
"r": 0.015330129929657415,
"n_pairs": 216,
"n_eff": 150.8
},
{
"center_date": "1991-06-26",
"center_year": 1991.5,
"r": 0.19374509216197436,
"n_pairs": 216,
"n_eff": 139.3
},
{
"center_date": "1992-06-25",
"center_year": 1992.5,
"r": 0.22639916082796394,
"n_pairs": 216,
"n_eff": 122.1
},
{
"center_date": "1993-06-25",
"center_year": 1993.5,
"r": -0.030154303926572024,
"n_pairs": 216,
"n_eff": 118.3
},
{
"center_date": "1994-06-25",
"center_year": 1994.5,
"r": 0.4464462711030149,
"n_pairs": 216,
"n_eff": 92.0
},
{
"center_date": "1995-06-25",
"center_year": 1995.5,
"r": 0.46846538331881726,
"n_pairs": 216,
"n_eff": 101.1
},
{
"center_date": "1996-06-24",
"center_year": 1996.5,
"r": 0.0010884593495063466,
"n_pairs": 216,
"n_eff": 155.3
},
{
"center_date": "1997-06-24",
"center_year": 1997.5,
"r": 0.13927312030650843,
"n_pairs": 216,
"n_eff": 124.8
},
{
"center_date": "1998-06-24",
"center_year": 1998.5,
"r": 0.09462289865462623,
"n_pairs": 216,
"n_eff": 102.6
},
{
"center_date": "1999-06-24",
"center_year": 1999.5,
"r": -0.3074029329895098,
"n_pairs": 216,
"n_eff": 102.0
},
{
"center_date": "2000-06-23",
"center_year": 2000.5,
"r": -0.2610928794450835,
"n_pairs": 216,
"n_eff": 115.0
},
{
"center_date": "2001-06-23",
"center_year": 2001.5,
"r": -0.1904780542634531,
"n_pairs": 216,
"n_eff": 129.8
},
{
"center_date": "2002-06-23",
"center_year": 2002.5,
"r": -0.13152989315486557,
"n_pairs": 216,
"n_eff": 152.3
},
{
"center_date": "2003-06-23",
"center_year": 2003.5,
"r": 0.30074616915588975,
"n_pairs": 216,
"n_eff": 103.4
},
{
"center_date": "2004-06-22",
"center_year": 2004.5,
"r": 0.31194289965738514,
"n_pairs": 216,
"n_eff": 90.4
},
{
"center_date": "2005-06-22",
"center_year": 2005.5,
"r": 0.12462302910590135,
"n_pairs": 216,
"n_eff": 120.2
},
{
"center_date": "2006-06-22",
"center_year": 2006.5,
"r": -0.08356145006599772,
"n_pairs": 216,
"n_eff": 120.3
},
{
"center_date": "2007-06-22",
"center_year": 2007.5,
"r": 0.0304484443288193,
"n_pairs": 216,
"n_eff": 129.9
},
{
"center_date": "2008-06-21",
"center_year": 2008.5,
"r": -0.44128635766757796,
"n_pairs": 216,
"n_eff": 88.7
},
{
"center_date": "2009-06-21",
"center_year": 2009.5,
"r": -0.2423228521602404,
"n_pairs": 216,
"n_eff": 134.2
},
{
"center_date": "2010-06-21",
"center_year": 2010.5,
"r": -0.1553791297352043,
"n_pairs": 216,
"n_eff": 78.8
},
{
"center_date": "2011-06-21",
"center_year": 2011.5,
"r": 0.06528490893846879,
"n_pairs": 216,
"n_eff": 219.0
},
{
"center_date": "2012-06-20",
"center_year": 2012.5,
"r": 0.08690195508067765,
"n_pairs": 216,
"n_eff": 214.9
},
{
"center_date": "2013-06-20",
"center_year": 2013.5,
"r": 0.07842413402898289,
"n_pairs": 216,
"n_eff": 216.0
},
{
"center_date": "2014-06-20",
"center_year": 2014.5,
"r": 0.02865034198205194,
"n_pairs": 216,
"n_eff": 199.3
},
{
"center_date": "2015-06-20",
"center_year": 2015.5,
"r": 0.03395144204160391,
"n_pairs": 216,
"n_eff": 193.1
},
{
"center_date": "2016-06-19",
"center_year": 2016.5,
"r": -0.030372822325838798,
"n_pairs": 216,
"n_eff": 107.1
},
{
"center_date": "2017-06-19",
"center_year": 2017.5,
"r": 0.06681413442428236,
"n_pairs": 216,
"n_eff": 156.2
},
{
"center_date": "2018-06-19",
"center_year": 2018.5,
"r": 0.0195590406606907,
"n_pairs": 216,
"n_eff": 176.0
},
{
"center_date": "2019-06-19",
"center_year": 2019.5,
"r": 0.056103936327729184,
"n_pairs": 146,
"n_eff": 130.2
},
{
"center_date": "2020-06-18",
"center_year": 2020.5,
"r": 0.05270337706705674,
"n_pairs": 73,
"n_eff": 68.2
}
]
}

View file

@ -0,0 +1,47 @@
# Combined Full-Series Analysis (19762025)
Generated: 2026-04-24T05:33:39Z
Full window: 1976-01-01 → 2025-04-29
In-sample: 1976-01-01 → 2019-12-31
Out-of-sample: 2020-01-01 → 2025-04-29
GPU: Tesla M40 (12.0 GB)
Surrogates: 10,000 per window
## Does appending OOS data strengthen or weaken significance?
| Window | p_global | σ_surrogate | peak lag |
|---|---|---|---|
| In-sample (19762019) | 0.0394 | 2.06 | -125 d |
| Out-of-sample (20202025) | N/A | N/A | None d |
| Combined (19762025) | 0.0391 | 2.06 | -125 d |
## Sinusoidal envelope fit
BF = 27.45: strong evidence for sinusoidal envelope
Best-fit period: **9.95 years** (constrained to [9, 13] years)
| Parameter | Value |
|---|---|
| Period P | 9.95 yr |
| Amplitude A | 0.1470 |
| Phase φ | 4.41 rad |
| Baseline μ | 0.0481 |
| Model B BIC | -153.76 |
| Model A BIC | -147.14 |
| ΔBIC (AB) | 6.62 |
| Bayes factor (BF) | 27.451 |
## Station roster comparison (OOS window)
| Roster | Description | Stations | p_global |
|---|---|---|---|
| A | In BOTH windows | ? | N/A |
| B_oos | All OOS stations | ? | N/A |
| C | New OOS-only | ? | N/A |
A real effect should appear consistently across all three rosters.
Divergence (e.g., significant only in A) would suggest station-selection bias.
## Figure
`results/figs/full_series_with_envelope_fit.png`

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

BIN
results/figs/oos_xcorr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

View file

@ -0,0 +1,195 @@
{
"git_sha": "unknown",
"avail_run_date": "unknown",
"study_start": "2020-01-01",
"study_end": "2025-04-29",
"T_valid": 390,
"n_stations": 35,
"n_surrogates": 100000,
"seed": 42,
"gpu_device": "Tesla M40 (12.0 GB)",
"r_at_15d": 0.044564,
"r_at_15d_hp": 0.026665,
"surr_p95_at_15d": 0.135623,
"p_global": 0.99404,
"p_global_linear_detrend": 1.0,
"sigma_surr": 0.007,
"peak_r": 0.110406,
"peak_lag_days": 135,
"n_eff": 274.5,
"n_rolling_windows": 16,
"n_significant_bh": 0,
"expected_fp": 0.0,
"T": 390,
"prediction_scores": {
"P1": "PASS",
"P2": "FAIL",
"P3": "AMBIGUOUS",
"P4": "AMBIGUOUS",
"F1": "TRIGGERED",
"F2": "not triggered",
"F3": "AMBIGUOUS"
},
"rolling_windows": [
{
"center_date": "2020-09-27",
"i0": 0,
"r": -0.020673974266789276,
"r_95_lo": -0.2384207768025597,
"r_95_hi": 0.19905195096046985,
"surr_p95": 0.24703209108565127,
"n_pairs": 106,
"n_eff": 80.7
},
{
"center_date": "2020-12-26",
"i0": 18,
"r": -0.1596215601323441,
"r_95_lo": -0.3652401175794433,
"r_95_hi": 0.06084746948303837,
"surr_p95": 0.2420104634210208,
"n_pairs": 106,
"n_eff": 81.0
},
{
"center_date": "2021-03-26",
"i0": 36,
"r": -0.10746670672666697,
"r_95_lo": -0.3483903115845773,
"r_95_hi": 0.14677605655326095,
"surr_p95": 0.2572000321729004,
"n_pairs": 106,
"n_eff": 61.7
},
{
"center_date": "2021-06-24",
"i0": 54,
"r": -0.10098858847235519,
"r_95_lo": -0.3463312883265511,
"r_95_hi": 0.1572843431029865,
"surr_p95": 0.26650154565559175,
"n_pairs": 106,
"n_eff": 59.9
},
{
"center_date": "2021-09-22",
"i0": 72,
"r": 0.01254431298486686,
"r_95_lo": -0.25387482798887767,
"r_95_hi": 0.27719423163204004,
"surr_p95": 0.2985998754816451,
"n_pairs": 106,
"n_eff": 54.9
},
{
"center_date": "2021-12-21",
"i0": 90,
"r": 0.09250204283123152,
"r_95_lo": -0.20439300590462595,
"r_95_hi": 0.3738122683731473,
"surr_p95": 0.27676919680091644,
"n_pairs": 106,
"n_eff": 45.7
},
{
"center_date": "2022-03-21",
"i0": 108,
"r": 0.14320771523610307,
"r_95_lo": -0.13729493377312108,
"r_95_hi": 0.40244693119546243,
"surr_p95": 0.28437908737796685,
"n_pairs": 106,
"n_eff": 51.2
},
{
"center_date": "2022-06-19",
"i0": 126,
"r": 0.07509703884831592,
"r_95_lo": -0.13160095985883036,
"r_95_hi": 0.2755371203194297,
"surr_p95": 0.20138619969258406,
"n_pairs": 106,
"n_eff": 92.1
},
{
"center_date": "2022-09-17",
"i0": 144,
"r": 0.2168176251787577,
"r_95_lo": 0.011086902245728723,
"r_95_hi": 0.404937880290396,
"surr_p95": 0.26527264789585464,
"n_pairs": 106,
"n_eff": 90.8
},
{
"center_date": "2022-12-16",
"i0": 162,
"r": 0.16887990508570438,
"r_95_lo": -0.034272026977641694,
"r_95_hi": 0.3586296276290144,
"surr_p95": 0.19453090531555742,
"n_pairs": 106,
"n_eff": 94.6
},
{
"center_date": "2023-03-16",
"i0": 180,
"r": -0.007919126521579136,
"r_95_lo": -0.24368819753335721,
"r_95_hi": 0.22873370185387817,
"surr_p95": 0.244394067315623,
"n_pairs": 106,
"n_eff": 69.3
},
{
"center_date": "2023-06-14",
"i0": 198,
"r": -0.03593975038951865,
"r_95_lo": -0.27513801901583773,
"r_95_hi": 0.20744861668280118,
"surr_p95": 0.26934427417321,
"n_pairs": 106,
"n_eff": 66.2
},
{
"center_date": "2023-09-12",
"i0": 216,
"r": 0.012229179706855697,
"r_95_lo": -0.2289007755823031,
"r_95_hi": 0.2519451642078741,
"surr_p95": 0.21335780781894043,
"n_pairs": 106,
"n_eff": 66.9
},
{
"center_date": "2023-12-11",
"i0": 234,
"r": 0.06543567665343912,
"r_95_lo": -0.1901695876704142,
"r_95_hi": 0.3127329265694898,
"surr_p95": 0.2519767306793838,
"n_pairs": 106,
"n_eff": 60.7
},
{
"center_date": "2024-03-10",
"i0": 252,
"r": 0.07906053491790431,
"r_95_lo": -0.1373503142101981,
"r_95_hi": 0.2882674790685488,
"surr_p95": 0.19634784346737047,
"n_pairs": 106,
"n_eff": 84.2
},
{
"center_date": "2024-06-08",
"i0": 270,
"r": 0.029537138940926456,
"r_95_lo": -0.19206747741251445,
"r_95_hi": 0.24827571906628718,
"surr_p95": 0.1950217577409729,
"n_pairs": 106,
"n_eff": 79.5
}
]
}

View file

@ -0,0 +1,66 @@
# Out-of-Sample Validation Report — Homola et al. 2023
Generated: 2026-04-23T22:56:38Z
Git SHA: unknown
OOS window: 2020-01-01 → 2025-04-29
Analysis run date: 2026-04-23
Data availability check: unknown
## Overall verdict
**AMBIGUOUS**: Mixed results; insufficient evidence to confirm or refute.
## Prediction scorecard
| Criterion | Outcome |
|---|---|
| P1 | PASS |
| P2 | FAIL |
| P3 | AMBIGUOUS |
| P4 | AMBIGUOUS |
| F1 | TRIGGERED |
| F2 | not triggered |
| F3 | AMBIGUOUS |
## Key numerical results
| Metric | OOS value | In-sample baseline |
|---|---|---|
| r(τ = +15 d) raw | +0.0446 | +0.3099 (solar-cycle confounded) |
| r(τ = +15 d) HP-detrended | +0.0267 | +0.0411 |
| Surrogate 95th pct at τ=+15 d | 0.1356 | (not computed in-sample at this lag) |
| p_global (phase surrogates) | 0.9940 | 1.000 (in-sample raw, not significant) |
| σ_surrogate | 0.01 | n/a |
| Dominant peak lag | +135 d | 525 d |
| Dominant peak \|r\| | 0.1104 | 0.469 |
| BH-significant pairs (geo) | 0 | 455 (in-sample) |
| Expected FP (geo, BH q=0.05) | 0.0 | 351.9 (in-sample) |
| Surrogate count | 100,000 | 10,000 (in-sample) |
## Interpretation notes
The OOS window (2020-01-012025-04-29) spans approximately
5 years —
less than one full 11-year solar cycle. This has two implications:
1. **Solar-cycle detrending is less effective** over sub-cycle windows. Linear
and sunspot-regression detrending are used instead of HP/STL, which require
series longer than the target period.
2. **Statistical power is lower** than in-sample (T ≈ 3215 bins vs
T ≈ 390 bins OOS). A genuine effect of the same magnitude as the
in-sample HP-detrended signal (r ≈ 0.04) would require a very large n_surr
to detect reliably.
## Methodological notes
- Pre-registration file: `results/prereg_predictions.md` (timestamps confirm
it was written before any OOS analysis was run)
- GPU: Tesla M40 (12.0 GB)
- Surrogates: phase-randomisation (100,000)
- Lag range: ±200 days
## Figures
- `results/figs/oos_xcorr.png` — r(τ) with surrogate envelopes
- `results/figs/rolling_correlation_oos.png` — rolling r(τ=+15 d)

View file

@ -1,6 +1,6 @@
# Pre-Registered Predictions — Out-of-Sample CRSeismic Validation
**Written:** 2026-04-22T00:44:30Z
**Written:** 2026-04-23T22:56:22Z
**Git SHA:** unknown
**OOS window:** 2020-01-01 → 2025-04-29
**Surrogates:** 100,000 phase-randomisation