top | item 40055153

(no title)

ciscoriordan | 1 year ago

Related to that: https://www.schneier.com/blog/archives/2009/05/software_prob...

Defense attorneys in a DUI case got their hands on the source code for the breathalyzer. It turned out to have terrible programming, e.g. calculating new averages by averaging a new value with the previous average. The case went all the way to the New Jersey Supreme Court, which still found the device to be acceptable.

discuss

order

cochleari_major|1 year ago

“Which would cause the first reading to have more weight than successive readings”, funny enough looks like the opposite of what’s going on.

danaris|1 year ago

Well, of course, because that statement is deeply incorrect—the described mistake would cause the most recent reading to have more weight.

If you have a set of readings, say, [0.1, 0.02, 0.3, 0.05, 0.08], normally when you average them you would get 0.55—the mean of the set.

Calculating the average by "averaging the new reading with the previous average" would mean new + old / 2 every time. That means that for each reading after the first, your "averages" would be: [0.06, 0.18, 0.115, 0.195].

If we add a new reading of 0.01 to each of these, in the first case, we would get an average of 0.46, and in the second case, 0.1025. As you can see, even taking into account the already-very-skewed numbers, the second case biases it much further in favor of the new reading (which, in this case, is very low compared to the existing readings).

AdamJacobMuller|1 year ago

Maybe it averages from newest -> oldest

With software that bad, who can say

epgui|1 year ago

On the face of it, that's absolutely insane.

krisoft|1 year ago

Idk, hard to guess based on the layman description, but maybe what they are describing is a rolling average? That would be quite a standard low-pass filter for applications like this.

Hard to get upset over that. What matters is not the signal processing but the validation. You take a bunch of people with various blood alcohol levels measured by some already accepted lab technique and you verify that your new measurement technique is measuring within some acceptable error bound of that.