SPB Git

spb/wp28_uqo

Public

This looks like a research repository (LaTeX, bibliography, figures). Preview Research Mode· enable it with research: true on the API.

History
NameLast commitUpdated
data WP28: phase 0 — workspace, frozen prior draft, replication lock
docs WP28: phase 0 — workspace, frozen prior draft, replication lock
experiments WP28: macro name fix, final validated build
literature WP28: literature audits C-D, PRIOR_ART_MATRIX (56 rows), PRIORITY_AND_GAP,...
paper WP28: macro name fix, final validated build
references WP28: phase 0 — workspace, frozen prior draft, replication lock
results WP28: supplementary benchmarks (p=32, K=256), final build
scripts WP28: robust PDF validation
src WP28: supplementary benchmarks (p=32, K=256), final build
tests WP28: TCP protocol + worker + benchmark launcher, processing/figures,...
theory WP28: Lean 4/Mathlib formalization of the algebraic core (27 theorems, no sorry)
.gitignore WP28: phase 0 — workspace, frozen prior draft, replication lock
CLAUDE.md WP28: phase 0 — workspace, frozen prior draft, replication lock
FINAL_DELIVERY.md WP28: supplementary benchmarks (p=32, K=256), final build
FINAL_REVIEW.md WP28: supplementary benchmarks (p=32, K=256), final build
LIMITATIONS_AND_CLAIMS.md WP28: supplementary benchmarks (p=32, K=256), final build
PHASE_STATUS.md WP28: supplementary benchmarks (p=32, K=256), final build
PROJECT_MAP.md WP28: table spacing, display fixes, project map
pytest.ini WP28: pamle library (models, splits, Newton variants, CSL/AEE/Cox-Snell),...
README.md WP28: supplementary benchmarks (p=32, K=256), final build
requirements.txt WP28: pamle library (models, splits, Newton variants, CSL/AEE/Cox-Snell),...
research_log.md WP28: supplementary benchmarks (p=32, K=256), final build
SOURCE_PROVENANCE.md WP28: phase 0 — workspace, frozen prior draft, replication lock
WP28_Experiment_Results.csv WP28: benchmarks section, final review verdict, phase log, delivery note
WP28_Final_Review.md WP28: benchmarks section, final review verdict, phase log, delivery note
WP28_Prior_Art_and_Novelty.md WP28: benchmarks section, final review verdict, phase log, delivery note
WP28_Research_Summary.md WP28: benchmarks section, final review verdict, phase log, delivery note
WP28_Theorem_Audit.md WP28: benchmarks section, final review verdict, phase log, delivery note
README.md source

# 🧮 Beyond One-Step Distributed Maximum Likelihood

UQO Working Paper No. 28 — Local bias cancellation, global synchronization, and the price of inexact curvature: a joint order–round frontier, its sharpness in an exact model, and measured communication costs

Paper Python Data Reproducible Institution Author

TL;DR — Each of $K$ workers debiases its local MLE by an order-$r$ split-sample extrapolation over nested sub-blocks; the coordinator averages and applies $q$ aggregated Newton steps. For fixed-dimensional regular likelihoods the result is first-order equivalent to the centralized MLE whenever $K = o(N^{1-1/(2^{q+1}r)})$ (half-block jackknife + one step: $K = o(N^{7/8})$ against the $K = O(N^{1/2})$ stated for the plain-average one-step estimator). The exponent is sharp for the construction in the exponential model (boundary shift $-\theta_0(\beta_r c^r)^{2^q}$, e.g. $-4\theta_0c^4$), and a perturbation theorem gives the exponent for stale, single-machine and $b$-bit quantized Hessians. Monte Carlo (exponential, logistic, Poisson; paired replications; $N$ up to $2^{22}$), an exact boundary study, ablations, and timed coordinator–worker benchmarks on the MacLustr cluster quantify the finite-sample costs. Components are known (Quenouille/Dhaene–Jochmans jackknife; Huang–Huo one-step); the joint frontier, its sharpness and the bit-precision result are new. No communication lower bound is claimed.


# 📌 Status

Item Value
Version 1.0 (October 2026) — working draft under internal review; see FINAL_REVIEW.md
SSRN not yet submitted
Journal — (candidates: Journal of Econometrics, Econometric Theory, JASA T&M, JCGS)
Code & data fully reproducible from experiments/ (synthetic data only); raw Monte Carlo outputs committed in results/raw/ with manifests
Provenance develops the exploratory note "Local Bias Correction versus Global Synchronization in Distributed Maximum Likelihood" (Boucher & "GPT-6.1", 2026-10-28), frozen in references/initial_pamle/; see SOURCE_PROVENANCE.md and the disclosure following the abstract

# 🎯 What this paper does

