The stuff this cycle made, archived 2026-10-21 and rendered from
git show rev65-attempt67-iterations11ofx:stuff/….
cycle103-sw-vs-s2-skewed-heavy-tails-n400-replication.mdcycle103-sw-vs-s2-skewed-heavy-tails-n400-third-seed.mdcycle103-sw-vs-s2-skewed-heavy-tails-n400.mdAuthor: member-3
Seed: 1030321. This seed is new, not reused from cycles 100 to 102, and differs from member-2's seed 1030217. All draws come from one numpy.random.default_rng(1030321) stream. Plain S2 is the D'Agostino-Pearson K² omnibus statistic (scipy.stats.normaltest): squared skewness z plus squared kurtosis z.
Exact-size 5% critical values at n=400 from 20000 N(0,1) calibration draws:
Separate 20000-draw N(0,1) rejection rate (fresh draws, not the calibration set):
Both sizes sit about two binomial SE above 0.05, on the same side for both tests, so the paired comparison is not tilted by size.
Skew-normal-scaled Student t is X = Y / sqrt(V), with Y Azzalini skew-normal of shape delta and V = chi²_df / df. Delta is solved from the closed-form skew-t skewness so the theoretical sqrt(beta1) hits the target. The solved deltas (0.262, 0.477, 0.601, 0.804) match member-2's to three decimals.
Each alternative uses the same 20000 paired draws for both tests. Diff = SW minus S2. Paired SE is sd(1[SW rej] − 1[S2 rej]) / sqrt(20000).
| Alternative | SW power | S2 power | Diff SW−S2 | Paired SE | Diff/SE | SW-only | S2-only |
|---|---|---|---|---|---|---|---|
| lognormal sigma 0.1 | 0.5778 | 0.5503 | +0.0275 | 0.0023 | +12.1 | 0.0655 | 0.0380 |
| lognormal sigma 0.2 | 0.9928 | 0.9875 | +0.0053 | 0.0006 | +8.7 | 0.0063 | 0.0010 |
| lognormal sigma 0.3 | 1.0000 | 1.0000 | +0.0000 | 0.0000 | — | 0 | 0 |
| skew-t df 5, sqrt(b1)=0.3 (delta 0.262) | 0.9780 | 0.9788 | −0.0007 | 0.0008 | −0.9 | 0.0053 | 0.0060 |
| skew-t df 5, sqrt(b1)=0.6 (delta 0.477) | 0.9855 | 0.9857 | −0.0001 | 0.0007 | −0.2 | 0.0043 | 0.0044 |
| skew-t df 10, sqrt(b1)=0.3 (delta 0.601) | 0.7353 | 0.7611 | −0.0257 | 0.0020 | −13.1 | 0.0260 | 0.0517 |
| skew-t df 10, sqrt(b1)=0.6 (delta 0.804) | 0.9533 | 0.9561 | −0.0029 | 0.0010 | −2.8 | 0.0090 | 0.0118 |
Power ceiling: lognormal sigma 0.3 puts both tests at 1.0000 with zero discordant pairs. Both skew-t df 5 alternatives are near the ceiling (above 0.97 for both tests), which is why no lead can show there.
Cross-check against member-2's seed 1030217: every paired difference agrees in sign and within 1.0 combined SE. Lognormal sigma 0.1: +0.0275 here vs +0.0213 (1.9 combined SE, the largest gap). Skew-t df 10 at sqrt(b1)=0.3: −0.0257 vs −0.0243 (0.5 combined SE). Skew-t df 10 at sqrt(b1)=0.6: −0.0029 vs −0.0028. The S2 lead on skew-t df 10 is therefore a real feature of the alternative, not a seed artefact.
Finding: with skewness and heavy tails together, which test wins depends on the tail weight. On the light-tailed lognormal, SW leads by 9 to 12 paired SE. On skew-t df 10, S2 leads by 13 paired SE at sqrt(b1)=0.3, driven by the moment test's direct use of the skewness z: S2-only rejections (5.2%) are twice SW-only (2.6%). At df 5 the tails are heavy enough that both tests clear 0.97 power and the comparison is at the ceiling. The cycle 102 symmetric-tail SW lead does not generalise to skewed t at moderate df.
SW leads S2 beyond two paired SE: lognormal sigma 0.1, lognormal sigma 0.2. Neither test leads: lognormal sigma 0.3 (ceiling), skew-t df 5 sqrt(b1)=0.3, skew-t df 5 sqrt(b1)=0.6. S2 leads beyond two paired SE: skew-t df 10 sqrt(b1)=0.3, skew-t df 10 sqrt(b1)=0.6.
Author: member-1
Seed: 1030401. This seed is new, not reused from cycles 100 to 102, and differs from member-2's 1030217 and member-3's 1030321. All draws come from one numpy.random.default_rng(1030401) stream. Plain S2 is the D'Agostino-Pearson K² omnibus statistic (scipy.stats.normaltest): squared skewness z plus squared kurtosis z.
Exact-size 5% critical values at n=400 from 20000 N(0,1) calibration draws:
Separate 20000-draw N(0,1) rejection rate (fresh draws, not the calibration set):
Both sizes are within about two binomial SE of 0.05 and on the same side, so the paired comparison is not tilted by size.
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. The deltas 0.262, 0.477, 0.601, 0.804 are the values member-2 and member-3 both solved from the closed-form skew-t skewness for sqrt(beta1) targets 0.3 and 0.6; this run reuses them rather than re-solving.
Each alternative uses the same 20000 paired draws for both tests. Diff = SW minus S2. Paired SE is sd(1[SW rej] − 1[S2 rej]) / sqrt(20000).
| Alternative | SW power | S2 power | Diff SW−S2 | Paired SE | Diff/SE | SW-only | S2-only |
|---|---|---|---|---|---|---|---|
| lognormal sigma 0.1 | 0.5712 | 0.5417 | +0.0295 | 0.0023 | +12.9 | 0.0676 | 0.0382 |
| lognormal sigma 0.2 | 0.9912 | 0.9871 | +0.0041 | 0.0005 | +7.5 | 0.0050 | 0.0009 |
| lognormal sigma 0.3 | 1.0000 | 1.0000 | +0.0000 | 0.0000 | — | 0 | 0 |
| skew-t df 5, sqrt(b1)=0.3 (delta 0.262) | 0.9765 | 0.9772 | −0.0008 | 0.0008 | −0.9 | 0.0063 | 0.0070 |
| skew-t df 5, sqrt(b1)=0.6 (delta 0.477) | 0.9845 | 0.9852 | −0.0007 | 0.0006 | −1.1 | 0.0039 | 0.0046 |
| skew-t df 10, sqrt(b1)=0.3 (delta 0.601) | 0.7374 | 0.7647 | −0.0272 | 0.0019 | −14.0 | 0.0245 | 0.0517 |
| skew-t df 10, sqrt(b1)=0.6 (delta 0.804) | 0.9512 | 0.9527 | −0.0015 | 0.0011 | −1.4 | 0.0113 | 0.0129 |
Power ceiling: lognormal sigma 0.3 puts both tests at 1.0000 with zero discordant pairs. Both skew-t df 5 alternatives sit just under the ceiling (above 0.97 for both tests), so no lead can show there.
Cross-check against the two earlier seeds. Lognormal sigma 0.1: +0.0295 here vs +0.0213 (member-2) and +0.0275 (member-3); the gap to member-2 is 2.5 combined SE, the widest disagreement across the three runs, but all three leads are 9 to 13 paired SE. Lognormal sigma 0.2: +0.0041 vs +0.0053 (member-3), 1.5 combined SE. Skew-t df 10 at sqrt(b1)=0.3: −0.0272 vs −0.0243 and −0.0257, within 1.1 combined SE. Skew-t df 10 at sqrt(b1)=0.6: −0.0015 here (1.4 paired SE) vs −0.0028 and −0.0029 (both about 2.8 paired SE); the gap is 0.9 combined SE, so the three seeds agree on the value, but this seed alone does not clear the two-SE bar. Pooling the three seeds gives roughly −0.0024 at a pooled SE near 0.0006, so the S2 lead there is real but small, about a quarter of a percentage point.
Finding: the third seed confirms the pattern. On the light-tailed lognormal, SW leads by 7 to 13 paired SE, with SW-only rejections 1.8 times S2-only at sigma 0.1. On skew-t df 10 at sqrt(b1)=0.3, S2 leads by 14 paired SE, with S2-only rejections (5.2%) twice SW-only (2.5%), reproducing member-3's ratio almost exactly. At df 5 the heavy tails push both tests above 0.97 and the comparison is at the ceiling. The one difference from the earlier seeds is skew-t df 10 at sqrt(b1)=0.6, where the S2 lead is too small to clear two paired SE in a single 20000-draw run; its sign is stable across seeds but any single run should not be read as decisive there.
SW leads S2 beyond two paired SE: lognormal sigma 0.1, lognormal sigma 0.2. Neither test leads: lognormal sigma 0.3 (ceiling), skew-t df 5 sqrt(b1)=0.3, skew-t df 5 sqrt(b1)=0.6, skew-t df 10 sqrt(b1)=0.6 (−1.4 paired SE this seed). S2 leads beyond two paired SE: skew-t df 10 sqrt(b1)=0.3.
Author: member-2
Seed: 1030217. This seed is new and was not used in cycles 100 to 102. It comes from one numpy.random.default_rng stream. Plain S2 is the D'Agostino-Pearson K² omnibus statistic (scipy.stats.normaltest), which sums the squared skewness z and the squared kurtosis z.
Exact-size 5% critical values at n=400 come from 20000 N(0,1) calibration draws:
Separate 20000-draw N(0,1) rejection rate (new draws, not the calibration set):
Skew-normal-scaled Student t is X = Y / sqrt(V). Y is Azzalini skew-normal with shape delta, and V = chi²_df / df. Delta is solved so that the theoretical sqrt(beta1) hits the target.
Each alternative uses the same 20000 paired draws for both tests. Diff = SW minus S2, and paired SE is sd(1[SW rej] − 1[S2 rej]) / sqrt(20000).
| Alternative | SW power | S2 power | Diff SW−S2 | Paired SE | Diff/SE | SW-only | S2-only |
|---|---|---|---|---|---|---|---|
| lognormal sigma 0.1 | 0.5651 | 0.5437 | +0.0213 | 0.0023 | +9.3 | 0.0629 | 0.0416 |
| lognormal sigma 0.2 | 0.9920 | 0.9870 | +0.0050 | 0.0006 | +8.3 | 0.0063 | 0.0013 |
| lognormal sigma 0.3 | 1.0000 | 1.0000 | +0.0000 | 0.0000 | — | 0 | 0 |
| skew-t df 5, sqrt(b1)=0.3 (delta 0.262) | 0.9766 | 0.9775 | −0.0009 | 0.0007 | −1.3 | 0.0050 | 0.0060 |
| skew-t df 5, sqrt(b1)=0.6 (delta 0.477) | 0.9843 | 0.9855 | −0.0011 | 0.0006 | −1.8 | 0.0034 | 0.0046 |
| skew-t df 10, sqrt(b1)=0.3 (delta 0.601) | 0.7387 | 0.7630 | −0.0243 | 0.0019 | −12.8 | 0.0259 | 0.0502 |
| skew-t df 10, sqrt(b1)=0.6 (delta 0.804) | 0.9549 | 0.9577 | −0.0028 | 0.0010 | −2.8 | 0.0096 | 0.0124 |
Power ceiling: lognormal sigma 0.3 puts both tests at 1.0000 with zero discordant pairs. Both skew-t df 5 alternatives are near the ceiling (above 0.97 for both tests).
Finding: the symmetric-tail SW lead from cycle 102 does not carry over once skewness is added to the t. On skew-t df 10 at sqrt(beta1)=0.3, S2 leads by 0.024 (12.8 paired SE) and has twice as many solo rejections as SW. S2 also leads at sqrt(beta1)=0.6, by 2.8 SE. SW keeps its lead only on the light-tailed lognormal alternatives.
SW leads S2 beyond two paired SE: lognormal sigma 0.1, lognormal sigma 0.2. Neither test leads: lognormal sigma 0.3 (ceiling), skew-t df 5 sqrt(b1)=0.3, skew-t df 5 sqrt(b1)=0.6. S2 leads beyond two paired SE: skew-t df 10 sqrt(b1)=0.3, skew-t df 10 sqrt(b1)=0.6.