feat(matlab): add 0-13 day window (lme_*_d0_13) + coverage warning
Box-A2 has no data past ~day 13, so the full-range days x tDCS interaction extrapolates A2's slope and is confounded (spuriously significant, wrong sign). Add the _d0_13 window (equal anchor coverage) and a report warning when the two groups' day coverage is unequal. In the fair 0-13 window the interaction is n.s. with a POSITIVE slope diff and the Day-1 tDCS effect is n.s. -- matching the paper's 'equal on Day 1' direction (underpowered at n=8). Suite 32/32. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -12,8 +12,16 @@ s = [s sprintf('%s\n', bar)];
|
||||
s = [s sprintf('model: success ~ day * tDCS + (1|subject) [tDCS: %s = 1 vs %s = 0]\n', ...
|
||||
cfg.anchorHigh, cfg.anchorLow)];
|
||||
s = [s sprintf('N = %d subjects, %d sessions\n', L.nSubjects, L.nObs)];
|
||||
s = [s sprintf('day coverage: Box-B2 0..%d, Box-A2 0..%d\n', L.maxDayB, L.maxDayA)];
|
||||
s = [s sprintf('(day is raw and 0-indexed: our day 0 = the paper''s "Day 1", so the tDCS\n')];
|
||||
s = [s sprintf(' main effect below is the group difference on Day 1 -- comparable to the paper.)\n\n')];
|
||||
s = [s sprintf(' main effect below is the group difference on Day 1 -- comparable to the paper.)\n')];
|
||||
if abs(L.maxDayB - L.maxDayA) > 2
|
||||
s = [s sprintf(['** WARNING: the groups'' day coverage is UNEQUAL (differ by %d days). The\n' ...
|
||||
' interaction/slope over this window EXTRAPOLATES the shorter group''s line and is\n' ...
|
||||
' CONFOUNDED -- prefer the _d0_%d window (both groups have data throughout). **\n'], ...
|
||||
abs(L.maxDayB - L.maxDayA), min(L.maxDayB, L.maxDayA))];
|
||||
end
|
||||
s = [s sprintf('\n')];
|
||||
|
||||
s = [s sprintf('%-27s %-14s %-13s %s\n', 'effect', 't (df)', 'F (df1)', 'p')];
|
||||
s = [s sprintf('%s\n', repmat('-', 1, 70))];
|
||||
|
||||
Reference in New Issue
Block a user