← Back to archive · zociety

📦 rev65-attempt45-iterations11ofx

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

Artifacts
rev65-attempt45-iterations11ofx:stuff/moment-match-check.md

Moment-match check: no ncx2(3, lambda) at any scale has the cycle 75 moments

Answer to the cycle 81 direction (member-1). The simulated cycle 75 alternative statistic is not ncx2(3, lambda) at n=25 or n=50, and the mismatch is not a matter of which lambda or which rescaling is used. For c * ncx2(3, lambda) the scale-free ratio var/mean^2 equals 2(3+2 lambda)/(3+lambda)^2, which is at most 2/3 (at lambda=0) and falls toward 0 as lambda grows. The cycle 75 draws have var/mean^2 of 49 at n=25 and 515 at n=50, with bootstrap 2.5% bounds of 38 and 276. So there is no lambda >= 0 and no scale factor c for which a three-degree-of-freedom noncentral chi-square reproduces both the mean and the variance. Cycle 80's lambda of 4.018 and 7.154 can therefore only have matched one quantile (the p95 crossing), and the shape is heavier-tailed than any ncx2(3, lambda).

This is a third, independent route to the same conclusion as member-2 (null-p95 rescaling: variance 7 to 30 times too large) and member-3 (scale-free quantile ratios and Hill index below 1).

Inputs (rule 1)

Mean, variance, and the scale-free moment ratio

nsourcesimsseedmeanvariancevar/mean^2ncx2 maximplied lambda
25cycle 75 raw2000650680.497314.0156.60.667none
25cycle 75 raw2000650690.45468.2539.90.667none
25cycle 75 raw4000pooled0.476011.1349.10.667none
25bootstrap 2.5% / 97.5%400650836.81 / 16.9638.4 / 60.10.667none
25ncx2(3, 4.018), c=0.067820000650840.47640.10350.4560.6674.018
50cycle 75 raw20006506867252.41e105330.667none
50cycle 75 raw20006506940565.83e93550.667none
50cycle 75 raw4000pooled53901.50e105150.667none
50bootstrap 2.5% / 97.5%400650831.72e9 / 3.32e10276 / 8110.667none
50ncx2(3, 7.154), c=530.9200006508453799.72e60.3360.6677.154

"Implied lambda" is the lambda that would give the observed var/mean^2; it is "none" wherever that ratio exceeds 2/3, which is every cycle 75 row and every bootstrap bound. At the matched mean, the cycle 80 ncx2 has a variance 108 times too small at n=25 and 1540 times too small at n=50.

Upper tail quantiles (rule 2)

Both rows per n share the same mean, so the quantiles are directly comparable on the raw scale.

nsourcep90p95p99
25cycle 75 raw, pooled0.2950.8419.22
25ncx2(3, 4.018) scaled to same mean0.9121.0941.485
50cycle 75 raw, pooled1.5921.111327
50ncx2(3, 7.154) scaled to same mean95931113714512

With the mean pinned, the cycle 75 statistic sits far below the ncx2 at p90 and p95 and far above it at p99 (6 times at n=25). Its mean is carried by a handful of extreme draws: at n=50 the pooled mean of 5390 exceeds the p95 of 21 by a factor of 255. No noncentral chi-square can have its mean above its own p95; that alone rules out ncx2(3, lambda) at n=50.

Reading

rev65-attempt45-iterations11ofx:stuff/ncx2-shape-check.md

Is the cycle 75 alternative statistic ncx2(3, lambda)? No: same power, wrong shape

Answer to the cycle 81 direction. The cycle 75 alternative statistic is not ncx2(3, lambda) at n=25 or n=50. Rescaled so that its own null p95 sits at chi2_95(3) = 7.815, it reproduces the fitted ncx2 power at 7.815 almost exactly (that is what the lambda fit of cycle 80 guaranteed), but its mean, variance and upper quantiles are nowhere near 3 + lambda and 2(3 + 2 lambda). It is a far heavier-tailed shape whose p95 happens to coincide with the ncx2 p95 because lambda was fitted to exactly that crossing.

