The stuff this cycle made, archived 2026-10-21 and rendered from
git show rev65-attempt65-iterations11ofx:stuff/โฆ.
cycle101-member-1-symmetric-third-seed.mdcycle101-member-2-symmetric-scan.mdcycle101-member-3-symmetric-rerun.md
Third independent seed for the symmetric-alternative comparison of Shapiro-Wilk against plain S2, following member-2's scan (seed 1101201) and member-3's rerun (seed 1101303). Same script and draw order as member-3, only the seed changed. Run with uv run --with numpy --with scipy python -I stuff/cycle101-member-1-symmetric-third-seed.py, about 42 s on the host. SW = scipy.stats.shapiro; plain S2 = untransformed b1 = skew(x)^2.
Seed: 1101107 (new, distinct from 1101201 and 1101303). 20000 draws per setting, one RNG stream in this order for each n in (100, 200): calibration null, size-check null, then t df 3, t df 5, t df 10, t df 20, logistic, uniform(0,1).
Exact-size 5% critical values (from 20000 N(0,1) draws):
Across the three seeds the SW cutoff spans 0.974590 to 0.974800 at n=100 and 0.986254 to 0.986327 at n=200; the S2 cutoff spans 0.2187 to 0.2217 and 0.1108 to 0.1133. All within quantile sampling error of a 5% tail from 20000 draws.
Size check, separate 20000-draw N(0,1) runs:
| n | SW rejection | binomial SE | S2 rejection | binomial SE |
|---|---|---|---|---|
| 100 | 0.0500 | 0.0015 | 0.0473 | 0.0015 |
| 200 | 0.0478 | 0.0015 | 0.0476 | 0.0015 |
Both tests sit at 5% within 2 SE at both n. Pooling the three seeds (60000 draws each), no test at either n departs from 0.05 by more than about 1.5 pooled SE, so the n=200 drift member-2 saw was seed noise.
Power, 20000 paired draws per alternative (same sample feeds both tests):
| n | alternative | SW power | S2 power | SW โ S2 | paired SE | SE units |
|---|---|---|---|---|---|---|
| 100 | t df 3 | 0.8763 | 0.6361 | +0.2402 | 0.0031 | +76.4 |
| 100 | t df 5 | 0.5707 | 0.4052 | +0.1655 | 0.0031 | +53.7 |
| 100 | t df 10 | 0.2299 | 0.1897 | +0.0403 | 0.0024 | +17.0 |
| 100 | t df 20 | 0.1076 | 0.1029 | +0.0046 | 0.0018 | +2.5 |
| 100 | logistic | 0.3090 | 0.2214 | +0.0877 | 0.0027 | +31.9 |
| 100 | uniform | 0.9970 | 0.0010 | +0.9960 | 0.0004 | +2217.7 |
| 200 | t df 3 | 0.9885 | 0.7366 | +0.2519 | 0.0031 | +81.9 |
| 200 | t df 5 | 0.8111 | 0.4761 | +0.3350 | 0.0035 | +96.1 |
| 200 | t df 10 | 0.3550 | 0.2193 | +0.1356 | 0.0030 | +45.7 |
| 200 | t df 20 | 0.1411 | 0.1111 | +0.0300 | 0.0021 | +14.0 |
| 200 | logistic | 0.4891 | 0.2551 | +0.2339 | 0.0034 | +69.5 |
| 200 | uniform | 1.0000 | 0.0014 | +0.9987 | 0.0003 | +3846.3 |
Alternatives where SW leads beyond two paired SE: t df 3, t df 5, t df 10, logistic and uniform at both n; t df 20 at n=200 (+14 SE) and, on this seed, also at n=100 (+2.5 SE). Every symmetric alternative in the scan now flags on at least one n.
Cross-seed consistency. The t df 20 cell at n=100 is the only one whose flag status moves across seeds: member-2 and member-3 saw +0.5 to +1 SE there, this seed sees +2.5 SE. The three estimates of that difference agree with each other within 2 binomial SE, so it is a marginal cell whose true lead is roughly one SE unit, not a sign change. Every other cell keeps the same sign and the same flag under all three seeds, and every power estimate moves by no more than about 2 binomial SE between seeds. The SW lead grows with n for every tail-heavy alternative (df 3 to df 20 and logistic), which is the opposite of the n=400 gamma picture from cycle 100 where S2 catches up and overtakes.
Why this answers the question. Plain S2 is the squared sample skewness. Under every alternative here the population skewness is exactly zero, so S2 has nothing to detect and its power stays near the 5% size except where a heavy tail inflates the sample third moment by chance (t df 3, df 5). Shapiro-Wilk responds to the tail shape directly and rejects at high rates on the same samples. A lead that appears only under zero-skewness alternatives and vanishes under skewed gamma at n=400 cannot be a skewness effect.
Verdict line: at least one symmetric alternative shows SW ahead beyond two paired SE at both n=100 and n=200 (five of six at n=100, six of six at n=200), so the SW lead over plain S2 at n=100 and n=200 is a tail effect, not a skewness effect.
Direct test of whether the SW lead seen at n=100 and n=200 in earlier cycles is a skewness effect or a tail effect. Plain S2 is the untransformed b1 = skew(x)^2, which has zero population value under every symmetric alternative, so any power S2 shows here is sampling noise plus the finite-sample inflation of b1 under heavy tails. Script is alongside as cycle101-member-2-symmetric-scan.py; run with uv run --with numpy --with scipy python -I stuff/cycle101-member-2-symmetric-scan.py, about 30 s on the host. SW = scipy.stats.shapiro.
Seed: 1101201 (new for this cycle). 20000 draws per setting, one RNG stream in this order for each n in (100, 200): calibration null, size-check null, then t df 3, t df 5, t df 10, t df 20, logistic, uniform(0,1).
Exact-size 5% critical values (from 20000 N(0,1) draws):
Size check, separate 20000-draw N(0,1) runs:
| n | SW rejection | binomial SE | S2 rejection | binomial SE |
|---|---|---|---|---|
| 100 | 0.0503 | 0.0015 | 0.0504 | 0.0015 |
| 200 | 0.0532 | 0.0016 | 0.0544 | 0.0016 |
Both tests sit at 5% at n=100. At n=200 both run about 2 to 3 SE high on this seed, which is within what cycle 100 saw across seeds (0.0470 to 0.0520) and is the same for both tests, so it does not tilt the paired comparison.
Power, 20000 paired draws per alternative (same sample feeds both tests):
| n | alternative | SW power | S2 power | SW โ S2 | paired SE | SE units |
|---|---|---|---|---|---|---|
| 100 | t df 3 | 0.8743 | 0.6405 | +0.2338 | 0.0031 | +74.8 |
| 100 | t df 5 | 0.5687 | 0.4075 | +0.1613 | 0.0031 | +52.3 |
| 100 | t df 10 | 0.2276 | 0.1888 | +0.0388 | 0.0024 | +16.1 |
| 100 | t df 20 | 0.1091 | 0.1090 | +0.0002 | 0.0019 | +0.1 |
| 100 | logistic | 0.3005 | 0.2261 | +0.0744 | 0.0027 | +27.3 |
| 100 | uniform | 0.9971 | 0.0013 | +0.9958 | 0.0005 | +2177 |
| 200 | t df 3 | 0.9892 | 0.7312 | +0.2580 | 0.0031 | +83.2 |
| 200 | t df 5 | 0.8138 | 0.4837 | +0.3301 | 0.0034 | +96.0 |
| 200 | t df 10 | 0.3553 | 0.2260 | +0.1293 | 0.0030 | +43.3 |
| 200 | t df 20 | 0.1444 | 0.1153 | +0.0291 | 0.0022 | +13.3 |
| 200 | logistic | 0.4931 | 0.2631 | +0.2301 | 0.0034 | +68.4 |
| 200 | uniform | 1.0000 | 0.0014 | +0.9986 | 0.0003 | +3711 |
Alternatives where SW leads beyond two paired SE: t df 3, t df 5, t df 10, logistic and uniform at both n; t df 20 at n=200 only. The single non-flag is t df 20 at n=100, where both tests are near the null rate and the difference is +0.1 SE.
Two readings worth separating:
Compared with cycle 100: under skewed gamma alternatives at n=400, S2 led SW by up to ten paired SE. Under symmetric alternatives at n=100 and n=200, SW leads S2 by 13 to 96 paired SE on every alternative with any power at all. The two results are consistent: S2 is a skewness statistic, and it wins only when skewness is the signal.
Verdict line: every symmetric alternative except t df 20 at n=100 shows SW ahead beyond two paired SE at both n, so the SW lead over plain S2 at n=100 and n=200 is a tail effect, not a skewness effect.
Replication of member-2's symmetric-alternative comparison with a fresh seed, to check that the size calibration and the paired SE arithmetic hold up and that the n=200 size drift member-2 saw was seed noise rather than a calibration fault. Same script, same draw order, only the seed changed. Run with uv run --with numpy --with scipy python -I stuff/cycle101-member-3-symmetric-rerun.py, about 33 s on the host. SW = scipy.stats.shapiro; plain S2 = untransformed b1 = skew(x)^2.
Seed: 1101303 (new, distinct from member-2's 1101201). 20000 draws per setting, one RNG stream in this order for each n in (100, 200): calibration null, size-check null, then t df 3, t df 5, t df 10, t df 20, logistic, uniform(0,1).
Exact-size 5% critical values (from 20000 N(0,1) draws):
These agree with member-2's cutoffs (0.974590 / 0.220223 at n=100, 0.986327 / 0.112121 at n=200) to within the sampling error of a 5% quantile from 20000 draws.
Size check, separate 20000-draw N(0,1) runs:
| n | SW rejection | binomial SE | S2 rejection | binomial SE |
|---|---|---|---|---|
| 100 | 0.0522 | 0.0016 | 0.0535 | 0.0016 |
| 200 | 0.0464 | 0.0015 | 0.0503 | 0.0015 |
Both tests sit at 5% within about 2 SE at both n. Member-2's seed ran both tests about 3 SE high at n=200; this seed runs SW about 2 SE low and S2 on the nose at the same n. The drift is seed noise on the quantile estimate, not a calibration fault, and it is small next to the paired differences below.
Power, 20000 paired draws per alternative (same sample feeds both tests):
| n | alternative | SW power | S2 power | SW โ S2 | paired SE | SE units |
|---|---|---|---|---|---|---|
| 100 | t df 3 | 0.8756 | 0.6431 | +0.2324 | 0.0031 | +74.8 |
| 100 | t df 5 | 0.5669 | 0.4058 | +0.1611 | 0.0031 | +52.7 |
| 100 | t df 10 | 0.2344 | 0.1935 | +0.0409 | 0.0024 | +16.8 |
| 100 | t df 20 | 0.1106 | 0.1096 | +0.0010 | 0.0019 | +0.5 |
| 100 | logistic | 0.3068 | 0.2245 | +0.0823 | 0.0027 | +30.1 |
| 100 | uniform | 0.9968 | 0.0013 | +0.9956 | 0.0005 | +2115 |
| 200 | t df 3 | 0.9892 | 0.7373 | +0.2520 | 0.0031 | +81.8 |
| 200 | t df 5 | 0.8118 | 0.4852 | +0.3266 | 0.0035 | +94.4 |
| 200 | t df 10 | 0.3525 | 0.2294 | +0.1231 | 0.0030 | +41.7 |
| 200 | t df 20 | 0.1494 | 0.1231 | +0.0262 | 0.0022 | +11.9 |
| 200 | logistic | 0.4893 | 0.2587 | +0.2306 | 0.0034 | +68.6 |
| 200 | uniform | 1.0000 | 0.0014 | +0.9986 | 0.0003 | +3777 |
Paired SE is the standard deviation of the per-draw difference of the two 0/1 reject indicators divided by sqrt(20000), so it already accounts for the correlation between the two tests on the same sample.
Alternatives where SW leads beyond two paired SE: t df 3, t df 5, t df 10, logistic and uniform at both n, and t df 20 at n=200. The only non-flag is t df 20 at n=100, where both tests sit near the null rate. This is the identical flag set member-2 found, and every SE-unit figure here agrees with member-2's to within about one unit.
Cross-seed check: the largest absolute change in any power cell between the two seeds is 0.0063 (t df 10 at n=100, SW), which is about 2 binomial SE. Everything else moves by less. The two runs are consistent with one another at the level the design can resolve.
Verdict: no symmetric alternative shows S2 ahead, and SW leads beyond two paired SE on five of six symmetric alternatives at n=100 and all six at n=200, so the SW lead over plain S2 at n=100 and n=200 is a tail effect, not a skewness effect.