Chapter 7 Interventions in Theorymaker

7.1 What is an intensity variable?

Variables in Theorymaker mostly have values between 0 and 1. These are called “intensity variables”.

7.2 Setting base and intervention levels

You set the base level of a variable - the normal level, the level it has when you don’t intervene to change it - by typing e.g. ; base = .5 after its name. This is just the same syntax you use also for applying colours to a variable (e.g. ; colour = red). Levels can vary between 0 and 1 (you can think of these as 0% and 100%).

You set the intervention level of a variable by typing e.g. ; intervention = .8 after its name.

So here’s what you’d write for a variable with base 0 and intervention 1:

(Note that Theorymaker has also marked the Variable with a wedge symbol, see later.)

7.4 Specifying the strength of individual influences

Each causal link can have a “strength”, default 100%, otherwise less. e.g.:

The default is strength=1. Arrows with strength less than 1 are shown correspondingly thinner and with a different arrowhead. (This can be overridden by specifying the width directly, e.g. by adding width=4)

7.5 Specifying the residual

If any of the “strengths” of the incoming links is less than 100%, there is an additional “residual” setting for the consequence variable. Because otherwise, the value of the consequence variable is not fully specified - the shape of the function becomes squashed and doesn’t take up the whole y-axis. So for example, if the maximum incoming strength is 50%, the residual (also between 0 and 100%) can shift the squashed function up to about 50% up and down the y-axis.

7.6 Combinations: Ways in which the consequence variable can combine its influences

  • hard-add (just addition, but cuts off at 100%)
  • soft-add (the default: a kind of poor man’s sigmoid, but nicer because it can actually reach 0 and 100% unlike sigmoids)
  • multiply (the same as AND in the special case of binary variables)
  • smallest (also the same as AND in the special case of binary variables)
  • largest (the same as OR in the special case of binary variables)
  • average
  • similarity (a measure of dispersion, so if all incoming variables are the same, the similarity is 100%)


7.7 Flipping

Also, each consequence variable can be “flipped” in relation to the combination of its incoming variables. (We say “flipped” because the word “reversed” is used for the incoming contours). All of these combinations work with any number of incoming variables greater than 1).

7.8 Shortcuts

We so often set variables to ; intervention=1; base=0 that there is a special shortcut for that: just type !tick after the variable name:

My variable !tick

Type (.9--.3) after a variable name to designate a variable as ; intervention=.9; base=.3.

Type (--.3) to designate a variable as base=.3.

So this:

Variable 1 (1--0)
Variable 2 ( --0)

… means that we intervene to set Variable 1 to 100% rather than 0%, and that variable 2 just has a base level of 0, we don’t intervene on it.

.!str.95 is short for .(strength=.95). Doesn’t work for strength=1 because you don’t need it, that is the default.

This …


adds an intervention arrow.

This …

Is visually the same as this …

A; definition=some definition

Either version makes dashed lines, indicating that A is defined by B and C.