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:
Experiments DB Dev
2026-07-20 09:58:19 -04:00
parent f0ce978bd4
commit 89bb95088f
6 changed files with 51 additions and 7 deletions
+5 -2
View File
@@ -92,7 +92,7 @@ meta.isUnmerged = strcmp(mergeKey, 'unmerged');
end
function [mergeKey, maxDay] = localParseScenario(scenario)
%LOCALPARSESCENARIO Split "<mergeKey>_full" / "<mergeKey>_d0_10" apart.
%LOCALPARSESCENARIO Split "<mergeKey>_full" / "_d0_10" / "_d0_13" apart.
scenario = char(scenario);
if endsWith(scenario, '_full')
maxDay = 26;
@@ -100,9 +100,12 @@ if endsWith(scenario, '_full')
elseif endsWith(scenario, '_d0_10')
maxDay = 10;
mergeKey = scenario(1:end - numel('_d0_10'));
elseif endsWith(scenario, '_d0_13')
maxDay = 13; % day 13 = last day Box-A2 has data (fair A2-vs-B2 window)
mergeKey = scenario(1:end - numel('_d0_13'));
else
error('tdcs_scenario_data:badScenario', ...
'Scenario "%s" does not end in "_full" or "_d0_10".', scenario);
'Scenario "%s" does not end in "_full", "_d0_10", or "_d0_13".', scenario);
end
if ~ismember(mergeKey, {'unmerged', 'mergeA2', 'mergeB2'})