Distributed MLE with $N$ observations on $K$ workers of $m = N/K$ observations: averaging local MLEs keeps the $O(1/m)$ local bias, so plain averaging is equivalent to the centralized MLE only for $K = o(N^{1/2})$. Two known remedies — local debiasing and global Newton corrections — are analysed jointly. The local correction is the generalized (split-sample) jackknife with Vandermonde weights over nested sub-blocks of sizes $m/s_j$,

text
J_{r,k} = Σ_j w_j T_{s_j,k},    Σ_j w_j = 1,  Σ_j w_j s_j^a = 0 (a = 1..r-1)
θ^(0)   = K^{-1} Σ_k J_{r,k};   θ ← θ − H_N(θ)^{-1} g_N(θ)   (q times, aggregated score and Hessian)

Main results: Theorem 1 (frontier $K = o(N^{1-1/(2^{q+1}r)})$ with the centered random remainder of order $(m\sqrt K)^{-1}$ kept), Theorem 2 (exact exponential identities, boundary limits for every $(r,q)$, Newton basin $(0, 2\hat\theta_N)$, necessity), Theorem 3 (inexact curvature: stale averaged local Hessians $\Rightarrow 1-1/(2(r+q))$; single-machine Hessian $\Rightarrow 1-1/(2r+q)$, recovering CEASE's $(t+1)/(t+2)$ and CSL's $2/3$; quantization to $b \ge (\tfrac12 - r(1-\alpha))\log_2 N$ bits), Proposition 4 (unequal sizes, misspecification), Proposition 5 (cost model and exchange rate between a local level and a round).

# 🏆 Headline results

Object Result
Sufficient exponent, half-block jackknife + 1 Newton step $K = o(N^{7/8})$ (plain average + 1 step: $3/4$; quarter-block + 1 step: $11/12$)
Exponent structure depends on $(r,q)$ only through $D = 2^q r$: one round ⇔ doubling the local order
Sharpness (exponential model) $\sqrt N(\theta^{(1)}_2 - \hat\theta_N) \to -4\theta_0c^4$ when $K \sim cN^{7/8}$; divergence beyond
Inexact curvature stale: $1-1/(2(r+q))$; single machine: $1-1/(2r+q)$; bits for quantized derivatives: $(\tfrac12 - r(1-\alpha))\log_2 N$
Exact variance cost of the half-block correction $\mathrm{Var},J_2 = \theta_0^2 m^2(m^2-6m+17)/((m-4)(m-2)^2(m-1)^2) = \theta_0^2(m^{-1}+4m^{-2}+O(m^{-3}))$, same first two terms as the raw MLE
Finite samples (1,2) beats (2,1) in every cell; order 3 beats order 2 only at the smallest m; once the bias is cancelled the one-step gap decays like (m√N)⁻¹ (squared random remainder); quarter-block fits fail at m ≲ 16p (logistic)
Benchmarks (MacLustr, 23 designs, 75 runs, ≤ 16 hosts, K ≤ 256) derivative phase 55 ms (p = 8) – 1.8 s (p = 64), dominated by the slowest worker, not the network; local phase 0.26 → 0.96 s from order 1 to 4 (p = 8); on this LAN one more round is cheaper than one more local level
Machine-checked algebra 27 Lean 4 / Mathlib theorems, no sorry (theory/lean/)

# 🗂 Repository layout

text
distributed-mle-synchronization/
├── CLAUDE.md                      # the research mandate (verbatim)
├── PROJECT_MAP.md · SOURCE_PROVENANCE.md · PHASE_STATUS.md · research_log.md
├── LIMITATIONS_AND_CLAIMS.md · FINAL_REVIEW.md · FINAL_DELIVERY.md
├── references/initial_pamle/      # frozen prior draft + archive + SHA256SUMS.txt (read-only)
├── literature/                    # audits A–D, PRIOR_ART_MATRIX.csv (56 rows), PRIORITY_AND_GAP.md
├── theory/                        # ASSUMPTIONS.md, THEOREM_AUDIT.md (proof ledger), symbolic_checks.py (SymPy)
├── src/pamle/                     # library: jackknife, partitioning, likelihoods, algorithms, communication, diagnostics, protocol, worker
├── experiments/                   # run_monte_carlo.py (+configs/), scatter_cluster.py, run_boundary.py, run_ablations.py, run_skewed.py,
│                                  #   run_benchmarks.py, process_results.py, make_tables.py, EXPERIMENT_MANIFEST.csv
├── tests/                         # pytest suite (weights, exact identities, derivatives, estimators, accounting, reproducibility, protocol)
├── results/{raw,processed,tables,figures,resource_profiles}
├── paper/                         # main.tex, sections/, appendices/, tables/ (generated), figures/, references.bib → main.pdf
├── scripts/                       # compile_paper.sh, validate_pdf.sh, reproduce_all.sh
└── docs/                          # cluster inventory, misc

# 🚀 Quick start

