# Experiment results (2026-02-20)

This report is generated by `code/make_experiment_report.py` from CSV outputs in `outputs/2026-02-20/`.

## p-adic linear regression: neighbour-hyperplane descent policies

Setup:
- Synthetic linear model: `y = beta0 + beta·x + noise` (integers).
- Ground-truth coefficients are sampled as $p$-powers (default in `padic_linear_regression.py`: `--coef-model p_power`).
- Enumerate all hyperplanes through `d+1` points, then **deduplicate** identical hyperplanes (same coefficient vector).
- Loss: `L1` sum of `p`-adic norms of residuals (exact rationals).
- Neighbour edges are induced by swapping exactly one defining point (one index in a `(d+1)`-subset).
- Descent process repeats an improving neighbour move until a local minimum (no improving neighbours).

Baseline config (for the multi-policy comparison below): `n=20`, `d=3`.

Policy comparison (baseline noisy; k0=0):

![policy comparison](padic_lr_policy_baseline_noisy.png)

Global-hit probability by policy (mean ± stderr over trials):

### p=3

| noise model | noise_k0 | steepest | uniform | proportional | softmax(T=1) |
|---|---:|---:|---:|---:|---:|
| haar | 0 | 0.346 ± 0.009 | 0.329 ± 0.008 | 0.360 ± 0.009 | 0.349 ± 0.009 |
| haar | 1 | 0.346 ± 0.009 | 0.331 ± 0.008 | 0.361 ± 0.009 | 0.339 ± 0.008 |
| haar | 2 | 0.346 ± 0.009 | 0.329 ± 0.008 | 0.360 ± 0.009 | 0.332 ± 0.009 |
| haar | 3 | 0.346 ± 0.009 | 0.329 ± 0.008 | 0.360 ± 0.009 | 0.330 ± 0.008 |
| valuation | 0 | 0.360 ± 0.009 | 0.341 ± 0.009 | 0.371 ± 0.009 | 0.360 ± 0.009 |
| valuation | 1 | 0.360 ± 0.009 | 0.341 ± 0.009 | 0.371 ± 0.009 | 0.349 ± 0.009 |
| valuation | 2 | 0.360 ± 0.009 | 0.341 ± 0.009 | 0.371 ± 0.009 | 0.344 ± 0.009 |
| valuation | 3 | 0.360 ± 0.009 | 0.341 ± 0.009 | 0.371 ± 0.009 | 0.342 ± 0.009 |

### p=11

| noise model | noise_k0 | steepest | uniform | proportional | softmax(T=1) |
|---|---:|---:|---:|---:|---:|
| haar | 0 | 0.221 ± 0.008 | 0.189 ± 0.007 | 0.210 ± 0.008 | 0.213 ± 0.008 |
| haar | 1 | 0.221 ± 0.008 | 0.189 ± 0.007 | 0.210 ± 0.008 | 0.191 ± 0.007 |
| haar | 2 | 0.221 ± 0.008 | 0.189 ± 0.007 | 0.210 ± 0.008 | 0.189 ± 0.007 |
| haar | 3 | 0.221 ± 0.008 | 0.189 ± 0.007 | 0.210 ± 0.008 | 0.189 ± 0.007 |
| valuation | 0 | 0.227 ± 0.008 | 0.192 ± 0.007 | 0.211 ± 0.007 | 0.214 ± 0.008 |
| valuation | 1 | 0.227 ± 0.008 | 0.192 ± 0.007 | 0.211 ± 0.007 | 0.194 ± 0.007 |
| valuation | 2 | 0.227 ± 0.008 | 0.192 ± 0.007 | 0.211 ± 0.007 | 0.192 ± 0.007 |
| valuation | 3 | 0.227 ± 0.008 | 0.192 ± 0.007 | 0.211 ± 0.007 | 0.192 ± 0.007 |

Haar vs valuation baseline (bootstrap 95% CI for mean difference in global-hit probability):

| p | policy | mean(haar,k0=0) | mean(valuation,k0=0) | diff | 95% CI |
|---:|---|---:|---:|---:|---:|
| 3 | steepest | 0.346 | 0.360 | -0.015 | [-0.039, 0.011] |
| 3 | uniform | 0.329 | 0.341 | -0.012 | [-0.035, 0.012] |
| 3 | proportional | 0.360 | 0.371 | -0.011 | [-0.036, 0.014] |
| 3 | softmax | 0.349 | 0.360 | -0.011 | [-0.035, 0.015] |
| 11 | steepest | 0.221 | 0.227 | -0.006 | [-0.028, 0.016] |
| 11 | uniform | 0.189 | 0.192 | -0.003 | [-0.023, 0.016] |
| 11 | proportional | 0.210 | 0.211 | -0.001 | [-0.023, 0.020] |
| 11 | softmax | 0.213 | 0.214 | -0.001 | [-0.023, 0.020] |

Additional plots (steepest-descent baseline):

- ![steepest global hit vs k0](padic_lr_basin_fraction.png)
- ![true beta global vs k0](padic_lr_true_is_global.png)
- ![global hit heatmap vs (d, k0)](padic_lr_global_hit_heatmap.png)

Raw CSVs: `padic_lr_v3/mc_*.csv`.

