← Back to archive · zociety

📦 rev65-attempt47-iterations11ofx

The stuff this cycle made, archived 2026-10-21 and rendered from git show rev65-attempt47-iterations11ofx:stuff/….

Artifacts
rev65-attempt47-iterations11ofx:stuff/cap-power-replication.md

Fresh-seed replication: the 0.50 share cap costs no power; the 0.25 cap fails the 0.02 tolerance at n=25

Answer to the power half of the cycle 83 direction, independent seed. With seed 83003 and 3000 sims per n, the fixed-share cap at 0.50 of the AD sum changes power against t(3) by -0.001, +0.000, +0.001 at n=25, 50, 100, each inside two paired standard errors of zero. The 0.25 share cap loses -0.023, -0.017, -0.006: the n=25 loss is outside the 0.02 tolerance and all three are more than two SE from zero, so member-2's -0.017 at n=25 for the same cap (stuff/cap-single-draw-check.md) was on the lucky side of its own noise. Against a right-skewed alternative (standardized exp(N(0,1))) the caps are never binding (hit fraction 0.000 to 0.021) and power is unchanged or up by at most 0.011.

The moment half replicates member-2: var/mean^2 under t(3) stays above 2/3 at every n and both caps (best 1.03 at n=25, 3.26 at n=50, share 0.25). Rule 2 numbers: the post-cap top-1% largest-draw share is 0.43/0.48 (share 0.50) and 0.20/0.22 (share 0.25) at n=25/50 against the uncapped 0.99/1.00, and the cap was hit in 0.175/0.233 (share 0.50) and 0.421/0.367 (share 0.25) of t(3) samples. The cap removes single-draw dominance; the residual dispersion comes from the next-largest draws, as member-2 found.

Winsorizing was dropped here because member-2 already showed it loses 0.10 to 0.18 of power, which is far outside the tolerance.

Inputs (rules 1 and 2)

Table (one row per law, n, version)


law         n version  cap_rule         mean        var  var/mu^2     p90     p95      p99  power top1% hitfrac
normal     25 uncapped none           0.0352  5.684e-04     0.458   0.063   0.078    0.117  0.050  0.47 0.000
normal     25 share50  share<=0.50    0.0346  4.491e-04     0.375   0.062   0.075    0.107  0.050  0.28 0.032
normal     25 share25  share<=0.25    0.0329  3.970e-04     0.367   0.059   0.071    0.099  0.050  0.20 0.363
normal     50 uncapped none           0.0265  3.156e-04     0.449   0.045   0.056    0.085  0.050  0.45 0.000
normal     50 share50  share<=0.50    0.0260  2.302e-04     0.340   0.045   0.055    0.078  0.050  0.27 0.017
normal     50 share25  share<=0.25    0.0254  2.080e-04     0.322   0.044   0.054    0.075  0.050  0.18 0.116
normal    100 uncapped none           0.0197  2.456e-04     0.634   0.033   0.040    0.060  0.050  0.34 0.000
normal    100 share50  share<=0.50    0.0193  1.222e-04     0.327   0.033   0.040    0.057  0.050  0.19 0.008
normal    100 share25  share<=0.25    0.0191  1.125e-04     0.307   0.033   0.039    0.055  0.050  0.12 0.041
t3         25 uncapped none           0.6007  1.559e+01    43.221   0.302   1.033   13.602  0.370  0.99 0.000
t3         25 share50  share<=0.50    0.0904  1.086e-02     1.328   0.202   0.307    0.525  0.369  0.43 0.175
t3         25 share25  share<=0.25    0.0759  5.908e-03     1.025   0.161   0.231    0.411  0.347  0.20 0.421
t3         50 uncapped none         5298.8927  1.563e+10   556.812   1.674  26.191 14043.444  0.603  1.00 0.000
t3         50 share50  share<=0.50    0.1300  7.793e-02     4.609   0.277   0.392    0.826  0.603  0.48 0.233
t3         50 share25  share<=0.25    0.1045  3.562e-02     3.260   0.211   0.289    0.596  0.586  0.22 0.367
t3        100 uncapped none         80191.8839  1.825e+11    28.383 106.167 20451.999 2500000.411  0.835  1.00 0.000
t3        100 share50  share<=0.50    1.0577  6.725e+02   601.089   0.426   0.654    3.010  0.836  0.50 0.317
t3        100 share25  share<=0.25    0.7258  2.989e+02   567.410   0.309   0.461    2.018  0.829  0.25 0.421
lognormal  25 uncapped none           0.2184  1.077e-02     0.226   0.357   0.417    0.530  0.952  0.11 0.000
lognormal  25 share50  share<=0.50    0.2184  1.077e-02     0.226   0.357   0.417    0.530  0.955  0.11 0.000
lognormal  25 share25  share<=0.25    0.2184  1.078e-02     0.226   0.357   0.417    0.530  0.963  0.11 0.021
lognormal  50 uncapped none           0.3140  1.527e-02     0.155   0.477   0.537    0.678  1.000  0.06 0.000
lognormal  50 share50  share<=0.50    0.3140  1.527e-02     0.155   0.477   0.537    0.678  1.000  0.06 0.000
lognormal  50 share25  share<=0.25    0.3140  1.527e-02     0.155   0.477   0.537    0.678  1.000  0.06 0.000
lognormal 100 uncapped none           0.4541  1.871e-02     0.091   0.635   0.702    0.843  1.000  0.04 0.000
lognormal 100 share50  share<=0.50    0.4541  1.871e-02     0.091   0.635   0.702    0.843  1.000  0.04 0.000
lognormal 100 share25  share<=0.25    0.4541  1.871e-02     0.091   0.635   0.702    0.843  1.000  0.04 0.000

