Phase 1 · complete
Replication with corrections: behaviour
Every published behavioural number was reproduced from the archived data and code. The audit found real bugs, and fixing them changes several numbers. It changes no model winner and no main conclusion, though three claims need qualifying.
The task and the five models
On each trial a category is drawn (1 or 2, equally likely). Category 1 orientations are tightly clustered around horizontal (), category 2 orientations are spread wide (, or for Monkey L). The observer never sees the true orientation , only a noisy measurement whose noise depends on the grating's contrast .
Because both categories share a mean, the optimal rule is "report category 1 if is smaller than a boundary ". The optimal boundary depends on noise: when the measurement is noisy, a large is weaker evidence for the wide category, so the boundary moves outward. The sensory noise follows , and every model adds a lapse rate .
- Opt: the Bayes-optimal boundary , with equal priors.
- Opt-P: Bayes-optimal, but with a free prior .
- Lin-σ: , a boundary linear in .
- Quad-σ: , quadratic in .
- Fixed: one boundary for all contrasts (ignores uncertainty).
The optimal boundary grows with sensory noise
Optimal for , , computed from the formula below, with a Fixed boundary at the same value as the optimal one at for comparison. Hover for values.
Faithful replication: every published number reproduced
First, the 2013 pipeline was rebuilt as faithfully as possible (a line-by-line Python port of the MATLAB likelihood, optimiser and Hessian code), to prove the code paths are identical before changing anything. There is no MATLAB on this machine.
- Likelihood: at the archived parameters, 69 of 70 subject × model fits reproduce the archived log-likelihood to better than 10−6; the 70th to 1.1×10−6.
- Model evidence: the ported finite-difference Hessian reproduces all 70 archived Laplace evidences to 2×10−3, including the 4 that are complex numbers (negative Hessian determinant; the paper reported the real part).
- Optimiser: with the archived settings (200 starts), of fits land on the archived optimum to 10−3. The exceptions are the monkey Lin-σ fits, where the same code lands 56 better or 59 worse than the archive depending on the random starts.
- Figures and statistics: the Fig 2A/2C and 3A/3C psychometric RMSEs are identical at the archived parameters. The Fig 2D boundary RMSEs are Opt-P , Lin-σ , Quad-σ , Fixed (published 0.59 / 0.11 / 0.55 / 2.64). The repeated-measures ANOVA gives F(5,25) = (published 12.4). The Fig 2E correlation is r = (published 0.89).
- One exception, explained: the published Fig 2B/3B RMSEs are exactly √2 × what the archived plotting code produces. The archived code's own saved figures show our values, so the published panel came from a different code version (audit D8).
Code audit
Each item was checked numerically and confirmed by an independent reviewer agent before it was reported. "Severity" is how much the item matters for the published results: High changes a published number materially or the wording of a claim; Medium numbers move but conclusions hold; Low negligible; Doc documentation. Our own bug is listed too.
| # | Severity | Finding | Status | Impact |
|---|
Corrected vs published model comparison
The corrected analysis fixes the gradient bug, uses 1,000 starts per fit (the protocol the SI describes), keeps parameters inside the SI's prior box, uses exact Hessians, and adds nested-sampling evidence, which stays valid where the Laplace approximation breaks (optima on a parameter bound or a non-positive-definite Hessian). The chart shows each model's evidence relative to the best model for that subject. The shaded band is the paper's "within " criterion for the set of best models.
Log evidence relative to the best model
Triangles mark values beyond the axis (Fixed for the monkeys is 1,700–2,600 below the best). Hover a row for all five values.
Table view (corrected, with change vs published)
Decision boundaries by contrast
The "Flex" model fits a free boundary at every contrast, a model-free estimate of where each observer put the boundary. The parametric models' boundaries can then be compared with it (Fig 2D in the paper). Choose a dataset and a subject.
Boundary k vs contrast (log x)
Dots: Flex estimates. Lines: boundaries predicted by each fitted model (corrected fits). RMSE vs Flex across subjects, in degrees:
What changed in the conclusions
Headline: nothing major changed. Every main conclusion survives the corrections. Fixed is never the best model. Subjects remain split across Opt, Opt-P, Lin-σ and Quad-σ. Monkey A prefers Quad-σ and Monkey L prefers Lin-σ. No winner is changed by a correction.
| Correction | Effect on numbers | Effect on conclusions |
|---|---|---|
| gradient bug fixed, better optimiser (B1, B2) | Monkey A Lin-σ log-likelihood +111.6; Monkey L Lin-σ +16.5, Quad-σ +2.2; humans ≤ 0.5 | Winners unchanged. Monkey A's Quad-σ margin over Lin-σ shrinks from 192 to 82 nats; Monkey L's Lin-σ margin over Quad-σ grows from 38 to 52. |
| Laplace invalid on ridge/boundary optima (B3), replaced by nested sampling | Monkey A Lin-σ evidence −32,954 → −32,844 | None (Quad-σ still best by 82 nats) |
| SI prior box enforced (D2, D7) | Fixed log evidence −1.2 ( range 50 instead of 15); a few fits move by ≤ 0.04 | None |
| RG's discrimination session: the analysis used a pilot session (B6) | Fig 2E r: → ( pooled) | Slightly stronger |
| Within-contrast σ agreement (D9, M1) | Per-contrast across-subject r (n = 6) has 95% CIs spanning about −0.6 to 0.9; contrast-demeaned r = | Subject-level validation is inconclusive at n = 6; the pooled r mostly reflects the shared contrast trend |
| Sphericity correction for the boundary ANOVA (M3) | Greenhouse–Geisser = ; p: 4×10−6 → | Effect survives, evidence much weaker than "P < 10−5" |
| Opt-P: instead of "infeasible" (B4) | No optimum moved () | None |
Qualifications
- Control experiment: Fixed is within of the best model for subject NL. This is also true in the published Table S4 (DIFF −1.9), contrary to the text's "Fixed is never among them".
- Independent σ: the discrimination-task σ agrees with the categorisation σ across contrasts, but across the six subjects the agreement is inconclusive, not demonstrated.
- ANOVA: the boundary-vs-contrast effect survives the sphericity correction only at p = 0.016.
Control subject JO shows Lin-σ in the published Table S4 but Quad-σ in both the archived 2013 fit file and our corrected fit. The difference comes from the published control tables disagreeing with the archived fits (D3), not from our corrections; the two models are 1.3 nats apart.
Figures
Regenerated from the corrected fits. Psychometric curves: proportion of "category 1" reports vs orientation, by contrast (data points, model curves).







