A structural equation
Each variable that is not an input is defined by an equation in the variables it depends on, such as F = S ∧ O for a fire that needs a struck match and oxygen. The inputs are given their actual values.
A structural model gives each variable an equation in terms of the variables it depends on. To test a cause, set it to the other value and recompute everything downstream. If the effect changes, the variable is a but-for cause. Striking the match and the presence of oxygen both pass, and the test does not distinguish them.
Core ideas
Rates compare what happened. A cause is a claim about what would have happened otherwise, and a model is how the claim is computed.
Each variable that is not an input is defined by an equation in the variables it depends on, such as F = S ∧ O for a fire that needs a struck match and oxygen. The inputs are given their actual values.
To ask what would have happened, set a variable to its other value, leave the inputs alone, and recompute every variable that depends on it. The flipped variable ignores its own equation.
A variable is a but-for cause of an effect if the effect has a different value after the flip. This is the counterfactual “had the cause not occurred, the effect would not have”, computed.
The material
The equations first, the actual values second, and then the flip and what it does and does not tell you.
A fire starts when a match is struck in a room with oxygen. Write S for “the match is struck” and O for “oxygen is present”, each 1 if true and 0 if false. These are inputs: nothing in the model determines them. Write F for the fire.
A structural model lists the input variables with their actual values and gives every other variable an equation in terms of variables it depends on. The equations must not loop. The actual values are what solving them gives.
Solving the equations gives F = 1 ∧ 1 = 1. Now ask the counterfactual question. Set S to 0 and recompute: F = 0 ∧ 1 = 0. The fire does not occur, so the strike is a but-for cause. The lab's table shows three columns, the actual values, the values with the cause flipped, and a third column that the next lesson puts to use.
A variable C is a but-for cause of the effect E in a model when flipping C, leaving every input at its actual value and recomputing each variable that depends on C, changes the value of E.
Do the same for oxygen. Set O to 0 and F = 1 ∧ 0 = 0, so oxygen is a but-for cause too. Ordinary speech would call the strike the cause and the oxygen a condition. The equations contain no such difference: F = S ∧ O is symmetric in the two. Whatever separates a cause from a background condition is a matter of what is unusual, controllable or of interest, and the test does not decide it.
The third preset is a chain. A makes B happen, and B makes C happen: B = A, C = B, with A = 1. Flipping A sets B to 0 and then C to 0, so A is a but-for cause of C even though it acts only through B. The test follows the dependency downstream, which is why recomputing is required and a glance at the last equation is not enough.
What the lab computes is only as good as the equations. A model that leaves out a second source of fire, or treats two variables as independent that are not, gives a different verdict, and no step of the computation can notice. The model is a premise.
Hume added, almost in passing, a second definition of a cause: had the first object not been, the second would never have existed. The test above is that counterfactual with the words “had not been” replaced by a flip and a recomputation. It is exact for the model and it has a famous failure, in which an event is plainly a cause and the flip leaves the effect unchanged. The next lesson is about that failure.
Interactive
But-for, held fixed, and joint
Method
Four steps, in this order, for any situation you can describe in a few variables.
Name each thing that can be true or false, and mark those that nothing else in the model determines. Give each input its actual value.
Say what each depends on, using and, or and not. If two equations depend on each other, the model has a loop and must be redrawn.
Work from the inputs to the effect and check that the effect has the value it did in the case. If it does not, the model describes another case.
Set it to the other value, recompute everything that depends on it, and compare the effect. A change makes it a but-for cause.
Inputs S = 1, O = 1; the equation F = S ∧ O.
The test reports the strike and the oxygen in the same words. Choosing to call one of them the cause is a decision about what is unusual or of interest, and it is made outside the model.
Given a short description of a situation, you should be able to write its variables and equations, compute the actual values, flip a candidate cause, recompute, and say whether it is a but-for cause and what the model leaves out.
Something to change about this lesson? Write it down, tick it off when it is handled, and export the list when you want to act on it. Kept in this browser only: nothing is sent anywhere, and nobody is notified.
No recommendations yet for this lesson.