Which design can tell the accounts apart
“Can we detect an effect?” is the easy question. “Can we tell why there is one?” is the one the design has to answer.
Nine candidate designs cross three stimulus-sequence structures with three proportions of orthogonal-report trials. For each, 60 synthetic observers were generated with both a stimulus-history amplitude (2.5°) and a response-history amplitude (1.5°), and the primary model had to recover both.
The proportion of orthogonal trials dominates everything else. With none, the two amplitudes are not separately identifiable: their recovery errors correlate at −0.88 and the joint error is 1.69°. With half the trials orthogonal the correlation falls to −0.44 and the joint error to 0.71°. That is why the protocol uses 50%.
The sequence structure matters much less than expected, and it is worth saying so plainly: balanced differences (0.71°) did not beat independent uniform sampling (0.70°) on recovery error. On a full 180° circle, independent sampling already covers every orientation difference evenly. Balanced differences are kept because they make the sequence autocorrelation exactly zero by construction rather than zero in expectation — a guarantee, not a precision gain. The autocorrelated walk (0.74°) biases the response-history estimate by −0.22°.
Fig. 1 Joint recovery error by design
SIMULATED DATA
joint RMSE of (a_stim, a_resp), degrees
results/design_optimization.parquet · run design_optimization-8964a2e-6000Table view (9 rows)
| sequence | p(orthogonal) | RMSE a_stim | RMSE a_resp | bias a_stim | bias a_resp | r(errors) | basis r | seq. autocorr |
|---|---|---|---|---|---|---|---|---|
| independent uniform | 0.50 | 0.513 | 0.472 | +0.004 | −0.029 | −0.43 | 0.33 | +0.003 |
| balanced differences | 0.50 | 0.516 | 0.484 | −0.007 | +0.010 | −0.44 | 0.33 | −0.009 |
| autocorrelated walk | 0.50 | 0.495 | 0.550 | +0.073 | −0.219 | −0.45 | 0.51 | +0.674 |
| autocorrelated walk | 0.25 | 0.471 | 0.572 | +0.030 | −0.040 | −0.49 | 0.63 | +0.671 |
| independent uniform | 0.25 | 0.633 | 0.610 | −0.037 | −0.041 | −0.48 | 0.47 | −0.004 |
| balanced differences | 0.25 | 0.705 | 0.607 | −0.029 | −0.078 | −0.61 | 0.47 | −0.003 |
| autocorrelated walk | 0.00 | 0.881 | 0.853 | −0.143 | +0.088 | −0.86 | 0.90 | +0.673 |
| independent uniform | 0.00 | 1.047 | 1.129 | +0.050 | −0.128 | −0.82 | 0.90 | +0.003 |
| balanced differences | 0.00 | 1.174 | 1.219 | +0.257 | −0.362 | −0.88 | 0.90 | −0.005 |
Fig. 2 Are the two accounts separable?
SIMULATED DATA
corr(recovery error a_stim, recovery error a_resp) · vertical rule: H5 threshold −0.5
results/design_optimization.parquet · run design_optimization-8964a2e-6000