Title: Exploring evolutionary models with Lsd
1Exploring evolutionary models with Lsd
- PhD Eurolab on Simulation of Economic Evolution
(SIME) - University of Strasbourg, April 2004
- Revised 8 April 2004
- Esben Sloth Andersen
- DRUID and IKE, Aalborg University, Denmark
2KISS and TAMAS Conflicting principles?
- KISS Keep It Simple, Stupid!
- A slogan from the US army during World War II
- Generally acknowledged by scientific modellers
- TAMAS Take A Model, Add Something!
- Variant for Lsd modellers
TAMAM Take A Model, Add Marco! - Principle for cumulative modelling
- KISS TAMAS?
- Not when the initial model is complex and ill
structured! - In this case we need a new principle!
- TAMAKISS Take A Model And Keep It
Simpler, Stupid!
3TAMAKISS with a Nelson-Winter model
Capital accumulation
Numi
Technical change
fi
Short-run process
4Simplifying the Nelson-Winter modelShort-term
and capital accumulation
- Reuse our model of replicator dynamics!
- Replicator equation
- NtNt-1(1a(f-af)/af)
5Lsd code for replicator dynamics
- EQUATION("af")
- / Average fitness /
- v00 v10
- CYCLE(cur, "Species")
- v0VLS(cur,"Num",1)
- v1VLS(cur,"Num",1)VS(cur,"f")
- RESULT(v1/v0)
- //EQUATION("f")
- / Unchanged fitness of Species. This version was
replaced by the next equation / - //RESULT( VL("f",1) )
- EQUATION("f")
- / Fitness of Species changed through random walk
/ - RESULT( VL("f",1)UNIFORM(-.2,.2) )
- EQUATION("Num")
- / Replicator dynamicsNtNt-1(1a(f-af)/af)
/ - v0VL("Num",1)
- v1V("a")
- v2V("f")
- v3V("af")
- v4v0(1v1(v2-v3)/v3)
- RESULT(v4)
6Start by copying the model
- Find your original modelin Browse Model window
- Edit/Copy
- Edit/Paste
- Write RepDyn2004 inmodel name
- Write rd2004 in dir name
- OK
- Write a description
- Save description
- Goto model equations
7Introducing a control variable for change of
fitnesses
- Case 1 Fixed fitnesses (productivities)
- ft ft-1
- Case 2 Random walk of fitnesses
- ft ft-1 UNIFORM(-.2,.2)
- Allowing for both cases
- if RandWalk0 then ft ft-1
- if RandWalk1 then ft ft-1
UNIFORM(-.2,.2)
8Specifying the regimes
- RandWalk Change of fitnesses?
- 0 no change 1 random walk 2 define
your own regime - Later we add
- Fissions Change in number of firms?
- 0 no change 1 fission of large species
- 2 define your own change rule
9Rewrite equation for fitness (f)
- EQUATION("f")
- /
- Calculation of fitness
- If RandWalk 0, then fixed fitnesses
- If RandWalk 1, then random walk of fitnesses
- /
- v0V("RandWalk")
- if (v00) v1VL("f",1)
- if (v01) v1VL("f",1)UNIFORM(-.2,.2)
- RESULT(v1)
10Start model, load config and add parameter
- Load Sim1.lsd configuration file
- Goto Population and add parameter RandWalk
- Initialise RandWalk to 0
- Goto Species, Initial values, Set all to 10 incr.
by -.5 - Run the model, then reload the config
- Set RandWalk 1 and rerun model. Then kill it!
11Add simple statistics
- Size of total population
- TotNum Sum(Num)
- Population shares of species
- s Num/TotNum
- Inverse Herfindahl index
- Standard concentration indicator in industrial
economics - InvHerf 1/Sum(s2)
- Between 1 and the number of species
12Implement simple statistics
- EQUATION("TotNum")
- / Total number of members of the population /
- v00
- CYCLE(cur, "Species")
- v0VLS(cur,"Num",1)
- RESULT(v0)
- EQUATION("s")
- / Population share /
- v0V("Num")
- v1V("TotNum")
- RESULT(v0/v1)
13Change model structure
- Add TotNum to Population (with save)
- Add s with time lag 1 to species (with save)
- Initialise s for all species to 0.1
- Reset RandWalk 0
- Run the model and check that it works correctly!
- Check what happens to s when RandWalk 1
14Add concentration index
- EQUATION("InvHerf")
- / Inverse Herfindahl index 1/SUM(s2) /
- v00
- CYCLE(cur,"Species")
-
- v1VS(cur,"s")
- v0v0v1v1
-
- RESULT(1/v0)
- Change model structure and check concentration
- dynamics. Then kill the model
15The logic of fissions of species
- Large species encounter varied pressures
- They tend to split into different species
- Large firms have conflicts and split
- I model fissions as a fixed propensity to split
- If population share is above 25
- Then the species will on average split once every
40 periods - Modelled as a Poisson process
- Result of fission Concentration is kept lower
16Introduce fissions of species
- EQUATION("Fission")
- / Fissions of species take on average place once
every 40 periods - if its population share is larger than 25. /
- V("Repro") // Ensure that reproduction
coefficient is calculated - v0 V("s")
- v1 V("Num")
- v2 V("Fissions")
- v3 RND-0.5
- if (v0gt0.25 v21 poisson(0.05v3)gt0)
- curp-gtup
- curADDOBJS_EX(cur,"Species",p)
- WRITELS(cur,"Num",0.4v1,t)
- WRITELS(cur,"s",0.4v0,t)
- WRITELS(p,"Num",0.6v1,t)
- WRITELS(p,"s",0.6v0,t)
- RESULT(v2)
17Change the model structure and check
- Add parameter Fissions to Population
- Initialise Fission 0 and RandWalk 0
- Add variable Fission to Species
- Run the model and check that nothing has changed
- Change Fission 1, and study the results
- Why is there no fissions at the end of the
simulation? - Change Fission 1 and RandWalk 1
- Study the results? What happens?
- Kill the model before proceeding
18Introducing fission in replicator dynamics
19Dynamics of the Herfindahl index
20Defining and calculating statistics
- Population information for two points of time
- Initial population share of each species
- Reproduction coefficient of each species
- Fitness of each species and its change
- Simple statistics
- Mean reproduction coefficient
- Change in mean fitness
- Variance of fitnesses
- Covariance of reproduction coefficients and
fitnesses - Regression of reproduction coefficients on
fitnesses
21Prices partitioning of evolutionary change
- Total evolutionary change ?
Selection effect Innovation effect
22The meaning of Prices equation
- The innovation effect is the creative part
- It takes place within the units, e.g. the firms
- It may be due to innovation, imitation, learning,
- It may also be due to intra-firm selection, e.g.
of plants - The selection effect means that some entities are
promoted while other entities shrink - It represents Schumpeters creative destruction
- Firms may try to avoid selection by imitation and
learning - The selection pressure sets the agenda for firms
- The Price equation ignores ecological effects
- Thus it is a form of short-term evolutionary
analysis - But short-term evolution is the starting point!
23Prices statistics reproduction coefficients
- EQUATION("Repro")
- / Repro Numt/Numt-1The reproduction
coefficient of the species / - RESULT(V("Num")/VL("Num",1))
- EQUATION("ReproMean")
- / Weighted mean of the species' reproduction
coefficients / - v00
- CYCLE(cur,"Species")
- v1 VLS(cur,"s",1)
- v2 VS(cur,"Repro")
- v0 v0v1v2
- RESULT(v0)
24Prices statistics selection as covariance
- EQUATION("Covar")
- / Cov(Repro,A) SUM st-1(Reprot-1-ReproMe
ant-1)(ft-1-aft-1)) Covariance between
species' reproduction coefficients and fitnesses
/ - v00
- v3 V("ReproMean")
- v5 V("af")
- CYCLE(cur, "Species")
- v1 VLS(cur,"s",1)
- v2 VS(cur,"Repro")
- v4 VLS(cur,"f",1)
- v0 v0 v1(v2-v3)(v4-v5)
- RESULT(v0)
25Covariance in simple replicator dynamics
26Covariance in repdyn random walk
27Covariance in repdyn and fissions
28Covariance in randwalk repdyn and fissions
29Prices statistics the innovation effect
- EQUATION("InnoEffect")
- / E(st(ft-ft-1)) / ReproMean
- The innovation effect as defined by George
Price's equation. / - v00
- v10 V("ReproMean")
- CYCLE(cur, "Species")
-
- v1 VS(cur,"s")
- v2 VS(cur,"f")
- v3 VLS(cur,"f",1)
- v0 v0 v1(v2-v3)
-
- RESULT(v0/v10)
30Innovation effect in simple repdyn
31Innovation effect in randwalk repdyn