Three Alerts a Day, and Most of Them Will Be Real.
← Chapter 196
Capstone 34 · Maintenance
Plain-language Brief

Three Alerts a Day, and Most of Them Will Be Real.

The first version of this system would have sent your technician ninety alerts about a firmware update. Fixing the data was worth more than any choice of method.

To  Maintenance Manager
From  Analysis
Re  Early fault warning for line 3, thirty days of telemetry
Where this comes from
Chapter Chapter 196 · Anomaly Detection Without Labels
Part Part XXXI · Capstone Projects: Machine Learning
Dataset capstone-anomaly-detection-unlabeled.xlsx
Notebook View the analysis

Recommendation

Bottom line

Ship the system, at three alerts a day. An alert is raised when two of three independent methods agree that a reading is unusual. Over the thirty days we tested, that would have produced 90 alerts, about 72 percent of which were genuine, and it would have caught 22 of the 23 fault episodes on the line.

Why the first version would have failed

Our first run gave the detector a month of your technician's capacity, 120 alerts. Here is what those alerts were.

Table 1. The first 120 alerts, before any repair.
What the alert turned out to beCount
A machine fault2
The air pressure sensor reporting in psi after its day 12 firmware update90
The labeler recalibration on day 2412
Something else, nothing wrong16

Your technician would have spent a month confirming ninety separate times that a firmware update happened. That is how these systems get switched off, and it would have been entirely our fault rather than the software's.

What fixed it

Two things, neither of which involved changing the method.

First, we repaired what the engineering log already told us. Every entry in the log was visible in the data: the clock resync had written 96 readings twice, the firmware update had switched the pressure units, the vibration sensor had been stuck for seven hours on day 19, and the labeler recalibration had moved the readings by 2.34 N. All four are corrections to the record, not events on the line.

Second, we told the system what normal running means. After the repairs, every single alert was the line being stopped on a weekend afternoon. That is genuinely unusual and genuinely not a fault, and no software can make that distinction for you. Restricting to readings above 100 bottles a minute settled it.

Table 2. Precision at a fixed budget of 120 alerts a month, best method at each stage.
StageShare of alerts that were genuine faults
The export as we received itunder 2 percent
After repairing the four log entries15 percent
After also excluding the stopped line85 percent
Bar chart of the share of alerts that were genuine faults: 1.7 percent as delivered, 15 after repairing the engineering log, 85 after also excluding the stopped line.
Figure 1. The same detector and the same alert budget at three stages. Repairing the data and saying what normal operation means moved precision from under 2 percent to 85.

Choosing the alert rate

There is no statistically correct number of alerts. There is a trade, and it is yours to make.

Table 3. The three-a-day row uses the two-of-three agreement rule; the others use the single best method.
Alerts per dayShare that are genuineFault episodes caught, out of 23
1100%16
292%19
3 (recommended)72%22
485%20
878%23
1659%13 wasted alerts a day

We recommend three a day because it is inside your stated capacity, it catches all but one episode, and roughly seven alerts in ten are worth the walk.

Two curves against alerts per day: the share that are genuine falls from 100 to 59 percent, and the share of fault episodes caught rises from 70 to 100.
Figure 2. What each alert rate buys. Below four a day the system is almost always right and misses episodes; above it, the reverse.

What the system is weak on, and how we will know if it drifts

It finds bearing wear and filler valve drift reliably: 9 out of 9 and 8 out of 8 episodes respectively. It is weaker on slow air leaks, catching 3 of 6. That is worth knowing now rather than after it misses one, and it is the first thing we would work on in a second version.

A monthly check that needs no fault history

We can inject a synthetic fault of known size into the live data and see whether the system catches it. At full severity it does so every time; at forty percent severity, two times in five. Running that check every month tells you the system is still working without waiting for a real fault to happen, and if the number drops, something on the line or in the sensors has changed.

One request

When an alert turns out to be a data problem rather than a machine problem, please have it written into the engineering log the same way a maintenance action would be. Four of the log entries were the reason this project nearly failed, and they were also the reason we could fix it. The next version of this model will be only as good as that log.

From Statistics, Data Science and AI: A Visual Handbook by John Fisher. Every statistic, table, and figure in this report is reproduced by the companion notebook.