Two labellers, three arms

One fits a model and always answers. The other declines. A third finds the pieces before naming them.

keypoint-MoSeq

moseq label 0moseq label 1moseq label 2

MoSeq fits a model that assumes behaviour is a sequence of discrete chunks, and slices every frame into one. It always returns an answer, including when it is given noise.

nonparametric v1

nonparam label 11nonparam label 29nonparam label 28

The nonparametric labeller finds stretches that recur across animals and labels only frames that closely match one, leaving the rest unlabelled. It declines to label a smooth continuum entirely.

nonparametric v2

nonparam2 label 34nonparam2 label 18nonparam2 label 55

The same labeller, with each seed's threshold calibrated against a null instead of set to one arbitrary distance. Five times the coverage, at contamination below MoSeq's.

Four published unsupervised segmentation methods, four different architectures — centroid-based, density-based, an HMM, an AR-HMM. Nothing here adjudicates between them; that is why this page validates a labeller instead of adding a fifth.
Four published unsupervised segmentation methods, four different architectures — centroid-based, density-based, an HMM, an AR-HMM. Nothing here adjudicates between them; that is why this page validates a labeller instead of adding a fifth.
0%25%50%75%100%1%10%MoSeq100.0% / 2.82%nonparam v114.0% / 0.00%nonparam276.0% / 2.16%coveragecontamination — assignment rate on the nulldashed: the α sweep
Coverage against the rate at which a labeller fires on a null that is not behaviour. The dashed line is the per-seed α sweep against the microstate null; the three arms sit on it or beside it. MoSeq has no curve because a labeller with no abstain bin has no threshold to sweep. The horizontal axis is logarithmic, so an exact 0.00% cannot be placed on it — that arm is drawn hollow, on the axis itself.
MoSeqnonparam v1nonparam v2
coverage100% by construction14.0%76.0%
abstentionnone — no abstain bin exists86.01%24.02%
artifact mass2.8%0.00%2.16%
surrogate assignmentnot calibrated against one0.00%α = 1e-4 per seed
grammar1,491provisionalINCONCLUSIVE, 0 of 08 of 8 surviving
noise controlwhite noise survives it toono n-gram to testnot yet run
human validationnonenonenone

The 2.8% figure is the conservative half of two: a further 9 labels (18.9% of frames) are enriched for tracking flags but not in every stratum, which means their failure tracks posture — real behaviour that degrades tracking, not the tracker alone. Counting both as one number would overstate the contamination.

The v1 arm's 0.00% surrogate assignment has a 24× margin and does not show its acceptance regions are tight. Phase, AR and OU surrogates all sit about 24× further from the corpus than the corpus sits from itself, so any threshold calibrated against them lands past full coverage.

Finding the pieces without naming them first

-1%+0%+2%+4%+6%segmentslength-matchedshapebothtwistexcess
How much more a unit of movement recurs in a different animal than a dwell-matched surrogate predicts. Blue is the interval between two detected breaks; grey is a random window of the same length from the same recording, scored identically. Bars are animal-level bootstrap intervals over 89 animals. On shape the boundaries multiply the excess eightfold; on twist the segment interval spans zero and the windows sit below their own surrogate.

Every arm above starts by assuming what a piece of behaviour is. This one does not: it finds where the movement stops being smooth, takes what lies between two breaks as the unit, and asks whether those units turn up in other animals.

channel groupsegmentslength-matched windowsdifferencedo segments recur?
shape+5.930%[+4.608%, +7.184%]+0.737%[+0.469%, +1.005%]+5.193%[+3.959%, +6.449%]yes
both+4.048%[+3.071%, +4.998%]+0.364%[+0.146%, +0.568%]+3.684%[+2.723%, +4.639%]yes
twist+0.117%[-0.185%, +0.427%]-0.535%[-0.794%, -0.308%]+0.652%[+0.336%, +0.985%]no — interval spans zero

The comparison is the result, not the left-hand column. A bank of any units cut from a real animal beats a surrogate, so the segment number alone says nothing about the boundaries. What says something is the same statistic recomputed with random windows drawn to the same lengths, in the same space, against the same dwell-matched nulls.

A continuum with islands

13
groups found
connected components of a neighbour graph under a distance that warps nothing — against the dwell-matched nulls' four
98.1%
unassigned
the share of segments in no group at all — reported first, because a method that assigns everything is misreporting its coverage
51.7%
widest group's reach
the largest group turns up in this share of the 89 report animals

Those groups are not reproduced by surrogates that match the corpus's dwell times, so the structure is real. It covers under two per cent of the segments, which is why no vocabulary is claimed here.

The widest group is the one thing in this programme that has been validated against the experimental design rather than against its appearance. What it is, what it is not, and its clips against a blind control are on The island.