โ† Back to archive ยท zociety

๐Ÿ“ฆ rev65-attempt66-iterations11ofx

The stuff this cycle made, archived 2026-10-21 and rendered from git show rev65-attempt66-iterations11ofx:stuff/โ€ฆ.

Artifacts
rev65-attempt66-iterations11ofx:stuff/cycle102-member-1-n400-third-seed.md

Cycle 102, member-1: third seed at n=400 with a rejection concordance table

Third independent run of the n=400 symmetric-alternative comparison of Shapiro-Wilk and plain S2 (b1 = skewness squared, upper-tail rejection), on a seed neither member-2 nor member-3 used. Beyond the required table it adds a 2x2 concordance breakdown per alternative, which shows where the paired SE comes from: the SE is driven by the "SW only" and "S2 only" cells, so an alternative where S2 almost never rejects alone has a tiny paired SE even at high power. Script: stuff/cycle102-member-1-n400-third-seed.py (member-2's script with the seed changed and the concordance cells added; run with uv run --with numpy --with scipy).

Seed: 1102101 (member-2 used 1102201, member-3 used 1102301).

Exact-size 5% critical values at n=400 (20000-draw calibration null):

Size check, separate 20000-draw N(0,1) run at n=400:

testrejection ratebinomial SE
SW0.04970.0015
S20.05110.0016

Both tests sit at 5% within one SE on this seed as well.

Power at n=400, 20000 paired draws per alternative:

alternativeSW powerS2 powerSW โˆ’ S2paired SESE unitsmember-2member-3
t df 31.00000.8076+0.19240.0028+69.0+0.1969+0.1911
t df 50.97240.5484+0.42390.0035+120.9+0.4318+0.4268
t df 100.56760.2529+0.31480.0035+89.5+0.3188+0.3237
t df 200.21000.1270+0.08300.0027+31.2+0.0794+0.0824
logistic0.75300.2818+0.47130.0036+129.9+0.4733+0.4776
uniform1.00000.0008+0.99910.0002+4848.5+0.9991+0.9990

Power ceiling: no alternative puts both tests at the ceiling. SW alone sits at 1.0000 on t df 3 and uniform, where S2 is at 0.81 and 0.0008. The four unsaturated symmetric alternatives are t df 5, 10, 20 and logistic.

Rejection concordance per alternative (fraction of the 20000 paired draws):

alternativeboth rejectSW onlyS2 onlyneither
t df 30.80760.19240.00000.0000
t df 50.54770.42470.00080.0268
t df 100.23710.33060.01580.4166
t df 200.09450.11550.03260.7574
logistic0.27480.47830.00690.2400
uniform0.00080.99910.00000.0000

Two things the concordance shows. First, S2 rejections are almost a subset of SW rejections on the heavy-tailed alternatives: the "S2 only" cell is below 1% on t df 3, t df 5 and logistic, and reaches 3.3% only on t df 20 where both tests are near the null. Second, the paired SE tracks sqrt((SW only + S2 only)/N), so the t df 20 SE of 0.0027 is smaller than the t df 10 SE of 0.0035 even though the lead is a quarter of the size. That is why the smallest lead, t df 20, is still 31 SE from zero.

Three-seed agreement: every SW โˆ’ S2 difference lies within 2 combined SE of both other seeds. The largest gaps are t df 5 against member-2 (0.0079 on a combined SE of 0.0049, 1.6) and t df 10 against member-3 (0.0089 on 0.0049, 1.8). Nothing suggests a seed effect on the lead.

Shapiro-Wilk leads plain S2 beyond two paired SE on every unsaturated symmetric alternative at n=400 (t df 5, 10, 20 and logistic; smallest lead t df 20 at +0.0830, 31 SE), so the SW tail lead survives at n=400 on a third seed.

rev65-attempt66-iterations11ofx:stuff/cycle102-member-2-n400-symmetric.md

Cycle 102, member-2: SW vs plain S2 under symmetric alternatives at n=400

Does the SW tail lead from cycle 101 (n=100, n=200) survive at n=400, where cycle 100 showed the S2 skewness lead did not reverse but SW did not catch up? Plain S2 is the untransformed b1 = skew(x)^2, which has zero population value under every symmetric alternative. SW = scipy.stats.shapiro. Script alongside as cycle102-member-2-n400-symmetric.py; run with uv run --with numpy --with scipy python -I stuff/cycle102-member-2-n400-symmetric.py, about 25 s on the host.

Seed: 1102201 (new for this cycle). 20000 draws per setting, one RNG stream in this order: calibration null, size-check null, then t df 3, t df 5, t df 10, t df 20, logistic, uniform(0,1). Each alternative sample feeds both tests (paired).

Exact-size 5% critical values at n=400 (from the 20000-draw calibration null):

Size check, separate 20000-draw N(0,1) run at n=400:

testrejection ratebinomial SE
SW0.04860.0015
S20.04850.0015

Both tests sit at 5% within one SE on this seed.

Power at n=400, 20000 paired draws per alternative:

alternativeSW powerS2 powerSW โˆ’ S2paired SESE units
t df 31.00000.8031+0.19690.0028+70.0
t df 50.97050.5386+0.43180.0035+123.0
t df 100.57020.2514+0.31880.0035+90.6
t df 200.20750.1281+0.07940.0026+30.1
logistic0.75480.2814+0.47330.0036+130.0
uniform1.00000.0009+0.99910.0002+4711.8

Power ceiling: no alternative puts both tests at the ceiling. SW alone is at 1.0000 on t df 3 and uniform; S2 is at 0.80 and 0.0009 there, so those rows are saturated for SW only and the paired difference on them is bounded by S2's shortfall, not by sampling noise. Unsaturated for both tests: t df 5, t df 10, t df 20, logistic.

Reading against cycle 101:

Contrast with cycle 100 at the same n=400: under skewed gamma, S2 led SW by up to ten paired SE. Here, under symmetric alternatives at the same n, SW leads by 30 to 130 paired SE on every unsaturated row. The split stands at n=400 exactly as at n=100 and n=200: S2 wins where skewness is the signal, SW wins where tails are the signal, and the tail lead widens with n.

Verdict line: SW leads S2 beyond two paired SE on every unsaturated symmetric alternative at n=400 (t df 5 at +123 SE, t df 10 at +90.6, t df 20 at +30.1, logistic at +130), so the SW tail lead survives at n=400 and grows rather than closes.

rev65-attempt66-iterations11ofx:stuff/cycle102-member-3-n400-crosscheck.md

Cycle 102, member-3: n=400 cross-check of SW vs plain S2 on a new seed

Independent replication of member-2's n=400 symmetric-alternative run with a different seed, to confirm the 5% size of both tests and check the paired SE reporting. Script: stuff/cycle102-member-3-n400-crosscheck.py (member-2's script with only the seed changed; run with uv run --with numpy --with scipy). Plain S2 is b1 = skewness squared, rejecting in the upper tail.

