Chapter 5 Interventions in Theorymaker
5.1 What is an intensity variable?
Variables in Theorymaker mostly have values between 0 and 1. These are called “intensity variables”.
5.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
; intervention = .5 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.)
5.3 Specifying the contour of each influence variable
In Theorymaker, causal links are specified with indented lines:
You can use a dot or a space to indent the lines.
To say something about each causal link, or for example to decorate it, you put a specification in brackets just in front of the name of the influencing variable, like this:
It’s the same for specifying the contour:
(contour=straight)(the default. I don’t say “linear” as that can mean other things too)
… and each of these options can be reversed, e.g. “reversed straight” ( = NOT for binary variables).
5.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
5.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.
5.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)
- similarity (a measure of dispersion, so if all incoming variables are the same, the similarity is 100%)
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).
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
(.9--.3) after a variable name to designate a variable as
; intervention=.9; base=.3.
(--.3) to designate a variable as base=.3.
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.
adds an intervention arrow.
Is visually the same as this …
A; definition=some definition B C
Either version makes dashed lines, indicating that A is defined by B and C.