The stuff this cycle made, archived 2026-10-21 and rendered from
git show rev65-attempt68-iterations11ofx:stuff/….
cycle104-sw-s2-union-exact-size-n400.mdcycle104-sw-s2-union-second-seed-n400.mdcycle104-sw-s2-union-third-seed-n400.mdAuthor: member-2
Seed: 1040217. This seed is new, not reused from cycles 100 to 103 (those used 10xxxxx values ending in 0217, 0321, 0401 under cycle prefixes 100 to 103; 1040217 is a cycle 104 prefix). All draws come from one numpy.random.default_rng(1040217) stream. Plain S2 is the D'Agostino-Pearson K² omnibus statistic (scipy.stats.normaltest): squared skewness z plus squared kurtosis z, as in cycles 101 to 103.
Exact-size 5% critical values at n=400 from 20000 N(0,1) calibration draws (the same calibration set for all three tests):
Per-component level for the union: each component is run at alpha_c = 0.035752, found by bisection on the calibration set so that the union rejects exactly 1000 of 20000 calibration draws (rate 0.0500). The two components use the same alpha_c, so neither is favoured; under the null they overlap enough that 2 × 0.0358 = 0.0715 collapses to 0.0500 for the union.
Separate 20000-draw N(0,1) rejection rate (fresh draws, not the calibration set), binomial SE 0.0015 each:
All three sizes are within about two binomial SE of 0.05, so the paired comparison is not tilted by size. Under the null the single tests at 5% overlapped on 576 draws, with 405 SW-only and 363 S2-only.
Skew-normal-scaled Student t is X = Y / sqrt(V), with Y = delta·|Z0| + sqrt(1 − delta²)·Z1 (Azzalini skew-normal) and V = chi²_df / df, with delta 0.601 for df 10 at sqrt(beta1) near 0.3, the value solved in cycle 103. Lognormal is exp(sigma·Z). t df 5 is rng.standard_t(5).
Each alternative uses the same 20000 paired draws for all three tests. Paired SE is sd(1[A rej] − 1[B rej]) / sqrt(20000). SW-only, S2-only and both-reject counts are at the single-test 5% critical values.
| Alternative | SW | S2 | Union | U−SW | SE | z | U−S2 | SE | z | SW-only | S2-only | both |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| lognormal sigma 0.1 | 0.5702 | 0.5444 | 0.5584 | −0.0118 | 0.0017 | −7.1 | +0.0140 | 0.0018 | +7.9 | 1306 | 789 | 10098 |
| lognormal sigma 0.2 | 0.9919 | 0.9882 | 0.9905 | −0.0014 | 0.0004 | −4.1 | +0.0022 | 0.0005 | +4.8 | 94 | 21 | 19744 |
| skew-t df 10, sqrt(b1)=0.3 (delta 0.601) | 0.7325 | 0.7607 | 0.7544 | +0.0220 | 0.0015 | +14.7 | −0.0063 | 0.0014 | −4.6 | 479 | 1043 | 14171 |
| t df 5 | 0.9734 | 0.9733 | 0.9748 | +0.0014 | 0.0006 | +2.3 | +0.0014 | 0.0007 | +2.1 | 147 | 145 | 19321 |
Reading the table. Where cycle 103 found a clear single-test winner, the union lands between the two: on lognormal sigma 0.1 it gives up 0.012 against SW while gaining 0.014 over S2, and on skew-t df 10 it gives up 0.006 against S2 while gaining 0.022 over SW. The cost of the union is the tighter per-component level (0.0358 instead of 0.05), which loses more draws from the stronger test than the weaker test's extra rejections add back. The single-test SW and S2 powers reproduce cycle 103's third seed to within 1 to 2 combined SE (SW 0.5702 vs 0.5712, S2 0.7607 vs 0.7647).
The one place the union wins is t df 5, where the two single tests are tied (0.9734 vs 0.9733) and their discordant rejections are balanced (147 SW-only vs 145 S2-only). There the union picks up 0.0014 over each, at 2.3 and 2.1 paired SE. That gain is a seventh of a percentage point near the power ceiling and only just clears the bar, so a second seed should check it before it is treated as more than a tie-breaker.
Union beats both SW and S2 beyond two paired SE: t df 5 (U−SW +2.3 SE, U−S2 +2.1 SE). On lognormal sigma 0.1 and 0.2 the union is below SW and above S2; on skew-t df 10 at sqrt(b1)=0.3 the union is below S2 and above SW, so it beats neither pair there.
Author: member-3
Seed: 1040333. This seed is new, not reused from cycles 100 to 103 (those used 10xxxxx values ending in 0217, 0321, 0401 under cycle prefixes 100 to 103), and is distinct from member-2's cycle 104 seed 1040217. All draws come from one numpy.random.default_rng(1040333) stream, consumed in the order: calibration null, fresh null, lognormal 0.1, lognormal 0.2, skew-t, t df 5. Plain S2 is the D'Agostino-Pearson K² omnibus statistic (scipy.stats.normaltest), as in cycles 101 to 103 and member-2's item. Shapiro-Wilk is scipy.stats.shapiro.
Exact-size 5% critical values at n=400 from 20000 N(0,1) calibration draws (one calibration set for all three tests):
Per-component level for the union: each component is run at alpha_c = 0.035852, found by bisection on the calibration set so that the union rejects exactly 1000 of 20000 calibration draws (rate 0.0500). Both components use the same alpha_c. This reproduces member-2's alpha_c = 0.035752 to the third decimal, so the null overlap between SW and S2 at n=400 is stable across seeds.
Separate 20000-draw N(0,1) rejection rate (fresh draws, not the calibration set), binomial SE 0.0015 each:
All three are within two binomial SE of 0.05. Under the null the single tests at 5% overlapped on 614 draws, with 370 SW-only and 340 S2-only.
Alternatives are generated exactly as in member-2's item: lognormal is exp(sigma·Z); skew-normal-scaled Student t is X = Y / sqrt(V) with Y = delta·|Z0| + sqrt(1 − delta²)·Z1, delta 0.601, V = chi²_10 / 10; t df 5 is rng.standard_t(5). Each alternative uses the same 20000 paired draws for all three tests. Paired SE is sd(1[A rej] − 1[B rej]) / sqrt(20000). SW-only, S2-only and both-reject counts are at the single-test 5% critical values.
| Alternative | SW | S2 | Union | U−SW | SE | z | U−S2 | SE | z | SW-only | S2-only | both |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| lognormal sigma 0.1 | 0.5746 | 0.5444 | 0.5581 | −0.0165 | 0.0017 | −9.8 | +0.0137 | 0.0018 | +7.6 | 1342 | 737 | 10150 |
| lognormal sigma 0.2 | 0.9917 | 0.9865 | 0.9891 | −0.0026 | 0.0004 | −6.4 | +0.0027 | 0.0006 | +4.9 | 125 | 20 | 19709 |
| skew-t df 10, sqrt(b1)=0.3 (delta 0.601) | 0.7324 | 0.7613 | 0.7517 | +0.0193 | 0.0015 | +12.7 | −0.0096 | 0.0014 | −6.8 | 481 | 1059 | 14167 |
| t df 5 | 0.9725 | 0.9720 | 0.9733 | +0.0008 | 0.0006 | +1.4 | +0.0013 | 0.0006 | +1.9 | 136 | 127 | 19314 |
Reading the table. The second seed reproduces member-2's pattern on the three alternatives with a clear single-test winner: the union sits between SW and S2 every time, losing to the stronger test by more than it gains over the weaker one in z units on lognormal, and the other way round on skew-t. The single-test powers agree with member-2's seed to within about two combined SE (SW on lognormal 0.1: 0.5746 vs 0.5702; S2 on skew-t: 0.7613 vs 0.7607; t df 5: 0.9725/0.9720 vs 0.9734/0.9733).
The t df 5 result that member-2 flagged as marginal does not replicate. Here the union gains +0.0008 over SW at 1.4 paired SE and +0.0013 over S2 at 1.9 paired SE, both inside two SE. The discordant counts are again balanced (136 SW-only vs 127 S2-only), which is why the union is at best a tie-breaker there: with the two tests nearly tied and almost all rejections shared (19314 of 20000), the tighter per-component level removes roughly as many rejections as the second component adds. Pooling the two seeds, the t df 5 gain over SW is +0.0011 at about 2.6 pooled SE and over S2 +0.0014 at about 3.1 pooled SE, so a small effect of order one tenth of a percentage point near the power ceiling is plausible, but no single seed clears the rule 2 bar on both comparisons.
Union beats both SW and S2 beyond two paired SE: none. On lognormal sigma 0.1 and 0.2 the union is below SW and above S2; on skew-t df 10 at sqrt(b1)=0.3 the union is below S2 and above SW; on t df 5 the union is above both but at only 1.4 and 1.9 paired SE.
Author: member-1
Seed: 1040555. This seed is new, not reused from cycles 100 to 103 (those used 10xxxxx values ending in 0217, 0321, 0401 under cycle prefixes 100 to 103), and is distinct from the cycle 104 seeds 1040217 (member-2) and 1040333 (member-3). All draws come from one numpy.random.default_rng(1040555) stream, consumed in the order: calibration null, fresh null, lognormal 0.1, lognormal 0.2, skew-t, t df 5. Run with numpy 1.26.4 and scipy 1.12.0. Plain S2 is the D'Agostino-Pearson K² omnibus statistic (scipy.stats.normaltest), as in cycles 101 to 103 and the two earlier cycle 104 items. Shapiro-Wilk is scipy.stats.shapiro.
Exact-size 5% critical values at n=400 from 20000 N(0,1) calibration draws (one calibration set for all three tests):
Per-component level for the union: each component is run at alpha_c = 0.035852, found by bisection on the calibration set so that the union rejects exactly 1000 of 20000 calibration draws (rate 0.0500). Both components use the same alpha_c. This matches member-3's 0.035852 to six decimals and member-2's 0.035752 to the third decimal, so the null overlap of SW and S2 at n=400 is stable across all three seeds.
Separate 20000-draw N(0,1) rejection rate (fresh draws, not the calibration set), binomial SE 0.0015 each:
All three are within two binomial SE of 0.05. Under the null the single tests at 5% overlapped on 654 draws, with 373 SW-only and 399 S2-only.
Alternatives are generated exactly as in the two earlier items: lognormal is exp(sigma·Z); skew-normal-scaled Student t is X = Y / sqrt(V) with Y = delta·|Z0| + sqrt(1 − delta²)·Z1, delta 0.601, V = chi²_10 / 10; t df 5 is rng.standard_t(5). Each alternative uses the same 20000 paired draws for all three tests. Paired SE is sd(1[A rej] − 1[B rej]) / sqrt(20000). SW-only, S2-only and both-reject counts are at the single-test 5% critical values.
| Alternative | SW | S2 | Union | U−SW | SE | z | U−S2 | SE | z | SW-only | S2-only | both |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| lognormal sigma 0.1 | 0.5756 | 0.5520 | 0.5618 | −0.0138 | 0.0016 | −8.7 | +0.0099 | 0.0018 | +5.4 | 1256 | 783 | 10256 |
| lognormal sigma 0.2 | 0.9914 | 0.9876 | 0.9897 | −0.0018 | 0.0004 | −4.5 | +0.0021 | 0.0005 | +4.1 | 102 | 26 | 19726 |
| skew-t df 10, sqrt(b1)=0.3 (delta 0.601) | 0.7372 | 0.7675 | 0.7587 | +0.0215 | 0.0015 | +14.2 | −0.0088 | 0.0014 | −6.2 | 482 | 1087 | 14263 |
| t df 5 | 0.9725 | 0.9741 | 0.9741 | +0.0017 | 0.0006 | +3.0 | +0.0000 | 0.0006 | +0.0 | 102 | 136 | 19347 |
Reading the table. The third seed reproduces the pattern of both earlier items on the three alternatives with a clear single-test winner: the union lands between SW and S2 each time. On lognormal sigma 0.1 and 0.2 it is below SW and above S2 beyond four paired SE on every comparison; on skew-t df 10 it is below S2 at 6.2 paired SE and above SW at 14.2. The single-test powers agree with the earlier seeds to within about two combined SE (SW on lognormal 0.1: 0.5756 vs 0.5746 and 0.5702; S2 on skew-t: 0.7675 vs 0.7613 and 0.7607).
On t df 5 the union again fails to beat both tests. This seed happens to have S2 ahead of SW by 0.0016, and the union exactly ties S2 (both 0.9741, zero discordant net) while beating SW at 3.0 paired SE. The three seeds now show the union gaining over SW by +0.0014, +0.0008 and +0.0017 and over S2 by +0.0014, +0.0013 and +0.0000. Pooling the three with paired SE near 0.0006 each gives roughly +0.0013 at about 3.7 pooled SE over SW and +0.0009 at about 2.6 pooled SE over S2. So a real gain of order one tenth of a percentage point near the power ceiling is likely, but it is below the resolution of a single 20000-draw seed, and in no single seed does the union clear two paired SE against both tests at once.
Union beats both SW and S2 beyond two paired SE: none. On lognormal sigma 0.1 and 0.2 the union is below SW and above S2; on skew-t df 10 at sqrt(b1)=0.3 the union is below S2 and above SW; on t df 5 the union is above SW at 3.0 paired SE but ties S2 at 0.0 paired SE.