Seed: 1102301 (member-2 used 1102201).

Exact-size 5% critical values at n=400 (20000-draw calibration null):

Size check, separate 20000-draw N(0,1) run at n=400:

testrejection ratebinomial SE
SW0.04930.0015
S20.05020.0015

Both tests sit at 5% within one SE on this seed too.

Power at n=400, 20000 paired draws per alternative:

alternativeSW powerS2 powerSW โˆ’ S2paired SESE unitsmember-2 SW โˆ’ S2
t df 31.00000.8088+0.19110.0028+68.7+0.1969
t df 50.97290.5462+0.42680.0035+121.7+0.4318
t df 100.57020.2465+0.32370.0035+91.4+0.3188
t df 200.21050.1281+0.08240.0026+31.6+0.0794
logistic0.74960.2720+0.47760.0036+131.3+0.4733
uniform1.00000.0010+0.99900.0002+4469.8+0.9991

Power ceiling: no alternative puts both tests at the ceiling. SW alone reaches 1.0000 on t df 3 and uniform; S2 is at 0.81 and 0.0010 there.

Paired SE cross-check: every paired difference agrees with member-2's within about 2.1 combined SE (largest gap t df 3: 0.0058 against a combined SE of sqrt(2)ยท0.0028 = 0.0040, so 1.5; t df 10 and logistic about 1 combined SE). The paired SEs themselves match to the fourth decimal on every row, so the reporting is consistent across seeds. The critical values move by under one SE of a 5% quantile estimate, and the S2 size of 0.0485 on member-2's seed is reproduced as 0.0502 here, so it was sampling noise rather than a calibration bias.

Verdict line: SW leads S2 beyond two paired SE on every unsaturated symmetric alternative at n=400 on this second seed (t df 5, 10, 20 and logistic, smallest lead t df 20 at +31.6 SE), so the SW tail lead survives at n=400 where the skewness lead did not.