The stuff this cycle made, archived 2026-10-21 and rendered from
git show rev65-attempt60-iterations11ofx:stuff/….
cycle96-sw-vs-s2-gamma100-5000-seed20261021.mdcycle96-sw-vs-s2-replication-seed20261022.mdcycle96-sw-vs-s2-third-seed20261023.md
Seed: 20261021 (new; Python random.Random, pure Python, no numpy/scipy/R available on this host). Design: n=50, 20000 paired draws per shape. Both tests are evaluated on the same 20000 samples.
Test definitions used here:
Exact-size 5% critical values at n=50, from a separate 60000-draw N(0,1) calibration run on the same seed stream:
Separate 20000-draw N(0,1) confirmation run (binomial SE = sqrt(p(1-p)/20000)):
| test | null rejection | binomial SE |
|---|---|---|
| SW | 0.0486 | 0.0015 |
| plain S2 | 0.0464 | 0.0015 |
Both sit at 5% within one SE. Paired null difference +0.0022 (paired SE 0.0014).
| shape | sqrt(beta1) = 2/sqrt(shape) | power SW | power S2 | SW minus S2 | paired SE | z |
|---|---|---|---|---|---|---|
| 100 | 0.2000 | 0.0741 | 0.0822 | -0.0081 | 0.0016 | -4.97 |
| 200 | 0.1414 | 0.0633 | 0.0679 | -0.0047 | 0.0015 | -3.04 |
| 500 | 0.0894 | 0.0583 | 0.0576 | +0.0006 | 0.0015 | +0.43 |
| 1000 | 0.0632 | 0.0561 | 0.0565 | -0.0004 | 0.0015 | -0.23 |
| 5000 | 0.0283 | 0.0529 | 0.0505 | +0.0023 | 0.0015 | +1.58 |
Paired SE = sqrt((p10 + p01 - (p10 - p01)^2) / 20000), where p10 is the share of samples rejected by SW only and p01 the share rejected by S2 only.
| sqrt(beta1) | 0.2000 | 0.1414 | 0.0894 | 0.0632 | 0.0283 |
|---|---|---|---|---|---|
| SW minus S2 | -0.0081 | -0.0047 | +0.0006 | -0.0004 | +0.0023 |
| beyond 2 paired SE? | yes, S2 ahead | yes, S2 ahead | no | no | no |
Reading: cycle 95 had SW ahead by +0.014 at gamma(50) (sqrt(beta1)=0.28). At gamma(100) and gamma(200) the sign flips and the directed skewness test is ahead of the omnibus test by about 5 and 3 paired SE. From gamma(500) down to gamma(5000) both tests sit within two paired SE of each other and within about one percentage point of the 5% null level, so neither has usable power there.
Caveat: the sign flip depends on S2 being the skewness-only statistic defined above. If an earlier cycle's "plain S2" meant a combined skew-plus-kurtosis statistic, the gamma(100) and gamma(200) rows should be rerun under that definition before the crossover is trusted.
Largest shape at which the SW minus S2 margin exceeds two paired SE in this sweep: none at or above gamma(100) (gamma(100): sqrt(beta1)=0.2000, margin -0.0081, paired SE 0.0016, which is S2 ahead, not SW); the margin reaches zero at a finite shape, crossing from +0.014 at gamma(50) in cycle 95 to -0.0081 at gamma(100) here, and does not stay positive down to gamma(5000).
This reruns the sweep in cycle96-sw-vs-s2-gamma100-5000-seed20261021.md with a fresh seed. It checks whether the sign flip found there, where S2 beats SW at mild skew, holds up.
Seed: 20261022. n: 50. Paired draws per shape: 20000. Null calibration: 60000 N(0,1) draws. Exact-size 5% critical values at n=50: Shapiro-Wilk rejects when W < 0.95401. Plain S2 (squared sample skewness b1, skewness-only) rejects when b1 > 0.41603.
Method: pure Python, with Royston (1992) AS R94 SW coefficients. Each replicate draws one gamma(shape) sample of 50 and scores it with both tests. The paired SE is sd(I_SW - I_S2)/sqrt(20000).
| test | rejection rate | binomial SE |
|---|---|---|
| SW | 0.0485 | 0.0015 |
| S2 | 0.0495 | 0.0015 |
Both tests are within one SE of 0.05. The paired difference is -0.0010 (paired SE 0.0015).
| shape | sqrt(beta1) | SW | S2 | SW - S2 | paired SE | z |
|---|---|---|---|---|---|---|
| 100 | 0.2000 | 0.0747 | 0.0843 | -0.0096 | 0.0016 | -5.85 |
| 200 | 0.1414 | 0.0626 | 0.0683 | -0.0056 | 0.0016 | -3.53 |
| 500 | 0.0894 | 0.0576 | 0.0600 | -0.0023 | 0.0015 | -1.59 |
| 1000 | 0.0632 | 0.0498 | 0.0536 | -0.0038 | 0.0014 | -2.64 |
| 5000 | 0.0283 | 0.0490 | 0.0510 | -0.0020 | 0.0015 | -1.34 |
The sign flip replicates. With this seed S2 beats SW by 5.9 paired SE at gamma(100) and by 3.5 at gamma(200). The original seed gave about 5 and 3. All five margins are negative, so SW is ahead at no shape.
The gamma(1000) row is the one new detail. There S2 is ahead by 2.6 paired SE, while gamma(500) and gamma(5000) stay within two SE. One row past two SE out of three near-null rows is consistent with noise, because the true power of both tests is close to 5% at that shape.
Closing line (rule 2): no shape from gamma(100) to gamma(5000) has SW ahead by more than two paired SE. The largest shape where SW leads beyond two SE is still gamma(50) from cycle 95 (sqrt(beta1)=0.28, +0.014, about 8 paired SE). The margin reaches zero at a finite shape between gamma(50) and gamma(100), then turns negative.
Third run of the cycle 96 sweep, after cycle96-sw-vs-s2-gamma100-5000-seed20261021.md and cycle96-sw-vs-s2-replication-seed20261022.md. The question is whether the S2 lead at gamma(100) and gamma(200) survives a third seed, and whether any of the near-null rows (500, 1000, 5000) is more than noise.
Seed: 20261023 (paired sweep), 20261024 (null calibration stream), 20261025 (separate N(0,1) size check). n: 50. Paired draws per shape: 20000. Null calibration: 60000 N(0,1) draws. Exact-size 5% critical values at n=50: Shapiro-Wilk rejects when W < 0.95415. Plain S2 (squared sample skewness b1 = m3^2 / m2^3, skewness only) rejects when b1 > 0.41682.
Method: pure Python, Royston (1992) AS R94 coefficients for the SW weights, random.gammavariate for the draws. Each replicate draws one gamma(shape) sample of 50 and scores it with both tests. The paired SE is sd(I_SW - I_S2)/sqrt(20000). Total run time about 6 seconds.
| test | rejection rate | binomial SE |
|---|---|---|
| SW | 0.0523 | 0.0015 |
| S2 | 0.0518 | 0.0015 |
Both tests sit within 1.6 SE of 0.05. The paired difference is +0.0005 (paired SE 0.0015).
| shape | sqrt(beta1) | SW | S2 | SW - S2 | paired SE | z |
|---|---|---|---|---|---|---|
| 100 | 0.2000 | 0.0770 | 0.0837 | -0.0066 | 0.0016 | -4.05 |
| 200 | 0.1414 | 0.0653 | 0.0664 | -0.0010 | 0.0015 | -0.68 |
| 500 | 0.0894 | 0.0538 | 0.0555 | -0.0017 | 0.0015 | -1.14 |
| 1000 | 0.0632 | 0.0534 | 0.0521 | +0.0013 | 0.0015 | +0.89 |
| 5000 | 0.0283 | 0.0479 | 0.0491 | -0.0013 | 0.0014 | -0.88 |
| shape | z (20261021) | z (20261022) | z (20261023) |
|---|---|---|---|
| 100 | about -5 | -5.85 | -4.05 |
| 200 | about -3 | -3.53 | -0.68 |
| 500 | within 2 | -1.59 | -1.14 |
| 1000 | within 2 | -2.64 | +0.89 |
| 5000 | within 2 | -1.34 | -0.88 |
The gamma(100) row is the only one that is stable: S2 beats SW by 4 to 6 paired SE on every seed, with a margin of about -0.007 to -0.010. The gamma(200) lead for S2 is weaker here (-0.68 SE) than on the first two seeds, so the true margin at gamma(200) is small, likely between -0.001 and -0.005, and this seed happens to land near zero.
The gamma(1000) row from seed 20261022 (S2 ahead by 2.6 SE) does not replicate: this seed gives SW ahead by 0.9 SE. That confirms the earlier reading that it was noise. From gamma(500) down, both tests reject at roughly 5% and no seed separates them beyond two SE in a consistent direction.
Closing line (rule 2): no shape from gamma(100) to gamma(5000) has SW ahead by more than two paired SE on this seed. The largest shape where SW leads beyond two paired SE remains gamma(50) from cycle 95 (sqrt(beta1)=0.28, margin +0.014, paired SE about 0.0018, about 8 paired SE). The margin reaches zero at a finite shape between gamma(50) and gamma(100), turns negative at gamma(100) on all three seeds, and is indistinguishable from zero from gamma(500) down to gamma(5000).