Skip to content
BayesLab.Open the app →

Evidence & inference

Explaining away: when one cause makes another less likely

An alarm sounds, so you suspect a fault. Then you discover a scheduled test was running. Your belief in a fault drops. A three-node model makes this pattern precise.

By the BayesLab team · Updated 18 September 2026 · 7 min read

Two explanations, one observation

Consider a fictional laboratory alarm with two possible triggers: an equipment fault and a scheduled test. Let Fault and Test each have states Yes/No, with priors 10% and 20%. Assume those roots are independent. Alarm has states On/Off, and both roots point into it: Fault → Alarm ← Test.

This shared-child pattern is called a collider. Before looking at the alarm, knowing that a test occurred tells us nothing about the fault in this model. Once we know the alarm is on, the two explanations can compete.

Illustrative alarm response probabilities
FaultTestAlarm OnAlarm Off
YesYes99%1%
YesNo90%10%
NoYes80%20%
NoNo1%99%

Calculate the first update

There are four ways to produce an alarm. Weight the On probability in each row by the corresponding root probabilities. The total is 0.0198 + 0.072 + 0.144 + 0.0072 = 0.243.

Of that total, the first two contributions include a fault. Their sum is 0.0918. Observing Alarm = On therefore raises P(Fault) from 10% to 0.0918 / 0.243, approximately 37.78%.

Now reveal the test

If Test = Yes is also observed, restrict the calculation to the rows where a test happened. Within those rows, a fault produces an alarm with probability 0.99 and no fault with probability 0.80. Apply Bayes’ rule again:

P(Fault | Alarm On, Test Yes) = (0.10 × 0.99) / (0.10 × 0.99 + 0.90 × 0.80) ≈ 12.09%

The test explains much of the alarm, so the fault becomes less likely than it was after observing the alarm alone. It does not become impossible. In fact it stays slightly above its 10% prior, because the alarm remains a little more likely when a fault is present.

Reproduce the sequence

In BayesLab, start a blank network. Use Chance node (C) to add variables and the States tab to name their outcomes. Use Connect (A) to link parent to child, then select each node’s Table tab to enter its probabilities. The tables below use percentages: enter values such as 20% explicitly. Match the state labels, not just the order of the rows. Set observations in the Evidence tab and clear them between experiments.

  1. Create Fault, Test, and Alarm with the states, links, priors, and four CPT rows above.
  2. With no evidence, note Fault = 10%. Observe only Test = Yes: Fault should remain 10%.
  3. Clear Test, then observe Alarm = On: Fault should rise to 37.78%.
  4. Keep the alarm observation and add Test = Yes: Fault should drop to 12.09%.
  5. Record all three beliefs and explain which new information caused each change.

What the graph does—and does not—say

A collider explains why conditioning can create dependence. The exact direction and size of an update also depend on the numbers. Do not infer from the graph alone that every pair of causes always “competes” in the same numerical way. These are assumptions about this alarm, not a universal rule about all alarms.

For the contrasting chain pattern, continue with conditional independence. Further reading: CMU’s Bayesian network notes introduce collider dependence.