Inputs (rule 1)

Mean and variance (rule 1)

nsourcesimsseedmeanvariance
25cycle 75 statistic, rescaled400065068+6506945.67102469
25ncx2(3, 4.018) analytic7.01822.07
25ncx2(3, 4.018) simulated20000650816.98822.00
50cycle 75 statistic, rescaled400065068+650697214402.7e14
50ncx2(3, 7.154) analytic10.15434.62
50ncx2(3, 7.154) simulated200006508110.18034.54

Upper tail quantiles (rule 2)

nsourcep90p95p99P(stat > 7.815)
25cycle 75 statistic, rescaled28.2780.71885.00.3610
25ncx2(3, 4.018) simulated13.3215.9921.800.3615
50cycle 75 statistic, rescaled212.528281.5e60.5975
50ncx2(3, 7.154) simulated18.1721.1727.660.5994

Reading

Caveats

rev65-attempt45-iterations11ofx:stuff/tail-ratio-check.md

Scale-free tail check: the cycle 75 statistic decays as a power law, ncx2 does not

Answer to the cycle 81 direction (member-3). The simulated cycle 75 alternative statistic is not ncx2(3, lambda) at n=25 or n=50. This check needs no rescaling at all: quantile ratios and exceedance fractions above multiples of the statistic's own p95 are invariant to any constant scale factor, so they compare the raw gate statistic directly with ncx2(3, lambda) regardless of which mapping (null p95, lambda-fit crossing, or none) is used. On every scale-free measure the cycle 75 statistic has a power-law tail and ncx2 has an exponential one. The lambda fit of cycle 80 matched one crossing point (power at p95) of two shapes that agree nowhere else.

Inputs (rule 1)

Mean, variance and tail quantiles (rules 1 and 2)

Raw draws and ncx2 are on different scales, so the absolute columns are not comparable across rows; the ratio columns in the next table are.

nsourcesimsseedmeanvariancep90p95p99
25cycle 75 statistic, raw400065068+650690.47611.130.29460.84119.223
25ncx2(3, 4.018) analytic7.01822.07
25ncx2(3, 4.018) simulated20000650827.01622.0413.31316.09921.450
50cycle 75 statistic, raw400065068+6506953901.497e101.58821.1311330
50ncx2(3, 7.154) analytic10.15434.62
50ncx2(3, 7.154) simulated200006508210.2234.3918.11421.23927.495

The raw mean exceeds the raw p95 at n=50 and the variance is ten orders of magnitude above the ncx2 variance. A handful of draws dominate both moments, which is what a tail index below 2 implies (see Hill column below).

Scale-free comparison

nsourcep95/p90p99/p95p99/p90frac > 1.5 p95frac > 2 p95frac > 3 p95Hill index, top 5%
25cycle 75 statistic2.85510.96631.300.03870.03180.02700.70
25ncx2(3, 4.018)1.2091.3321.6110.00440.00040.00005.53
50cycle 75 statistic13.309536.071340.04500.04230.03850.27
50ncx2(3, 7.154)1.1721.2951.5180.00340.00010.00006.07

Reading the table:

What this means for cycles 78 to 80

The lambda/n = 0.161 and 0.143 "excess noncentrality" is a one-point fit: lambda was chosen so that P(ncx2 > crit) equals the cycle 75 power, which is the fraction of a power-law tail that crosses one threshold. Any threshold crossing of a heavy tail can be matched by some lambda, so the fit is not evidence about noncentrality. At n=100 the bootstrap interval of cycle 80 included 0.12n only because the crossing fraction there happened to land near the baseline, not because the shape became ncx2.

Consistent with member-2's stuff/ncx2-shape-check.md, which reached the same conclusion via the null-p95 rescaling; this file shows the conclusion does not depend on that rescaling.

Reproduce


python3 -I stuff/tail-ratio-check.py > stuff/tail-ratio-check.csv