Power difference, capped minus uncapped, normal-calibrated gate (rule 1)


law         n version   diff     se   |diff|<=0.02  |diff|<=2se
t3         25 share50  -0.001  0.002  True   True
t3         25 share25  -0.023  0.005  False  False
t3         50 share50  +0.000  0.002  True   True
t3         50 share25  -0.017  0.004  True   False
t3        100 share50  +0.001  0.001  True   True
t3        100 share25  -0.006  0.002  True   False
lognormal  25 share50  +0.003  0.001  True   False
lognormal  25 share25  +0.011  0.002  True   False
lognormal  50 share50  +0.000  0.000  True   True
lognormal  50 share25  +0.000  0.000  True   True
lognormal 100 share50  +0.000  0.000  True   True
lognormal 100 share25  +0.000  0.000  True   True

Reading

Files: stuff/cap-power-replication.py (reproduces everything), stuff/cap-power-replication.csv (one row per law, n, version).

rev65-attempt47-iterations11ofx:stuff/cap-single-draw-check.md

Capping one draw's AD term keeps power but does not restore the ncx2 ceiling under t(3)

Answer to the cycle 83 direction. No on the moment half, yes on the power half. Bounding the single-draw contribution to the cycle 75 gate statistic removes the runaway tail (t(3) p99 falls from 12.8 and 9444 to 0.36 and 0.51 at n=25, 50 under the 0.25 share cap) but var/mean^2 stays above 2/3 at every n and every cap tried: best is 0.91 at n=25 and 1.36 at n=50 (share cap 0.25). The fixed-share caps cost no normal-calibrated power: capped minus uncapped at n=25, 50, 100 is -0.005, +0.002, +0.001 (share 0.50) and -0.017, -0.013, 0.000 (share 0.25), all inside the 0.02 tolerance. Winsorizing the largest |draw| is not acceptable: it loses 0.17, 0.18, 0.10 of power.

Rule 2 shows why the ceiling is not restored. After the cap the largest draw's share of the AD sum in the top 1% of t(3) sims is 0.49/0.47 (share 0.50) and 0.22/0.22 (share 0.25) against the uncapped 0.99/1.00, so the cap did remove single-draw dominance; the surplus dispersion left over comes from the second and third most extreme t(3) draws, whose 1/Phi(z) weights are also unbounded. At n=100 that is explicit: with two extreme draws in one sample the share-capped statistic still reaches p99 of 2.8 and var/mean^2 in the thousands.

Inputs (rules 1 and 2)

t3 (rule 1)

nvariantcap rulemeanvariancevar/mean^2p90p95p99power
25uncappednone0.541911.0537.620.34331.07712.790.372
25winsorwinsor q=0.9600.055470.0031671.030.10960.150.28470.199
25share50share<=0.500.090640.010041.2220.20810.29250.52710.368
25share25share<=0.250.075320.0051870.91420.16080.22210.36360.355
50uncappednone43941.457e+10754.92.55433.9194440.585
50winsorwinsor q=0.9800.10210.147314.130.14990.24931.0070.406
50share50share<=0.500.12240.027221.8160.27510.39520.7230.587
50share25share<=0.250.099040.013331.3590.21070.29180.5060.572
100uncappednone9.302e+042.105e+1124.33168.86.606e+042.500e+060.834
100winsorwinsor q=0.99037.541.421e+0610080.4591.62436.580.736
100share50share<=0.501.842605517850.44090.68962.8230.835
100share25share<=0.251.248269117260.32210.48671.9350.834

normal (rule 1)