bash
python3 -m pip install -r requirements.txt
pytest -q                                   # 30 tests (≈ 10 s)
bash scripts/check_lean.sh                  # Lean 4 + Mathlib: 27 theorems (needs elan; first build downloads the Mathlib cache)
python3 theory/symbolic_checks.py           # SymPy verification of every identity (≈ 1 min)
python3 experiments/run_monte_carlo.py --config experiments/configs/main_exponential.yaml   # laptop, ≈ 2 h
python3 experiments/run_boundary.py; python3 experiments/run_ablations.py --model logistic; python3 experiments/run_skewed.py
python3 experiments/scatter_cluster.py --configs experiments/configs/main_logistic.yaml experiments/configs/main_poisson.yaml experiments/configs/robustness.yaml --launch   # cluster
python3 experiments/run_benchmarks.py --config experiments/configs/benchmarks.yaml --out results/raw/benchmarks.jsonl               # cluster
python3 experiments/process_results.py --figures && python3 experiments/make_tables.py
bash scripts/compile_paper.sh && bash scripts/validate_pdf.sh

Runtime: the exponential Monte Carlo (40 cells × 2000 replications) takes about two hours on an Apple M5 Max laptop; the logistic/Poisson/robustness grids (136 cells) were spread over 18 MacLustr nodes (several hours); the benchmarks need the cluster.

# 🗃 Data

All data are synthetic and seeded (seed_base = 20261028 plus a hash of the cell description); nothing proprietary. Raw per-replication outputs (results/raw/*.csv) carry a JSON manifest (git commit, Python/NumPy versions, host, wall time, SHA-256); experiments/EXPERIMENT_MANIFEST.csv collects them.

# 🔬 Methodology

  1. Local split fits on nested sub-blocks, batched Newton with step halving and status codes — src/pamle/likelihoods.py, algorithms.local_split_fits.
  2. Vandermonde weights, pilot — jackknife.py, algorithms.worker_corrected_estimates, pilot_estimator.
  3. Global corrections (exact / stale / single-machine / quantized curvature), CSL, AEE, analytic Cox–Snell — algorithms.global_newton, csl, aee_lin_xi, analytic_bias_correction.
  4. Communication accounting — communication.py; real protocol — protocol.py, worker.py.
  5. Experiments and processing — experiments/ (every table/figure regenerated from results/).

# 🖼 Figures & tables inventory

Figure Content
fig_rms_gap_vs_m_<design> RMS scaled gap to the centralized MLE vs $m$ for all estimators
fig_rmse_theta0_vs_m_<design> scaled RMSE vs $\theta_0$: bias–variance trade-off across orders
fig_gap_collapse_<design> gaps against $K/N^{\alpha(r,q)}$ for several $N$ (collapse predicted by Theorem 1)
fig_coverage95_<design> empirical 95 % coverage vs $m$
fig_boundary_exponential boundary study: gap / asymptotic limit vs $m$ with finite-$m$ prediction

Tables (paper/tables/*.tex, generated by experiments/make_tables.py): mc_<design>.tex, mc_rates.tex, boundary.tex, abl_exponential.tex, abl_logistic.tex, skew.tex, bench.tex, numbers.tex.

# ⚠️ Limitations

See LIMITATIONS_AND_CLAIMS.md. Fixed $p$ and i.i.d. data only; sufficient exponents, sharp only for the construction in the exponential model; the boundary regime $m \asymp N^{1/(2^{q+1}r)}$ is reached only at very large $N$; higher orders inflate variance and can fail at small $m$; benchmarks are specific to one cluster and one Python/TCP implementation; no energy or cost measurements; no lower bounds.

# 📝 Citation

bibtex
@techreport{boucher2026distributedmle,
  author      = {Boucher, Simon-Pierre},
  title       = {Beyond One-Step Distributed Maximum Likelihood: Local Bias Cancellation, Global Synchronization, and the Price of Inexact Curvature},
  institution = {Universit\'e du Qu\'ebec en Outaouais, D\'epartement des sciences administratives},
  type        = {Working Paper},
  number      = {28},
  year        = {2026},
  month       = {October}
}

# 👤 Author & contact

Simon-Pierre Boucher — Département des sciences administratives, Université du Québec en Outaouais (UQO), Gatineau, QC. 📧 simon-pierre.boucher@uqo.ca

# 🗒 Notes

  • Numbering: No. 28 is the next free number of the UQO series (Recherche-UQO/README.md stops at 27). The SPID database paper in finance/russell3000-strategic-project-database carries FIRC series No. 0001, not 28; see SOURCE_PROVENANCE.md.
  • Authorship: the title page lists Simon-Pierre Boucher only; a provenance and AI-use disclosure follows the abstract (the prior note's AI co-author designation was removed at the author's request on 2026-10-28).
  • Deviation from the template: paper/main.tex adds amsthm, algorithmic and TikZ packages; sections/titlepage.tex is the exact template copy.

Clone wp28_uqo

Anonymous clone and fetch. Pushing requires the owner's personal access token.

ZIP tar.gz snapshot of main
Files · main
Menu

Theme