LAB_EXPERIMENT_02 power calculations -- every effect size is an ASSUMPTION, not a result Python 3.12.3 | scipy not used | seed 20261111 A. Two-sample t-test, two-sided, ASSUMPTION d=0.5, alpha=0.05, power=0.80 z_(0.975)=1.9600 z_(0.80)=0.8416 large-sample n/arm = 2(za+zb)^2/d^2 = 62.79 -> 63 with t-correction n/arm = 63.75 -> 64 Monte-Carlo power at n=63/arm (20000 sims): 0.7993 Monte-Carlo power at n=64/arm (20000 sims): 0.8048 Monte-Carlo power at n=65/arm (20000 sims): 0.8091 B. Same, d sweep (alpha=0.05, power=0.80), n/arm (t-corrected, rounded up) d=0.2: 394 d=0.3: 176 d=0.4: 100 d=0.5: 64 d=0.6: 45 d=0.8: 26 C. Multiplicity: Bonferroni-equivalent alpha for a primary family of m tests m=1: alpha_per_test=0.0500; d=0.5 power 0.80 -> n/arm 64 (Holm is uniformly at least as powerful; this is the conservative planning bound) m=2: alpha_per_test=0.0250; d=0.5 power 0.80 -> n/arm 78 (Holm is uniformly at least as powerful; this is the conservative planning bound) m=3: alpha_per_test=0.0167; d=0.5 power 0.80 -> n/arm 86 (Holm is uniformly at least as powerful; this is the conservative planning bound) m=4: alpha_per_test=0.0125; d=0.5 power 0.80 -> n/arm 91 (Holm is uniformly at least as powerful; this is the conservative planning bound) D. Two proportions (task-level rates), ASSUMPTION: unsupported-agreement rate 0.30 (control) vs 0.20 (intervention) alpha=0.05 power=0.8: n/arm = 294 alpha=0.05 power=0.9: n/arm = 392 alpha=0.0125 (Bonferroni m=4) power=0.80: n/arm = 417 E. Clustered runs (repeated runs within task): design effect DEFF = 1+(m-1)*ICC ASSUMPTION ICC=0.05, runs/task m=5: DEFF=1.20; runs/arm=353 (~71 tasks/arm) ASSUMPTION ICC=0.05, runs/task m=10: DEFF=1.45; runs/arm=427 (~43 tasks/arm) ASSUMPTION ICC=0.1, runs/task m=5: DEFF=1.40; runs/arm=412 (~83 tasks/arm) ASSUMPTION ICC=0.1, runs/task m=10: DEFF=1.90; runs/arm=559 (~56 tasks/arm) ASSUMPTION ICC=0.2, runs/task m=5: DEFF=1.80; runs/arm=530 (~106 tasks/arm) ASSUMPTION ICC=0.2, runs/task m=10: DEFF=2.80; runs/arm=824 (~83 tasks/arm) F. Paired / within-participant (e.g. pre/post self-report), ASSUMPTION dz=0.4, alpha=0.05, power=0.80 pairs needed = 51 G. Attrition inflation: n_enrol = n / (1 - a); ASSUMPTION a=0.20 applied to A 64 / 0.8 = 80 per arm