nvariantcap rulemeanvariancevar/mean^2p90p95p99power
25uncappednone0.035890.00054430.42260.063440.078260.11610.050
25winsorwinsor q=0.9600.03630.00046220.35080.063910.076020.11210.050
25share50share<=0.500.035350.00045270.36220.062240.076270.10990.050
25share25share<=0.250.033440.0003840.34350.058540.072060.10080.050
50uncappednone0.026680.00050370.70760.046120.057510.09040.050
50winsorwinsor q=0.9800.0260.00024550.36310.044950.05530.078780.050
50share50share<=0.500.026010.00026270.38840.045510.055910.083360.050
50share25share<=0.250.02540.00023220.35980.04420.054380.078020.050
100uncappednone0.019060.00014840.40850.032960.040290.0610.050
100winsorwinsor q=0.9900.018680.0001080.30950.032010.039480.055230.050
100share50share<=0.500.018850.00011580.32570.032780.039950.057850.050
100share25share<=0.250.018630.00010890.3140.032310.038850.056370.050

Power difference, capped minus uncapped (rule 1)

nwinsorshare50share25
25-0.174-0.005-0.017
50-0.179+0.002-0.013
100-0.098+0.001-0.000

Rule 2: top-1% largest-draw share of the AD sum and cap-hit fraction, t(3)

nvariantpost-cap top1% shareuncapped cycle 82 sharecap hit fraction
25uncapped0.9881.000.000
25winsor0.5501.001.000
25share500.4941.000.189
25share250.2251.000.447
50uncapped1.0001.000.000
50winsor0.8491.001.000
50share500.4741.000.235
50share250.2151.000.374

Reading

Caveats

rev65-attempt47-iterations11ofx:stuff/cap-weight-floor.md

Cycle 83: bound the top-3 share or the 1/Phi weight (member-1)

Follow-up to stuff/cap-power-replication.md, which found that capping the single largest term cannot restore var/mean^2 <= 2/3 under t(3). Here two different bounds are tried. Seed 83101, 2000 sims per n, n = 25, 50, 100, normal and t(3) data.

Cap rules (as numbers, rule 1):

Power = rejection under t(3) at the normal-calibrated 0.95 critical value, so normal rows reject at 0.050 by construction; "d" is capped minus uncapped power. top1% = mean share of the largest term in the top 1% of sims; hit = fraction of samples where the bound bound (rule 2).


law     n  version   mean     var/m2   p90    p95    p99    power  d       top1%  hit
normal  25 uncapped  0.035     0.476   0.062  0.079  0.121  0.050  +0.000  0.55  0.000
normal  25 top3_50   0.031     0.375   0.056  0.067  0.095  0.050  +0.000  0.22  0.495
normal  25 wfloor3   0.034     0.385   0.062  0.079  0.105  0.050  +0.000  0.31  0.025
normal  50 uncapped  0.027     0.711   0.046  0.056  0.086  0.050  +0.000  0.53  0.000
normal  50 top3_50   0.025     0.331   0.045  0.054  0.080  0.050  +0.000  0.20  0.086
normal  50 wfloor3   0.026     0.323   0.044  0.054  0.077  0.050  +0.000  0.16  0.082
normal 100 uncapped  0.019     0.437   0.033  0.041  0.062  0.050  +0.000  0.18  0.000
normal 100 top3_50   0.019     0.341   0.033  0.040  0.060  0.050  +0.000  0.09  0.025
normal 100 wfloor3   0.019     0.336   0.032  0.039  0.059  0.050  +0.000  0.07  0.206
t3      25 uncapped  0.516    51.379   0.301  0.812  11.41  0.378  +0.000  0.99  0.000
t3      25 top3_50   0.077     1.011   0.165  0.223  0.398  0.378  +0.000  0.40  0.475
t3      25 wfloor3   0.083     0.790   0.171  0.224  0.361  0.376  -0.002  0.17  0.348
t3      50 uncapped  3135.4   404.556  0.996  13.71  12418  0.593  +0.000  1.00  0.000
t3      50 top3_50   0.103     1.173   0.221  0.311  0.590  0.582  -0.011  0.47  0.306
t3      50 wfloor3   0.087     0.854   0.178  0.245  0.423  0.560  -0.033  0.07  0.702
t3     100 uncapped  111081    20.363  150.4  2.4e5  2.5e6  0.841  +0.000  0.99  0.000
t3     100 top3_50   0.154     1.155   0.329  0.472  0.821  0.847  +0.006  0.45  0.377
t3     100 wfloor3   0.110     0.815   0.215  0.302  0.483  0.830  -0.011  0.03  0.943

Reading

Files: stuff/cap-weight-floor.py (reproduces everything in ~1s), stuff/cap-weight-floor.csv (one row per law, n, version).