A median that is an exception
Worth reading first: The damage has a period · The organ that was taken away.
A wrecked stem’s displacement profile is the difference, organ by organ, between the cut run and its control. Folded onto the lag the run keeps rigid, it becomes a set of residue classes, and most of those classes sit at one level with one or two exceptions.
Every number in the ablation thread is measured against that level. The size of an exchange, which chains are exceptional, whether a rearrangement closes — all of them are offsets from it, and the level is taken as the median of the class means.
Why a median
Because a mean would be dragged by the exceptions, which is exactly what the reading is trying to measure. A profile with six classes at nothing and two at plus and minus a hundred and thirty degrees has a mean somewhere in between and a median at nothing.
That reasoning is right and it has a condition attached that nothing checked: a median is robust while the exceptions are a minority. Half the classes exceptional and the median is on a boundary; more than half and the median is one of them.
Nobody wrote the condition down until a rule fitted to the awkward rows had a candidate artefact attached to it: on a profile with three of four chains exceptional, the median is itself an exception.
What to replace it with
Not a better average. The level is the value the classes that agree agree on, and the honest way to find it is to find the largest set that agrees.
For each class mean in turn, count how many class means sit within the exception tolerance of it round the circle. Keep the candidate with the largest count, breaking ties on the tighter cluster. The level is the circular mean of that cluster’s members.
That assumes no majority. A cluster of two out of eight is reported as a cluster of two out of eight, with the number of rival clusters of the same size beside it, and the reading is refused outright where no two classes agree at all.
The tolerance is not a new parameter
The cluster’s width is the same ten degrees that decides which classes are exceptions. That is deliberate and it is what keeps the estimator from having a free parameter the median does not have.
A level is the value a set of classes agree on to within the tolerance that decides who disagrees. Making them one number means there is nothing to tune: the reading is fully determined by a quantity already stated.
The ten degrees is itself a gap rather than a threshold. Across the census the classes at the level sit within 5.6 degrees of it and the exceptions are 12.4 to 160 degrees away, so anything between about six and twelve gives the same table.
Distances have to be folded
The class means are angles. A class at plus 175 degrees and one at minus 178 are seven degrees apart, and a linear median of a list containing both puts the level near nothing — a value no class is anywhere near.
So every distance in the estimator is folded into a half turn either way, and the cluster’s level is a circular mean rather than an arithmetic one.
That is not a hypothetical repair. Several rows in the census have class means either side of the fold, and the incumbent median takes the arithmetic median of raw values before folding the offsets.
No new stems
The whole recomputation is arithmetic on numbers already in the cache. Each row of the census returns its class means alongside its offsets, so both readings are available from the same banked table.
Thirty-six rows — the ten lattices of the census plus the one the fine-end search added — read twice, at no cost. That is the cheapest kind of check and it is the kind this thread has been running all round.
It also means the comparison is exact rather than approximate. The two levels are computed from the same numbers, so a difference between them is a difference between two estimators and not between two runs.
That is the discipline the slot table followed when it went from six lattices to twenty-four, and the extended census when it added a lattice rather than replacing the list. A comparison between a reading and a second reading is worth nothing if the two are also two implementations.
Where the two agree
Everywhere it matters most. On the twenty rows the exchange is quantified over — the rows whose exceptions are one balanced pair — the two levels agree to within the exception tolerance on every one, and the largest disagreement is 3.13 degrees.
The median disagreement across those twenty is 0.13 degrees, which is half a step of the azimuth grid.
So nothing the exchange reports rests on the estimator. That is the first thing this recomputation had to establish and it is the result that makes the rest reportable rather than alarming — the exchange’s own claims stand at the numbers they were reported at.
Where they do not
On eight rows of thirty-six, the level moves by more than the exception tolerance. The moves are 13, 47, 49, 91, 91, 104, 104 and 133 degrees.
Every one of the eight is a row the exchange already sets aside — a row with no balanced pair, which was excluded for a reason having nothing to do with the level.
So the median is right exactly where it had been checked and wrong exactly where nothing had looked. That is not a coincidence: a row with a balanced pair has two exceptions out of five or eight, so its exceptions are a minority by construction and the median’s condition holds.
What a moved level does
Changes which classes are exceptions, and therefore every number read off the row.
On six rows the count of exceptions falls: from four to three, from three to two, from five to four twice, from six to four, from five to four again. On no row does it rise.
That direction is the signature the objection predicted, and one row loses enough exceptions to change side entirely. Choosing an exceptional class as the level makes the classes at the true level look exceptional, and cannot do the reverse — so a row that gained an exception would mean the new estimator was picking a level that is not a level.
The clearest case
l008 cut at offset 7. Its seven class means are −71.0, −68.9, −64.9, −15.2, 33.5, 33.5 and
35.9 degrees.
The median of seven values is the fourth, which is −15.2 — a class sitting on its own, with the nearest other class fifty degrees away. Measured against it, six of the seven classes are exceptions.
The densest cluster is either of the two triples: {−71.0, −68.9, −64.9} or {33.5, 33.5, 35.9}. Both hold three of seven, so the reading reports a tie of two, takes the tighter, and lands at 34.3. Against that, four classes are exceptions rather than six.
Which raises the question the next essay is about
A row with two clusters of three and one singleton has no level in the sense the reading assumes. Neither triple is a majority of seven; the estimator reports a tie and takes the tighter, and the tie is the honest part of the answer.
That is not a defect in the estimator. It is a fact about the row, and the median hid it by always returning a number.
How many rows are like that is a countable question, and it turns out to line up almost exactly with the exchange’s own exclusion — which is computed from something else.
Four rival estimators, scored
The incumbent median, the densest cluster, a circular median — the class nearest every other, the short way round — a circular mean, and the point opposite the largest empty arc, which is what a reader of a circular histogram does by eye.
They are scored on the one quantity none of them defines: how many classes end up within the tolerance of the level, summed over the census. A level several classes sit at is a level; a level no class sits at is an artefact of the averaging.
Densest cluster 145 of 243. Circular median 141. Median 138. Circular mean 121. Largest gap 63.
What the scores mean and do not
The margin between the top three is small — 145, 141, 138 out of 243 — so this is not an estimator winning by a distance. What separates them is the failure mode rather than the average.
The densest cluster is never a level with one class or none at it. The median is on three rows and the circular median on two. The circular mean is on nine and the largest-gap reading on twenty-three, which is why the last is in the table only to be dismissed.
A statistic that occasionally returns a value nothing is near is a statistic that occasionally measures everything against an anomaly, and that is the property being selected for rather than a decimal place.
The refusal
A profile whose classes are spread evenly round the circle has no value several of them sit at. The reading must decline it rather than name the mean of a single class.
Eight class means at forty-five degrees apart is such a profile: no two are within ten degrees of each other, so the densest cluster holds one, and there are eight clusters of that size. Asking for its level is refused.
The median returns a value anyway, with exactly one class at it and no way of saying so. That is the whole of the difference between the two readings, and the check is the site’s own habit of feeding a reading input it must refuse.
Where the level sits in the chain of readings
It is the second step of four, and everything after it depends on it.
First the profile: the cut run minus its control, organ by organ, over the top hundred and twenty organs. Then the fold: the profile cut into residue classes modulo the lag the run keeps rigid, and each class’s mean taken. Then the level. Then the offsets — each class’s mean less the level — from which the exceptions, the balanced pair, the exchange’s size and the sum that says whether a rearrangement closes are all read.
So a level in the wrong place does not corrupt one number. It shifts every offset on the row by the same amount, which leaves differences between classes intact and moves anything measured against nothing.
That is why the exchange survives untouched even on a row whose level moves: a balanced pair is a difference between two classes, and a shift does not change it. What moves is the count of exceptions and every sum over them.
Which numbers are shift-invariant
Worth listing, because it decides what this recomputation can and cannot change.
The size of an exchange is half the sum of the two exceptions’ magnitudes, and on a balanced pair that is a difference between two classes. Shift-invariant. The orientation — which chain is displaced forwards and which backwards — is a comparison between two classes. Shift-invariant. Whether two exceptional chains are adjacent is a fact about residues. Shift-invariant.
What is not shift-invariant is which classes count as exceptions at all, since that is a comparison against the level. And therefore neither is the sum over the exceptions, which is what the closure reading adds up.
So the recomputation cannot move the exchange’s own numbers and can move which rows are in it, and it can move every closure sum. Both of those happen.
Why nobody checked
Because the rows where it matters are the rows nobody was reading. The exchange excluded them at the start, on a criterion — no balanced pair — that had nothing to do with the level, and for several rounds nothing was quantified over them.
When they were finally added up the rule that came out of it was thirteen for thirteen, which is the state a rule is most worth testing in and least likely to be questioned in.
The objection was written down in that round’s own file rather than found later, which is the only reason it was checked at all. A rule with no stated weakness is a rule nobody goes back to.
What a tie means
Four rows have two or three clusters of the same size competing to be the level, and the reading reports the count rather than hiding it.
On g005 at offsets 7 and 8 there are three clusters of two, out of eight classes. On
g013 at offset 5 there are two clusters of two out of five, and on l008 at offset 7 two
clusters of three out of seven.
A tie is not an error and it is not resolved by choosing better. It is the statement that the row has no single value most of its chains agree on, and it is exactly the information a median destroys by always returning one number.
What this does not touch
Every number the exchange reports, which is the largest single body of arithmetic in this thread. Its twenty rows are read against a level the two estimators agree on to within half a grid step, so the size of an exchange, its orientation, where it sits and the correction fitted to it are all unchanged.
Nor does it touch the periodicity classification. That is read from the spread within a class, which is a statistic of one class about its own mean and does not reference the level at all — so recomputing the level cannot move a verdict there. The same is true of the onset, which is read from where each class stops moving.
What it touches is exactly one family of readings: anything that counts exceptions or adds them up. That is the excluded set’s whole subject matter, and it is the reason the recomputation was worth doing at all rather than filed as a curiosity about statistics.
What a level is for
Worth stating plainly, because it is easy to read the common level as though it were a property of the stem. It is not. A wrecked run’s profile is a set of displacements, and the level is the value most of them share; it exists because the displacements cluster, and it is interesting only in so far as they do.
On a profile whose classes sit at four or five distinct values there is no such thing, and the right report is that there is none rather than a number with error bars. That is what the cluster reading says and what the median could not: a median always returns a value, and on those rows it returns one that describes nothing.
So the recomputation is less a correction to a statistic than a change in what the reading is allowed to say. It can now decline, and the rows it declines on are the rows every other file had already set aside for a different reason.
The order the checks were made in
Worth recording because it is what makes the result usable. The objection was written down first, in the file that reported the rule it threatened. The estimator was then chosen for a property stated in advance — no free parameter, and a refusal where no cluster exists — rather than for what it would do to any number. Only then was it run.
That order is what separates a correction from a rationalisation, and it is cheap to follow when the objection is written at the time. The alternative shape — a rule fails, a statistic is adjusted, the rule recovers — is the same three events in an order that would make the outcome worth nothing.
Nothing about the sequence guarantees the answer is right. What it does is make the answer checkable by somebody who was not there.
What is claimed
That the common level, recomputed as the densest cluster of class means rather than their median, agrees with the incumbent on every row the exchange is quantified over, worst 3.13 degrees and median 0.13.
That it disagrees by more than the exception tolerance on eight of thirty-six rows, all of them rows the exchange sets aside, with moves of 13 to 133 degrees.
And that the count of exceptional chains falls on six rows and rises on none, which is the direction predicted by a median standing on an exception rather than beside one.
What links here
Computed from the collection, not written here: the essays that point at this one.
Shares its objects with
Essays that name at least two of the same things, and that neither author linked.
- A change with nowhere to be — both name artefact, claim testing, honest limits, instrument setting, measurement, negative result, refusal
- A difference forgets a drift — both name artefact, claim testing, honest limits, measurement, negative result, refusal, summary statistic
- A period the grid invented — both name artefact, claim testing, honest limits, measurement, negative result, refusal, summary statistic
- A spread that grows with its window — both name artefact, claim testing, damage profile, honest limits, instrument setting, residue class, summary statistic
- A window nobody aligned — both name artefact, claim testing, honest limits, measurement, negative result, summary statistic
- An onset at the end of the run — both name artefact, claim testing, honest limits, measurement, negative result, summary statistic
Named objects
A flat tag is an object no other essay names yet.
ArtefactClaim testingDamage profileExceptional chainHonest limitsInstrument settingMeasurementNegative resultRefusalResidue classRobust statisticSummary statistic