Understanding Model
Behavior Using Loops That
Matter
Billy Schoenberg
&
Pal Davidsen
UNIVERSITY OF BERGEN (
69e@
High-level ideas, the formation of the
method
¢ By studying the relationship between variables in the system we can
determine loop impact on the behavior of the model
¢ All relationships must be examined in isolation using values
calculated by the model
- Independent variable values are never manipulated
- This means that the model must be changing in order for this
method to analyze it
- Ensuring model consistency, variable values are sacred and
consistent with the model
- Discontinuity should not be made as an artifact
¢ Using link scores we can determine the magnitude and direction of
the connection strength between the independent and dependent
variable (AKA strength and polarity between...)
- Ex: A*B=C
- In plain English: The changes in A & B have to describe all of th
change in C for each and every dT
¢ All connections between variables are links (flows->stocks, stocks‘
>flows, converter->converter)
69e@
Getting in-depth with link scores
¢ Link scores contain two components (within a single
number) polarity is represented via sign[+,-], strength is
represented via magnitude [0-1].
- A link score of +1.0 (reinforcing polarity) means that
100% of the behavior in the dependent variable is
explained by the independent.
* To calculate link scores in isolation we (typically) must
recalculate each equation multiple times to measure the
true impact of the independent variable on the
dependent variable holding all other independent
variables constant per dT
69e@
High-level overview of the mechanics
* Ex model: T[O -> 10]: C=A*B , F=C+D, , A = J(F-A), B=TIME,
D=5
¢ Link scores are calculated for each link in the model for each
dT
- Links: A->C, B->C, C->F, D->F, F->A
- Method requires: ABS(LS,,...)) + ABS(LS|5..4)) = 1.0
- Method requires: ABS(LS,-..,;) + ABS(LS,,..,;) = 1.0
° In this example model:
¢ LSip.sf) = 0.0, because D never changes, D->F has no impact
¢ LSics) = 1.0, because C changes and D never changes C->F contains
all of the impact
- ABS(LS,,..,;) = 1.0, Because A is influenced only by F (from
the user perspective)
Before we get too deep with link %¥®
scores...
What do we use them for?
* Loop scores are calculated for each loop in the model for
each dT
- Multiply the scores for each of the links together ***
this does not take into account fully contained loops
(see later slides) - We will discuss loop scores in depth
later on
* My point here is that we can use link scores to say
things about loops
69e
Depending on the kind of the link, there
are 2 methods for calculating link scores,
in preparation for calculating loop scores
* Flow -> Stock
- We treat the links between flows and stocks separately. The integration of the stock
necessitates this
* With change in dependent variable
- Main method, used for most relationships, requires that there is a change in the dependent
variable
- Ex: T1:5+5=10, T2: 5+6=11
* Not covered: Without change in dependent variable
- The links in which this variable appears as an independent variable has a link score(s) of 0
- AKA we can skip calculating the link scores for the independent variables leading into this
variable because we know that when we use this dependent variable as an independent
variable in the next link in the loop, that we will get a link score of 0. This means that this
method does not apply without change (unless we perturb system, shock it out of
equilibrium)
Calculating link scores
Flow->Stock
UNIVERSITY OF BERGEN (
69e@
Flow-> Stock Link Score Method
¢ Link score
- Inflow: flow / SUM(ABS(Flows))
- Outflow: -flow / SUM(ABS(Flows))
- Each flow is responsible for a change in the stock
relative to the total (absolute) magnitude of all the
flows into and out of (i.e. influencing) the stock
¢ This method yields both parts of the link score,
magnitude AND polarity
¢ Remember that this is a normalization process, it ensures
that the link score is in the range [-1, 1] inclusive
Calculating link scores with
change in dependent
variable, not Flow->Stock
69e@
Calculating a link score magnitude:
Simple
° Ex equation:
- T[1->2] dT = 1: A+B=C
¢ PCc, = Potential change of C with [| Ff FF FI
respect X Time 1 5 5 10
- Ex: PCc, -> Potential change of C
with respect to X, Let only X vary "©? ? 8
- PCc, = 7 +5 =12 (Let onlyA PCC, 5 F 7
vary)
- PCc, = 5 + 6 = 11 (Let only B PCC, 5 6 11
vary)
4 . Link Score .67 33
* Link Score (non-normalized)
- T2: A->C = (PCc, - Cy)/ (Cy -
Cn)
- T2: A->C = (12-10)/(13-10) = .67
69e@
Calculating a link score magnitude: With
change, full - Sometimes correct polarity
Ex equation:
- T[1->2] dT = 1: A*B =C 4
Stage 1 = Raw link score a
Stage 2 = ABS(Stage 1) times °
Link Score = Stage 1/ Time 2 4 2 8
SUM(Stage 2) = F 5 =
Link Score
- A->C: -3/(3+3) = -0.5 = a : :
- B->C: 3/(3+3) = 0.5 Stage 1 3 3
The raw link scores are Stage 2 3 3
normalized to ensure LS[x->y] is
between the range [-1,1] Link Score -0.5 0.5
inclusive
- Works just like we do for
flows!
69e@
Calculating a link score magnitude: With change,
full - Sometimes correct polarity, example error
Ex equation:
- T[1->2] dT = 1: (A+B)/C = D
en Seine er
Stage 2 = ABS(Stage 1)
Time 2 10 4 5 2.8
Link Score = Stage 1 /
SUM(Stage 2) WRONG!! ms a 7 2 a
Link Score Magnitude = Stage 2 °C, 7 4 3 3.67
/ SUM(Stage 2) PCd, 7 D 5 18
The polarity here is wrong Sane = "sag 16
because we measure our
change based on the change in %#9°? ° lc
D with the impact of all the Link Score -0.349 -0.232.-0.419
wrong Polarity
independent variables
- We’re not using our potential
changes!
Okay lets talk about
polarity now
UNIVERSITY OF BERGEN (
69e@
What is polarity?
° Ex: C = f(A,B) - Cis a function of A and B
* In English as A goes up, ignoring B, C does what? [goes up, goes down]
¢ In math speak... the sign of the first order derivative of A matches the
sign of the first order derivative of C (calculated with a constant B)
(Richardson)
* Translating the math speak back into English
- If Ais getting bigger (positive first derivative) and C is getting bigger,
then A and C are positively correlated, that is a positive polarity
- If Ais getting smaller (negative first derivative) and C is getting
smaller, then A and C are positively correlated, that is a positive
polarity
- If Ais getting bigger and C is getting smaller, A and C are negatively
correlated, that is a negative polarity
- If Ais getting smaller and C is getting bigger, A and C are negatively
correlated, that is a negative polarity
69e@
Calculating a link score sign
(polarity)
Ex equation:
Jowe hve enough All
Do we have enough
information to determine the
polarities of the following links:
- A->D? Yes
- B->D? No
- C->D? Yes
B->D doesn’t matter, B is
constant, its link score
magnitude is 0 and -0 == +0
As long as we have a change in
the independent variable we
can determine polarity!
2 10 2 5 2.4
69e@
Calculating a link score sign (polarity) Cont’d
Ex equation:
- T[1->2] dT = 1: (A+B)/C = D
PCd,, = Potential change of D with respect ee ee ee ee
x 2 3 3
Time 1 U
- PCd, = (10 + 2)/3 = 4 (only A varies)
- PCd, = (7 + 2)/5 = 1.8 (only C varies) Time2 10 2 5 2.4
Ax: Change in X over Time
PCd, 10 2 3 4
- Aa=10-7=3
- Ac=5-3=2 PCd. 7 2 5 1.8
APCd,: Change in D with impact of X only
- Ad, = PCd, - d, ox : :
= Adi= = 4 3)=el APCd, il “12
- Ad, = 1.8-3=-1.2
Sign = SIGNUM(APCd, /Ax) sign ae om
- Sign A = SIGNUM(1/3) = 1.0
- Sign C = SIGNUM(-1.2/2) = -1.0
69e@
Calculating a link score sign (polarity) Cont’d #2
- Shifting polarity (C->D)!
Ex equation:
- T[2->3] dT = 1: (A+B)/C = D
PCd,, = Potential change of D with respect ee ee ee ee
x 2 3 3
Time 2 U
- PCd, = (10 + 2)/3 = 4 (only A varies)
- PCd. = (7 + 2)/-1 = -9 (only C varies) Time3 10 2 a -12
Ax: Change in X over Time
PCd, 10 2 3 4
- Aa=10-7=3
- Ac=-1-3=-4 PCd, 7 2 1 9
APCd,: Change in D with impact of X only
- Ad, = PCd, - d, ox : =
= Adi= = 4 3)=el APCd, il -12
- Ad, = -9-3 =-12
Sign = SIGNUM(APCd, /Ax) sign ae go
- Sign A = SIGNUM(1/3) = 1.0
- Sign C = SIGNUM(-12/-9) = 1.0
Okay - lets talk about loops
UNIVERSITY OF BERGEN (
69e@
Model #1: Bass Diffusion, Simple Discussion of
Loops
=) 1L0->15]
. . - Inflection point = 9.5625 to 9.625
Balancing Reinforcing
* Balancing
- probability of contact with
potentials
- potentials contacts with adopters
- adoption from word of mouth
- adopting
Potential
Adopters
Adopters
=
contact rate
\
adoption pcre
faction contacts
\ \
\ adoption frm Qe ;
\\word of molth ©
Martetsiae Of — - potential adopters
_— \ potentials gfntact: r .
Pchenity al Na vathagieteta ° Reinforcing
contact with potentials
- adopter contacts
- potentials contacts with a adopters
- adoptions from word of mouth
- adopting
- adopters
Calculating a loop
(T=1)
¢ Calculate link score for each
link in the loop at time T
¢ Multiply all link scores
together to generate the Non
Normalized Loop Score
¢ Normalize Loop Score across
all loops in model
- Sum all non normalized
loop scores, take this
loops score as a
percentage of the whole
- Just like link scores
ensures values are in the
range [-1, 1] inclusive.
69e@
score: Balancing
probability_of_contact_with_potentialspotentials_contacts_wit
h_adopters
potentials _contacts_with_adopters>adoption_from_word_of_mo
ut
adoption_from_word_of_mouth-adopting
adopting—potential_adopters
potential_adopters—probability_of_contact_with_potentials
Non-Normalized Loop Score
Loop Score
1E-06
1
Calculating a loop
probability_of_contact_with_potentials>potentials_contacts_wi 0. ey
th_adopters
625)
potentials contacts_with_adopters>adoption_from_word_of_m
outh a
adoption_from_word_of_mouth-adopting al
adopting—potential_adopters -1
potential_adopters—probability_of_contact_with_potentials al
0.488313
Raw Loop Score il
0.488313
Loop Score a
69e@
score: Balancing
i ES)
probability_of_contact_with_potentials>potentials_contacts_wi 0. pueies
th_adopters
ink (T:
potentials contacts_with_adopters>adoption_from_word_of_m
outh a
adoption_from_word_of_mouth-adopting al
adopting—potential_adopters 1
potential_adopters—probability_of_contact_with_potentials al
0.999784
Raw Loop Score 9
0.999784
Loop Score 9
tes
69e
Bass Diffusion Loop Impact
Loop Impact Bass Diffusion
Balancing
Reinforcing
Loop Impact Bass Diffusion:
Magnitude Only
ab 3 5 7 9 11, 13 15
Balancing
Reinforcing
69e@
Model #2: Escalation, Discussion of Contained
vs. Containing Loops
* Containing (Reinforcing)
- their desired weapons
- changing their weapons
their weapons
- our desired weapons
- changing our weapons
our weapons
* Our Weapons (Balancing,
contained)
et - changing our weapons
- our weapons
¢ Their Weapons (Balancing,
contained)
- changing their weapons
- their weapons
Their
Weapons changin
their weapons
our desired
safety margin
our desired
esl their time
tochange
\ Our
Weapons
=]
changing
our weapons
“their desired”
‘our time
0 change
69e@
What is a contained loop?
changing
their weapons
¢ A contained loop is a loop
. . our desired
where all variables either: sey ate
: raf QO
- Are in the containing loop earns
- Or not in any loop except
! theirtime
to change.
Our
Weapons
for the contained loop =| le
safety margin
ourtime
lo change
¢ The theoretical loop in red is
still contained!
69e@
Escalation Model Key Results
Escalation Model Key Results
0 5 10 15 20 25 30
Our Weapons Their Weapons Total Weapons
69e@
Contained vs Containing Loops
link scores, the containing loop
will ALWAYS be less impactful then changing_our_weapons~our_weapons 1
the contained loops
our_desired_weapons—changing_our_weapons 0.590163934
- We need to correct for the :
effect of the comingled our_weapons—changing_our_weapons 0.409836066
influence changing_their weapons—their_weapons Al
Loop (T=0) Raw Without Raw Corrected their_desired_weapons>changing_their_ weapons oS
Correction
Containing 0.295081967 0.713047568 their_weapons—changing_their_weapons -0.5
Our Weapons -0.409836066 -0.24187046 their_weaponsour_desired_weapons Al
Their Weapons -0.5 70.25
oOur_weapons~their_desired_weapons al
69e@
How do we correct for the undue influence of
contained loops?
¢ In this model there are two “modulator
links”.
- our_desired_weapons->changing_our_weapons
- their_desired_weapons-
>changing_their_weapons wate ‘
. . jason, changing
° These links modulate the impact of the outchved ae
contained loops Sate eT,
- They are the interface between the
contained loop and the containing
loop wks
- Destination variable is first variable 7
in both loops.
- Source variable must not be in the oO ek aes
contained loop to change
- These are the locations that the
containing loop changes the
acceleration of (changes the
gearing of, or directly influences)
the contained loop
69e@
Cont’d: How do we correct for the undue
influence of contained loops?
¢ For each contained loop we use
its modulator link to determine
the percentage of the contained
loop non-normalized loop score © waters tang
to reallocate to the major loop ou eies, - O}
¢ Stated another way, the impact
of the containing loop on the
contained loop is equal to one
minus the link strength of the
modulator link 6
¢ It is that resulting impact that Stine
needs to be removed from the
impact of the contained loop
and assigned to the containing
loop
their desired
safety margin
69e@
Cont’d #2: How do we correct for the undue
influence of contained loops?
¢ We multiply the link strength of the
modulator link by the raw loop score
of the contained loop, which gives
us the correct impact of the a7
contained loop. es) eee
* We then take the impact which was seiay rea —
removed from the contained loop
and add it to the impact of the
containing loop (Conservation of
changing
their yeapons
energy)
* Be sure to do above step oe iS
transferring magnitude ONLY. AKA if oO ssleymaran
to change
containing loop is reinforcing, but
contained is balancing, you add the
magnitude, of the transferred
impact, you don’t subtract
magnitude from the containing loop!
69e
Escalation Loop Impact
Loop Impact Escalation
Containing
Our Weapons (Contained)
Their Weapons (Contained)
Loop Impact Escalation:
Magnitude Only
1.2
oe
0.8
0.6
0.4
0.2
_t PAA
3 5 7 9: a 13 1S
Containing
Our Weapons (Contained)
Their Weapons (Contained)