WP28: table spacing, display fixes, project map
18 changed files +26 −26
modified
PROJECT_MAP.md
+3 −2
@@ -20,12 +20,13 @@ PROJECT_MAP.md SOURCE_PROVENANCE.md PHASE_STATUS.md research_log.md | |||||
| 20 | LIMITATIONS_AND_CLAIMS.md FINAL_REVIEW.md FINAL_DELIVERY.md (written at the end of the corresponding phases) | 20 | LIMITATIONS_AND_CLAIMS.md FINAL_REVIEW.md FINAL_DELIVERY.md (written at the end of the corresponding phases) | ||
| 21 | references/initial_pamle/ immutable copy of the prior draft (PDF, zip, unpacked sources, SHA256SUMS.txt) | 21 | references/initial_pamle/ immutable copy of the prior draft (PDF, zip, unpacked sources, SHA256SUMS.txt) | ||
| 22 | literature/ PRIOR_ART_MATRIX.csv, PRIORITY_AND_GAP.md | 22 | literature/ PRIOR_ART_MATRIX.csv, PRIORITY_AND_GAP.md | ||
| 23 | −theory/ THEOREM_AUDIT.md, ASSUMPTIONS.md, symbolic_checks.py, proofs_check.py | 23 | +theory/ THEOREM_AUDIT.md, ASSUMPTIONS.md, symbolic_checks.py (SymPy), lean/ (Lean 4 + Mathlib, 27 theorems) | ||
| 24 | src/pamle/ reference implementations (likelihoods, splits, jackknife weights, Newton, protocol, accounting) | 24 | src/pamle/ reference implementations (likelihoods, splits, jackknife weights, Newton, protocol, accounting) | ||
| 25 | experiments/ run_* scripts, configs/, EXPERIMENT_MANIFEST.csv | 25 | experiments/ run_* scripts, configs/, EXPERIMENT_MANIFEST.csv | ||
| 26 | tests/ pytest suite | 26 | tests/ pytest suite | ||
| 27 | results/{raw,processed,tables,figures,resource_profiles} | 27 | results/{raw,processed,tables,figures,resource_profiles} | ||
| 28 | paper/{main.tex,sections,appendices,figures,tables,references.bib} | 28 | paper/{main.tex,sections,appendices,figures,tables,references.bib} | ||
| 29 | −scripts/{setup.sh,reproduce_all.sh,compile_paper.sh,validate_pdf.sh} | 29 | +scripts/{setup.sh,reproduce_all.sh,compile_paper.sh,validate_pdf.sh,check_lean.sh} | ||
| 30 | +WP28_*.md / WP28_Experiment_Results.csv series-named aliases (symlinks) of the delivery files | ||||
| 30 | docs/ cluster inventory, referee reports, misc audits | 31 | docs/ cluster inventory, referee reports, misc audits | ||
| 31 | ``` | 32 | ``` | ||
modified
experiments/EXPERIMENT_MANIFEST.csv
+3 −3
@@ -71,7 +71,7 @@ logit_misspec_p3_N262144_K512,,3.9.6,2.0.2,,4080476778475930787,262144,512,512,3 | |||||
| 71 | logit_misspec_p3_N262144_K8192,,3.9.6,2.0.2,,4860399401084713574,262144,8192,32,3,"{""kind"": ""misspecified"", ""omitted"": 0.5}",estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,M4M64c arm64,macOS,3976.4,0,in-memory (no network),completed,747d085e4a92f4ece110fc931102892f7c25c09cc101913164791bf24352b6bf | 71 | logit_misspec_p3_N262144_K8192,,3.9.6,2.0.2,,4860399401084713574,262144,8192,32,3,"{""kind"": ""misspecified"", ""omitted"": 0.5}",estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,M4M64c arm64,macOS,3976.4,0,in-memory (no network),completed,747d085e4a92f4ece110fc931102892f7c25c09cc101913164791bf24352b6bf | ||
| 72 | logit_misspec_p3_N65536_K1024,,3.9.6,2.0.2,,5927146201951817713,65536,1024,64,3,"{""kind"": ""misspecified"", ""omitted"": 0.5}",estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,M5M36 arm64,macOS,455.5,0,in-memory (no network),completed,0a024777482db1db789a4331b76c3a1b839a6cf57922087d0e89d00ea7e1b62c | 72 | logit_misspec_p3_N65536_K1024,,3.9.6,2.0.2,,5927146201951817713,65536,1024,64,3,"{""kind"": ""misspecified"", ""omitted"": 0.5}",estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,M5M36 arm64,macOS,455.5,0,in-memory (no network),completed,0a024777482db1db789a4331b76c3a1b839a6cf57922087d0e89d00ea7e1b62c | ||
| 73 | logit_misspec_p3_N65536_K128,,3.9.6,2.0.2,,1189149877376627910,65536,128,512,3,"{""kind"": ""misspecified"", ""omitted"": 0.5}",estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,MacStudonpierre arm64,macOS,261.1,0,in-memory (no network),completed,d5549965eb18106d51676e09521787a845070e08dbdceda307a18283dfd7c769 | 73 | logit_misspec_p3_N65536_K128,,3.9.6,2.0.2,,1189149877376627910,65536,128,512,3,"{""kind"": ""misspecified"", ""omitted"": 0.5}",estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,MacStudonpierre arm64,macOS,261.1,0,in-memory (no network),completed,d5549965eb18106d51676e09521787a845070e08dbdceda307a18283dfd7c769 | ||
| 74 | −logit_misspec_p3_N65536_K2048,,3.9.6,2.0.2,,9108325309212204322,65536,2048,32,3,"{""kind"": ""misspecified"", ""omitted"": 0.5}",estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,MacStudnpierre7 arm64,macOS,1250.8,0,in-memory (no network),completed,44bd58b165a41d4592f4180d4aa02e2ba7f580613bad5965131b03eeaff24e0e | 74 | +logit_misspec_p3_N65536_K2048,7b15181,3.14.4,2.4.4,,9108325309212204322,65536,2048,32,3,"{""kind"": ""misspecified"", ""omitted"": 0.5}",estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,MacBookPro-de-simon-pierre-2.local arm64,macOS,846.6,0,in-memory (no network),completed,b5495df2fc1b00d264877514f923d8daa82b2deade865fd456a302dcf7c04307 | ||
| 75 | logit_misspec_p3_N65536_K256,,3.14.4,2.5.4,,5271711696808027188,65536,256,256,3,"{""kind"": ""misspecified"", ""omitted"": 0.5}",estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,m3u96b arm64,macOS,223.5,0,in-memory (no network),completed,35b8202e739a00d69b2aa97804232b289b236676f3c7e1de6860190125d2484b | 75 | logit_misspec_p3_N65536_K256,,3.14.4,2.5.4,,5271711696808027188,65536,256,256,3,"{""kind"": ""misspecified"", ""omitted"": 0.5}",estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,m3u96b arm64,macOS,223.5,0,in-memory (no network),completed,35b8202e739a00d69b2aa97804232b289b236676f3c7e1de6860190125d2484b | ||
| 76 | logit_misspec_p3_N65536_K512,,3.14.5,2.5.4,,3578458641162309222,65536,512,128,3,"{""kind"": ""misspecified"", ""omitted"": 0.5}",estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,MacStudnpierre2 arm64,macOS,283.3,0,in-memory (no network),completed,c29ffec0dbff1a6717c394274a6da063592ec08ce27125dd8cdad93c01dcb07b | 76 | logit_misspec_p3_N65536_K512,,3.14.5,2.5.4,,3578458641162309222,65536,512,128,3,"{""kind"": ""misspecified"", ""omitted"": 0.5}",estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,MacStudnpierre2 arm64,macOS,283.3,0,in-memory (no network),completed,c29ffec0dbff1a6717c394274a6da063592ec08ce27125dd8cdad93c01dcb07b | ||
| 77 | logit_p20_p20_N1048576_K1024,,3.14.4,2.5.4,,6566023737295273270,1048576,1024,1024,20,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,500,xargs -P / nohup,1,MacStudnpierre6 arm64,macOS,10956.8,0,in-memory (no network),completed,0d1def0937b0015d36d47e0e6dc4e738f6988854d790689dec6202e53b30759d | 77 | logit_p20_p20_N1048576_K1024,,3.14.4,2.5.4,,6566023737295273270,1048576,1024,1024,20,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,500,xargs -P / nohup,1,MacStudnpierre6 arm64,macOS,10956.8,0,in-memory (no network),completed,0d1def0937b0015d36d47e0e6dc4e738f6988854d790689dec6202e53b30759d | ||
@@ -113,7 +113,7 @@ logit_p8_N1048576_K16384,,3.9.6,2.0.2,,3073381346928451233,1048576,16384,64,8,{} | |||||
| 113 | logit_p8_N1048576_K2048,,3.9.6,2.0.2,,6354247005063002822,1048576,2048,512,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,simonpierresMBP arm64,macOS,7431.4,0,in-memory (no network),completed,26648ea3c37f4f0ec48a15aa883ed7d54c33aa5755893c7d718d23aeaa7bce41 | 113 | logit_p8_N1048576_K2048,,3.9.6,2.0.2,,6354247005063002822,1048576,2048,512,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,simonpierresMBP arm64,macOS,7431.4,0,in-memory (no network),completed,26648ea3c37f4f0ec48a15aa883ed7d54c33aa5755893c7d718d23aeaa7bce41 | ||
| 114 | logit_p8_N1048576_K4096,,3.9.6,2.0.2,,5229261129462349956,1048576,4096,256,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,simonpirresMBP2 arm64,macOS,8607.3,0,in-memory (no network),completed,a18df7441e42ab1fcd2a2787b8b46d7a4aed55c2a01eb0ac9c2736608c6fd4a1 | 114 | logit_p8_N1048576_K4096,,3.9.6,2.0.2,,5229261129462349956,1048576,4096,256,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,simonpirresMBP2 arm64,macOS,8607.3,0,in-memory (no network),completed,a18df7441e42ab1fcd2a2787b8b46d7a4aed55c2a01eb0ac9c2736608c6fd4a1 | ||
| 115 | logit_p8_N1048576_K8192,,3.9.6,2.0.2,,4723022365370056307,1048576,8192,128,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,M5M36 arm64,macOS,15247.2,0,in-memory (no network),completed,70f240acf900b615965a13ac9e8e99cedf470172589d8c45b2adfb417765d940 | 115 | logit_p8_N1048576_K8192,,3.9.6,2.0.2,,4723022365370056307,1048576,8192,128,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,M5M36 arm64,macOS,15247.2,0,in-memory (no network),completed,70f240acf900b615965a13ac9e8e99cedf470172589d8c45b2adfb417765d940 | ||
| 116 | −logit_p8_N16384_K128,,3.9.6,2.0.2,,1929461084092776376,16384,128,128,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,m5ma arm64,macOS,200.3,0,in-memory (no network),completed,8393646d69c24f743b9b9d6291abab9b6bcd195d86edf4f726e39ab53aba2fc8 | 116 | +logit_p8_N16384_K128,b354e67,3.14.4,2.4.4,,1929461084092776376,16384,128,128,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,MacBookPro-de-simon-pierre-2.local arm64,macOS,179.6,0,in-memory (no network),completed,4eb9b4942dbaa3f94f53ebbb129df8525f84833726b37533f92bb69a1b143618 | ||
| 117 | logit_p8_N16384_K16,,3.14.4,2.5.4,,9066105959199088908,16384,16,1024,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,m3u96b arm64,macOS,102.2,0,in-memory (no network),completed,8605fd6f5641f8c51ea71fab45bfe5b6c34c442e61aeee28f198e7b7908bf6d4 | 117 | logit_p8_N16384_K16,,3.14.4,2.5.4,,9066105959199088908,16384,16,1024,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,m3u96b arm64,macOS,102.2,0,in-memory (no network),completed,8605fd6f5641f8c51ea71fab45bfe5b6c34c442e61aeee28f198e7b7908bf6d4 | ||
| 118 | logit_p8_N16384_K256,b354e67,3.14.4,2.4.4,,734206799928427210,16384,256,64,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,MacBookPro-de-simon-pierre-2.local arm64,macOS,303.3,0,in-memory (no network),completed,00cf6eb364f449e62492695ec9fe41765f2c14d0b27f06e463a9b6fb6454fbf7 | 118 | logit_p8_N16384_K256,b354e67,3.14.4,2.4.4,,734206799928427210,16384,256,64,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,MacBookPro-de-simon-pierre-2.local arm64,macOS,303.3,0,in-memory (no network),completed,00cf6eb364f449e62492695ec9fe41765f2c14d0b27f06e463a9b6fb6454fbf7 | ||
| 119 | logit_p8_N16384_K32,,3.9.6,2.0.2,,1149493868462540650,16384,32,512,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,M5M36 arm64,macOS,104.2,0,in-memory (no network),completed,7fc9aef9e1601316830e00fbf2ee78ba6afac25b514ded6382f200b7510656b3 | 119 | logit_p8_N16384_K32,,3.9.6,2.0.2,,1149493868462540650,16384,32,512,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,M5M36 arm64,macOS,104.2,0,in-memory (no network),completed,7fc9aef9e1601316830e00fbf2ee78ba6afac25b514ded6382f200b7510656b3 | ||
@@ -126,7 +126,7 @@ logit_p8_N262144_K512,,3.9.6,2.0.2,,8039841745423251652,262144,512,512,8,{},esti | |||||
| 126 | logit_p8_N65536_K1024,,3.9.6,2.0.2,,1180070245565143404,65536,1024,64,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,m4mm arm64,macOS,1574.7,0,in-memory (no network),completed,8f15b0e47f746aa26de52338b2e3dda0a284f3fbcaaed2b31b406276b4c844f1 | 126 | logit_p8_N65536_K1024,,3.9.6,2.0.2,,1180070245565143404,65536,1024,64,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,m4mm arm64,macOS,1574.7,0,in-memory (no network),completed,8f15b0e47f746aa26de52338b2e3dda0a284f3fbcaaed2b31b406276b4c844f1 | ||
| 127 | logit_p8_N65536_K128,,3.9.6,2.0.2,,1232098941011368581,65536,128,512,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,m6mb arm64,macOS,421.7,0,in-memory (no network),completed,73dd441c3e14219a8cbddea1fd346cbc7beea168a044d22da85f55daa8fd9a63 | 127 | logit_p8_N65536_K128,,3.9.6,2.0.2,,1232098941011368581,65536,128,512,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,m6mb arm64,macOS,421.7,0,in-memory (no network),completed,73dd441c3e14219a8cbddea1fd346cbc7beea168a044d22da85f55daa8fd9a63 | ||
| 128 | logit_p8_N65536_K256,,3.9.6,2.0.2,,280738212038287331,65536,256,256,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,m6ma arm64,macOS,460.8,0,in-memory (no network),completed,b01b98f8139655860fb6258bbf418349a88feb3fbdc44cf324a6d8710659a875 | 128 | logit_p8_N65536_K256,,3.9.6,2.0.2,,280738212038287331,65536,256,256,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,m6ma arm64,macOS,460.8,0,in-memory (no network),completed,b01b98f8139655860fb6258bbf418349a88feb3fbdc44cf324a6d8710659a875 | ||
| 129 | −logit_p8_N65536_K512,,3.9.6,2.0.2,,2883218016326956929,65536,512,128,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,m4mn arm64,macOS,966.6,0,in-memory (no network),completed,e7c5267c4d35cbc17abeddb57d733428ca1a90d8e736b30770b9b44cbee0433a | 129 | +logit_p8_N65536_K512,b354e67,3.14.4,2.4.4,,2883218016326956929,65536,512,128,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,MacBookPro-de-simon-pierre-2.local arm64,macOS,758.7,0,in-memory (no network),completed,e7b784a3fe0259a397c9ad67186c3679df6fc740d844023596eab4fedd25e00a | ||
| 130 | logit_p8_N65536_K64,,3.9.6,2.0.2,,2215989508265194187,65536,64,1024,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,m5ma arm64,macOS,421.2,0,in-memory (no network),completed,97019ac63c588623189f22cd59285b6c3705f45aeb9c9ee50c6102b480759c7e | 130 | logit_p8_N65536_K64,,3.9.6,2.0.2,,2215989508265194187,65536,64,1024,8,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,m5ma arm64,macOS,421.2,0,in-memory (no network),completed,97019ac63c588623189f22cd59285b6c3705f45aeb9c9ee50c6102b480759c7e | ||
| 131 | pois_p3_N1048576_K1024,,3.9.6,2.0.2,,4497362842336315866,1048576,1024,1024,3,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,m5ma arm64,macOS,2191.8,0,in-memory (no network),completed,e8dfee0a8ab7279a8060fe3055cfedd414642e2ee0ef236d1416d0f08250c220 | 131 | pois_p3_N1048576_K1024,,3.9.6,2.0.2,,4497362842336315866,1048576,1024,1024,3,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,m5ma arm64,macOS,2191.8,0,in-memory (no network),completed,e8dfee0a8ab7279a8060fe3055cfedd414642e2ee0ef236d1416d0f08250c220 | ||
| 132 | pois_p3_N1048576_K16384,,3.9.6,2.0.2,,6004159781069538546,1048576,16384,64,3,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,m4mm arm64,macOS,3153.9,0,in-memory (no network),completed,8371de465e590e79912afdf37f065c75072693e2b0540a704401fd2d0380c98e | 132 | pois_p3_N1048576_K16384,,3.9.6,2.0.2,,6004159781069538546,1048576,16384,64,3,{},estimate_all,"batched Newton, step halving, tol 1e-9 (central 1e-12)",1e-9,1000,xargs -P / nohup,1,m4mm arm64,macOS,3153.9,0,in-memory (no network),completed,8371de465e590e79912afdf37f065c75072693e2b0540a704401fd2d0380c98e | ||
modified
experiments/make_tables.py
+3 −3
@@ -33,7 +33,7 @@ def table_cell(s, label, p, N, ms, fname, caption, ests=MAIN): | |||||
| 33 | if len(ms) > 4: # keep at most four local sizes: the two extremes and two interior ones | 33 | if len(ms) > 4: # keep at most four local sizes: the two extremes and two interior ones | ||
| 34 | idx = sorted(set([0, len(ms) - 1, len(ms) // 3, (2 * len(ms)) // 3])) | 34 | idx = sorted(set([0, len(ms) - 1, len(ms) // 3, (2 * len(ms)) // 3])) | ||
| 35 | ms = [ms[i] for i in idx] | 35 | ms = [ms[i] for i in idx] | ||
| 36 | − lines = [r"\begin{table}[p]", r"\centering\scriptsize", r"\begin{threeparttable}", f"\\caption{{{caption}}}\\label{{tab:{fname[:-4]}}}", | 36 | + lines = [r"\begin{table}[p]", r"\centering\scriptsize\setlength{\tabcolsep}{2.6pt}", r"\begin{threeparttable}", f"\\caption{{{caption}}}\\label{{tab:{fname[:-4]}}}", | ||
| 37 | r"\begin{tabular}{@{}l" + "r" * (3 * len(ms)) + "@{}}", r"\toprule", | 37 | r"\begin{tabular}{@{}l" + "r" * (3 * len(ms)) + "@{}}", r"\toprule", | ||
| 38 | "Estimator & " + " & ".join(f"\\multicolumn{{3}}{{c}}{{$m = {m}$, $K = {int(N//m):,}$}}" for m in ms) + r" \\", | 38 | "Estimator & " + " & ".join(f"\\multicolumn{{3}}{{c}}{{$m = {m}$, $K = {int(N//m):,}$}}" for m in ms) + r" \\", | ||
| 39 | " & " + " & ".join("gap & median & cov" for _ in ms) + r" \\", r"\midrule"] | 39 | " & " + " & ".join("gap & median & cov" for _ in ms) + r" \\", r"\midrule"] | ||
@@ -139,7 +139,7 @@ def table_ablation(model, fname): | |||||
| 139 | continue | 139 | continue | ||
| 140 | lines.append(f"({pat.replace('-', ',')}) & {lab}, $b={bits}$ & 1 & " + " & ".join(vals) + r" \\") | 140 | lines.append(f"({pat.replace('-', ',')}) & {lab}, $b={bits}$ & 1 & " + " & ".join(vals) + r" \\") | ||
| 141 | rc = d.groupby(["N", "m"]).rep.nunique(); reps = f"{int(rc.min())}--{int(rc.max())}" if rc.min() != rc.max() else str(int(rc.max())) | 141 | rc = d.groupby(["N", "m"]).rep.nunique(); reps = f"{int(rc.min())}--{int(rc.max())}" if rc.min() != rc.max() else str(int(rc.max())) | ||
| 142 | − lines += [r"\bottomrule", r"\end{tabular}", r"\begin{tablenotes}\footnotesize", f"\\item {reps} paired replications per column (exact count per cell in the processed CSV); $K = N/m$. Rows are omitted when the pattern does not divide $m$. Source: \\texttt{{results/processed/ablation\\_{model}\\_summary.csv}}.", r"\end{tablenotes}", r"\end{threeparttable}", r"\end{table}"] | 142 | + lines += [r"\bottomrule", r"\end{tabular}", r"\begin{tablenotes}\footnotesize", f"\\item {reps} paired replications per column (exact count per cell in the processed CSV); $K = N/m$. Rows are omitted when the pattern does not divide $m$. Source: the processed ablation summary for the {model} model in \\texttt{{results/processed/}}.", r"\end{tablenotes}", r"\end{threeparttable}", r"\end{table}"] | ||
| 143 | (TAB / fname).write_text("\n".join(lines) + "\n"); return g | 143 | (TAB / fname).write_text("\n".join(lines) + "\n"); return g | ||
| 144 | 144 | ||||
| 145 | 145 | ||||
@@ -174,7 +174,7 @@ def table_bench(fname="bench.tex"): | |||||
| 174 | g = d.groupby(["label", "K", "hosts", "p", "r", "q", "hessian"]).agg(reps=("t_total", "size"), t_total=("t_total", "median"), t_local=("t_local", "median"), fit_mean=("fit_mean", "median"), fit_max=("fit_max", "median"), | 174 | g = d.groupby(["label", "K", "hosts", "p", "r", "q", "hessian"]).agg(reps=("t_total", "size"), t_total=("t_total", "median"), t_local=("t_local", "median"), fit_mean=("fit_mean", "median"), fit_max=("fit_max", "median"), | ||
| 175 | t_rounds=("t_rounds", "median"), round_wall=("round_wall", "median"), der_max=("der_max", "median"), lat99=("lat99_round", "median"), up_B=("up_B", "first"), down_B=("down_B", "first"), msgs=("msgs", "first"), grad=("grad_final", "median"), t_connect=("t_connect", "median")).reset_index() | 175 | t_rounds=("t_rounds", "median"), round_wall=("round_wall", "median"), der_max=("der_max", "median"), lat99=("lat99_round", "median"), up_B=("up_B", "first"), down_B=("down_B", "first"), msgs=("msgs", "first"), grad=("grad_final", "median"), t_connect=("t_connect", "median")).reset_index() | ||
| 176 | g.to_csv(PROC / "benchmarks_summary.csv", index=False) | 176 | g.to_csv(PROC / "benchmarks_summary.csv", index=False) | ||
| 177 | − lines = [r"\begin{table}[p]", r"\centering\scriptsize", r"\begin{threeparttable}", r"\caption{Measured multi-node benchmarks of the protocol (logistic regression, $N = 2^{22}$, medians over repeats): wall-clock of the local phase (slowest worker) and of the synchronized derivative phases, worker compute times, 99th-percentile reply latency, and bytes moved.}\label{tab:bench}", | 177 | + lines = [r"\begin{table}[p]", r"\centering\scriptsize\setlength{\tabcolsep}{2.2pt}", r"\begin{threeparttable}", r"\caption{Measured multi-node benchmarks of the protocol (logistic regression, $N = 2^{22}$, medians over repeats): wall-clock of the local phase (slowest worker) and of the synchronized derivative phases, worker compute times, 99th-percentile reply latency, and bytes moved.}\label{tab:bench}", | ||
| 178 | r"\begin{tabular}{@{}lrrrrrlrrrrrrrr@{}}", r"\toprule", r"Design & $K$ & hosts & $p$ & $r$ & $q$ & curvature & local (s) & fit max (s) & rounds (s) & per round (s) & der.\ max (s) & lat.\ p99 (s) & up (kB) & down (kB) \\", r"\midrule"] | 178 | r"\begin{tabular}{@{}lrrrrrlrrrrrrrr@{}}", r"\toprule", r"Design & $K$ & hosts & $p$ & $r$ & $q$ & curvature & local (s) & fit max (s) & rounds (s) & per round (s) & der.\ max (s) & lat.\ p99 (s) & up (kB) & down (kB) \\", r"\midrule"] | ||
| 179 | for r in g.itertuples(): | 179 | for r in g.itertuples(): | ||
| 180 | lines.append(f"{r.label.replace('_', ' ')} & {r.K} & {r.hosts} & {r.p} & {r.r} & {r.q} & {r.hessian} & {r.t_local:.3f} & {r.fit_max:.3f} & {r.t_rounds:.3f} & {r.round_wall:.3f} & {r.der_max:.3f} & {r.lat99:.3f} & {r.up_B/1e3:.1f} & {r.down_B/1e3:.1f} \\\\") | 180 | lines.append(f"{r.label.replace('_', ' ')} & {r.K} & {r.hosts} & {r.p} & {r.r} & {r.q} & {r.hessian} & {r.t_local:.3f} & {r.fit_max:.3f} & {r.t_rounds:.3f} & {r.round_wall:.3f} & {r.der_max:.3f} & {r.lat99:.3f} & {r.up_B/1e3:.1f} & {r.down_B/1e3:.1f} \\\\") | ||
modified
paper/appendices/exponential.tex
+4 −5
@@ -43,11 +43,10 @@ Let $h = m/2$ and let $S_A, S_B$ be the sums over the two halves, $S = S_A + S_B | |||||
| 43 | 43 | ||||
| 44 | \begin{proof}[Proof of (iv)] | 44 | \begin{proof}[Proof of (iv)] | ||
| 45 | With $g_N(x) = 1/x - \bar X_N$ and $H_N(x) = -1/x^2$, | 45 | With $g_N(x) = 1/x - \bar X_N$ and $H_N(x) = -1/x^2$, | ||
| 46 | −\[ | 46 | +\begin{align*} | ||
| 47 | −\mathcal N_N(x) = x + x^2\Big(\frac1x - \bar X_N\Big) = 2x - x^2\bar X_N, | 47 | +\mathcal N_N(x) &= x + x^2\Big(\frac1x - \bar X_N\Big) = 2x - x^2\bar X_N,\\ | ||
| 48 | −\qquad | 48 | +\mathcal N_N(x) - \thetaN &= -\bar X_N x^2 + 2x - \frac{1}{\bar X_N} = -\bar X_N\Big(x - \frac{1}{\bar X_N}\Big)^2 = -\frac{(x-\thetaN)^2}{\thetaN}, | ||
| 49 | −\mathcal N_N(x) - \thetaN = -\bar X_N x^2 + 2x - \frac{1}{\bar X_N} = -\bar X_N\Big(x - \frac{1}{\bar X_N}\Big)^2 = -\frac{(x-\thetaN)^2}{\thetaN}, | 49 | +\end{align*} | ||
| 50 | −\] | ||||
| 51 | since $\thetaN = 1/\bar X_N$. Writing $e_j = \iter{}{j} - \thetaN$ gives $e_{j+1} = -e_j^2/\thetaN$ and, by induction, $e_q = -e_0^{2^q}/\thetaN^{2^q-1}$. In units of $\thetaN$, $u_{j+1} = -u_j^2$ with $u_j = e_j/\thetaN$, so $\abs{u_j} \to 0$ iff $\abs{u_0} < 1$, i.e.\ $0 < x < 2\thetaN$; $\abs{u_0} > 1$ gives $\abs{u_j} \to \infty$ with $u_j < 0$ for $j \ge 1$; $u_0 = \pm1$ gives $u_1 = -1$ and then $u_j = -1$, i.e.\ the iterate $0$, where the log-likelihood is undefined. | 50 | since $\thetaN = 1/\bar X_N$. Writing $e_j = \iter{}{j} - \thetaN$ gives $e_{j+1} = -e_j^2/\thetaN$ and, by induction, $e_q = -e_0^{2^q}/\thetaN^{2^q-1}$. In units of $\thetaN$, $u_{j+1} = -u_j^2$ with $u_j = e_j/\thetaN$, so $\abs{u_j} \to 0$ iff $\abs{u_0} < 1$, i.e.\ $0 < x < 2\thetaN$; $\abs{u_0} > 1$ gives $\abs{u_j} \to \infty$ with $u_j < 0$ for $j \ge 1$; $u_0 = \pm1$ gives $u_1 = -1$ and then $u_j = -1$, i.e.\ the iterate $0$, where the log-likelihood is undefined. | ||
| 52 | \end{proof} | 51 | \end{proof} | ||
| 53 | 52 | ||||
modified
paper/main.pdf
+0 −0
Binary file not shown.
modified
paper/sections/robustness.tex
+1 −1
@@ -18,7 +18,7 @@ with equality only for equal sizes; the discrepancy is of exact order $N^{-1/2}$ | |||||
| 18 | \begin{equation}\label{eq:sandwich} | 18 | \begin{equation}\label{eq:sandwich} | ||
| 19 | \psi(x) = -\bar H(\theta_0)^{-1}\,\nabla_\theta\log f(x;\theta_0), \qquad \Sigma_\psi = \bar H(\theta_0)^{-1}\,\bar J(\theta_0)\,\bar H(\theta_0)^{-1}, | 19 | \psi(x) = -\bar H(\theta_0)^{-1}\,\nabla_\theta\log f(x;\theta_0), \qquad \Sigma_\psi = \bar H(\theta_0)^{-1}\,\bar J(\theta_0)\,\bar H(\theta_0)^{-1}, | ||
| 20 | \end{equation} | 20 | \end{equation} | ||
| 21 | −provided \cref{ass:lin,ass:bias,ass:newton} are read for the pseudo-MLE. The estimator is then first-order equivalent to the centralized pseudo-MLE and Wald intervals require the sandwich of \cref{cor:inference}; observed-information intervals are not valid. | 21 | +provided \cref{ass:lin,ass:bias,ass:newton} are read for the pseudo-MLE. The estimator is then first-order equivalent to the centralized pseudo-MLE and Wald intervals require the sandwich of \cref{cor:inference}; observed-information intervals are not valid in general (they happen to be close to the sandwich in the misspecified logistic design of \cref{sec:mc}, and far from it in the contaminated exponential design). | ||
| 22 | \end{enumerate} | 22 | \end{enumerate} | ||
| 23 | \end{proposition} | 23 | \end{proposition} | ||
| 24 | 24 | ||||
modified
paper/tables/abl_exponential.tex
+1 −1
@@ -137,7 +137,7 @@ Pattern & curvature & $q$ & $m = 24$ & $m = 96$ \\ | |||||
| 137 | \bottomrule | 137 | \bottomrule | ||
| 138 | \end{tabular} | 138 | \end{tabular} | ||
| 139 | \begin{tablenotes}\footnotesize | 139 | \begin{tablenotes}\footnotesize | ||
| 140 | −\item 300--1000 paired replications per column (exact count per cell in the processed CSV); $K = N/m$. Rows are omitted when the pattern does not divide $m$. Source: \texttt{results/processed/ablation\_exponential\_summary.csv}. | 140 | +\item 300--1000 paired replications per column (exact count per cell in the processed CSV); $K = N/m$. Rows are omitted when the pattern does not divide $m$. Source: the processed ablation summary for the exponential model in \texttt{results/processed/}. | ||
| 141 | \end{tablenotes} | 141 | \end{tablenotes} | ||
| 142 | \end{threeparttable} | 142 | \end{threeparttable} | ||
| 143 | \end{table} | 143 | \end{table} | ||
modified
paper/tables/abl_logistic.tex
+1 −1
@@ -137,7 +137,7 @@ Pattern & curvature & $q$ & $m = 192$ & $m = 768$ \\ | |||||
| 137 | \bottomrule | 137 | \bottomrule | ||
| 138 | \end{tabular} | 138 | \end{tabular} | ||
| 139 | \begin{tablenotes}\footnotesize | 139 | \begin{tablenotes}\footnotesize | ||
| 140 | −\item 400 paired replications per column (exact count per cell in the processed CSV); $K = N/m$. Rows are omitted when the pattern does not divide $m$. Source: \texttt{results/processed/ablation\_logistic\_summary.csv}. | 140 | +\item 400 paired replications per column (exact count per cell in the processed CSV); $K = N/m$. Rows are omitted when the pattern does not divide $m$. Source: the processed ablation summary for the logistic model in \texttt{results/processed/}. | ||
| 141 | \end{tablenotes} | 141 | \end{tablenotes} | ||
| 142 | \end{threeparttable} | 142 | \end{threeparttable} | ||
| 143 | \end{table} | 143 | \end{table} | ||
modified
paper/tables/bench.tex
+1 −1
@@ -1,5 +1,5 @@ | |||||
| 1 | \begin{table}[p] | 1 | \begin{table}[p] | ||
| 2 | −\centering\scriptsize | 2 | +\centering\scriptsize\setlength{\tabcolsep}{2.2pt} | ||
| 3 | \begin{threeparttable} | 3 | \begin{threeparttable} | ||
| 4 | \caption{Measured multi-node benchmarks of the protocol (logistic regression, $N = 2^{22}$, medians over repeats): wall-clock of the local phase (slowest worker) and of the synchronized derivative phases, worker compute times, 99th-percentile reply latency, and bytes moved.}\label{tab:bench} | 4 | \caption{Measured multi-node benchmarks of the protocol (logistic regression, $N = 2^{22}$, medians over repeats): wall-clock of the local phase (slowest worker) and of the synchronized derivative phases, worker compute times, 99th-percentile reply latency, and bytes moved.}\label{tab:bench} | ||
| 5 | \begin{tabular}{@{}lrrrrrlrrrrrrrr@{}} | 5 | \begin{tabular}{@{}lrrrrrlrrrrrrrr@{}} | ||
modified
paper/tables/mc_exp_contam_p1.tex
+1 −1
@@ -1,5 +1,5 @@ | |||||
| 1 | \begin{table}[p] | 1 | \begin{table}[p] | ||
| 2 | −\centering\scriptsize | 2 | +\centering\scriptsize\setlength{\tabcolsep}{2.6pt} | ||
| 3 | \begin{threeparttable} | 3 | \begin{threeparttable} | ||
| 4 | \caption{Monte Carlo, exp contam design, $p = 1$, $N = 1,048,576$: scaled gap to $\widehat\theta_N$ (root mean square and median) and 95\% coverage by local sample size $m$.}\label{tab:mc_exp_contam_p1} | 4 | \caption{Monte Carlo, exp contam design, $p = 1$, $N = 1,048,576$: scaled gap to $\widehat\theta_N$ (root mean square and median) and 95\% coverage by local sample size $m$.}\label{tab:mc_exp_contam_p1} | ||
| 5 | \begin{tabular}{@{}lrrrrrrrrr@{}} | 5 | \begin{tabular}{@{}lrrrrrrrrr@{}} | ||
modified
paper/tables/mc_exp_p1.tex
+1 −1
@@ -1,5 +1,5 @@ | |||||
| 1 | \begin{table}[p] | 1 | \begin{table}[p] | ||
| 2 | −\centering\scriptsize | 2 | +\centering\scriptsize\setlength{\tabcolsep}{2.6pt} | ||
| 3 | \begin{threeparttable} | 3 | \begin{threeparttable} | ||
| 4 | \caption{Monte Carlo, exp design, $p = 1$, $N = 4,194,304$: scaled gap to $\widehat\theta_N$ (root mean square and median) and 95\% coverage by local sample size $m$.}\label{tab:mc_exp_p1} | 4 | \caption{Monte Carlo, exp design, $p = 1$, $N = 4,194,304$: scaled gap to $\widehat\theta_N$ (root mean square and median) and 95\% coverage by local sample size $m$.}\label{tab:mc_exp_p1} | ||
| 5 | \begin{tabular}{@{}lrrrrrrrrrrrr@{}} | 5 | \begin{tabular}{@{}lrrrrrrrrrrrr@{}} | ||
modified
paper/tables/mc_logit_illcond_p8.tex
+1 −1
@@ -1,5 +1,5 @@ | |||||
| 1 | \begin{table}[p] | 1 | \begin{table}[p] | ||
| 2 | −\centering\scriptsize | 2 | +\centering\scriptsize\setlength{\tabcolsep}{2.6pt} | ||
| 3 | \begin{threeparttable} | 3 | \begin{threeparttable} | ||
| 4 | \caption{Monte Carlo, logit illcond design, $p = 8$, $N = 1,048,576$: scaled gap to $\widehat\theta_N$ (root mean square and median) and 95\% coverage by local sample size $m$.}\label{tab:mc_logit_illcond_p8} | 4 | \caption{Monte Carlo, logit illcond design, $p = 8$, $N = 1,048,576$: scaled gap to $\widehat\theta_N$ (root mean square and median) and 95\% coverage by local sample size $m$.}\label{tab:mc_logit_illcond_p8} | ||
| 5 | \begin{tabular}{@{}lrrrrrrrrrrrr@{}} | 5 | \begin{tabular}{@{}lrrrrrrrrrrrr@{}} | ||
modified
paper/tables/mc_logit_misspec_p3.tex
+1 −1
@@ -1,5 +1,5 @@ | |||||
| 1 | \begin{table}[p] | 1 | \begin{table}[p] | ||
| 2 | −\centering\scriptsize | 2 | +\centering\scriptsize\setlength{\tabcolsep}{2.6pt} | ||
| 3 | \begin{threeparttable} | 3 | \begin{threeparttable} | ||
| 4 | \caption{Monte Carlo, logit misspec design, $p = 3$, $N = 1,048,576$: scaled gap to $\widehat\theta_N$ (root mean square and median) and 95\% coverage by local sample size $m$.}\label{tab:mc_logit_misspec_p3} | 4 | \caption{Monte Carlo, logit misspec design, $p = 3$, $N = 1,048,576$: scaled gap to $\widehat\theta_N$ (root mean square and median) and 95\% coverage by local sample size $m$.}\label{tab:mc_logit_misspec_p3} | ||
| 5 | \begin{tabular}{@{}lrrrrrrrrrrrr@{}} | 5 | \begin{tabular}{@{}lrrrrrrrrrrrr@{}} | ||
modified
paper/tables/mc_logit_p20_p20.tex
+1 −1
@@ -1,5 +1,5 @@ | |||||
| 1 | \begin{table}[p] | 1 | \begin{table}[p] | ||
| 2 | −\centering\scriptsize | 2 | +\centering\scriptsize\setlength{\tabcolsep}{2.6pt} | ||
| 3 | \begin{threeparttable} | 3 | \begin{threeparttable} | ||
| 4 | \caption{Monte Carlo, logit p20 design, $p = 20$, $N = 1,048,576$: scaled gap to $\widehat\theta_N$ (root mean square and median) and 95\% coverage by local sample size $m$.}\label{tab:mc_logit_p20_p20} | 4 | \caption{Monte Carlo, logit p20 design, $p = 20$, $N = 1,048,576$: scaled gap to $\widehat\theta_N$ (root mean square and median) and 95\% coverage by local sample size $m$.}\label{tab:mc_logit_p20_p20} | ||
| 5 | \begin{tabular}{@{}lrrrrrrrrrrrr@{}} | 5 | \begin{tabular}{@{}lrrrrrrrrrrrr@{}} | ||
modified
paper/tables/mc_logit_p3.tex
+1 −1
@@ -1,5 +1,5 @@ | |||||
| 1 | \begin{table}[p] | 1 | \begin{table}[p] | ||
| 2 | −\centering\scriptsize | 2 | +\centering\scriptsize\setlength{\tabcolsep}{2.6pt} | ||
| 3 | \begin{threeparttable} | 3 | \begin{threeparttable} | ||
| 4 | \caption{Monte Carlo, logit design, $p = 3$, $N = 1,048,576$: scaled gap to $\widehat\theta_N$ (root mean square and median) and 95\% coverage by local sample size $m$.}\label{tab:mc_logit_p3} | 4 | \caption{Monte Carlo, logit design, $p = 3$, $N = 1,048,576$: scaled gap to $\widehat\theta_N$ (root mean square and median) and 95\% coverage by local sample size $m$.}\label{tab:mc_logit_p3} | ||
| 5 | \begin{tabular}{@{}lrrrrrrrrrrrr@{}} | 5 | \begin{tabular}{@{}lrrrrrrrrrrrr@{}} | ||
modified
paper/tables/mc_logit_p8.tex
+1 −1
@@ -1,5 +1,5 @@ | |||||
| 1 | \begin{table}[p] | 1 | \begin{table}[p] | ||
| 2 | −\centering\scriptsize | 2 | +\centering\scriptsize\setlength{\tabcolsep}{2.6pt} | ||
| 3 | \begin{threeparttable} | 3 | \begin{threeparttable} | ||
| 4 | \caption{Monte Carlo, logit design, $p = 8$, $N = 1,048,576$: scaled gap to $\widehat\theta_N$ (root mean square and median) and 95\% coverage by local sample size $m$.}\label{tab:mc_logit_p8} | 4 | \caption{Monte Carlo, logit design, $p = 8$, $N = 1,048,576$: scaled gap to $\widehat\theta_N$ (root mean square and median) and 95\% coverage by local sample size $m$.}\label{tab:mc_logit_p8} | ||
| 5 | \begin{tabular}{@{}lrrrrrrrrrrrr@{}} | 5 | \begin{tabular}{@{}lrrrrrrrrrrrr@{}} | ||
modified
paper/tables/mc_pois_p3.tex
+1 −1
@@ -1,5 +1,5 @@ | |||||
| 1 | \begin{table}[p] | 1 | \begin{table}[p] | ||
| 2 | −\centering\scriptsize | 2 | +\centering\scriptsize\setlength{\tabcolsep}{2.6pt} | ||
| 3 | \begin{threeparttable} | 3 | \begin{threeparttable} | ||
| 4 | \caption{Monte Carlo, pois design, $p = 3$, $N = 1,048,576$: scaled gap to $\widehat\theta_N$ (root mean square and median) and 95\% coverage by local sample size $m$.}\label{tab:mc_pois_p3} | 4 | \caption{Monte Carlo, pois design, $p = 3$, $N = 1,048,576$: scaled gap to $\widehat\theta_N$ (root mean square and median) and 95\% coverage by local sample size $m$.}\label{tab:mc_pois_p3} | ||
| 5 | \begin{tabular}{@{}lrrrrrrrrrrrr@{}} | 5 | \begin{tabular}{@{}lrrrrrrrrrrrr@{}} | ||
modified
paper/tables/mc_pois_p8.tex
+1 −1
@@ -1,5 +1,5 @@ | |||||
| 1 | \begin{table}[p] | 1 | \begin{table}[p] | ||
| 2 | −\centering\scriptsize | 2 | +\centering\scriptsize\setlength{\tabcolsep}{2.6pt} | ||
| 3 | \begin{threeparttable} | 3 | \begin{threeparttable} | ||
| 4 | \caption{Monte Carlo, pois design, $p = 8$, $N = 1,048,576$: scaled gap to $\widehat\theta_N$ (root mean square and median) and 95\% coverage by local sample size $m$.}\label{tab:mc_pois_p8} | 4 | \caption{Monte Carlo, pois design, $p = 8$, $N = 1,048,576$: scaled gap to $\widehat\theta_N$ (root mean square and median) and 95\% coverage by local sample size $m$.}\label{tab:mc_pois_p8} | ||
| 5 | \begin{tabular}{@{}lrrrrrrrrrrrr@{}} | 5 | \begin{tabular}{@{}lrrrrrrrrrrrr@{}} | ||
| 6 | 6 | ||||