The covariance approach to quantitative evolutionary economics
Download
Report
Transcript The covariance approach to quantitative evolutionary economics
Exploring 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
1
KISS and TAMAS: Conflicting principles?
KISS = Keep It Simple, Stupid!
TAMAS = Take A Model, Add Something!
Variant for Lsd modellers:
TAMAM = Take A Model, Add Marco!
Principle for cumulative modelling
KISS = TAMAS?
A slogan from the US army during World War II
Generally acknowledged by scientific modellers
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!
2
TAMAKISS with a Nelson-Winter model
Capital accumulation
Numi
Technical change
fi
Short-run process
3
Simplifying the Nelson-Winter model:
Short-term and capital accumulation
Reuse our model of replicator dynamics!
Replicator equation
N[t]=N[t-1](1+a(f-af)/af);
4
Lsd code for replicator dynamics
EQUATION("Num")
/* Replicator dynamics:
N[t]=N[t-1](1+a(f-af)/af) */
v[0]=VL("Num",1);
v[1]=V("a");
v[2]=V("f");
v[3]=V("af");
v[4]=v[0]*(1+v[1]*(v[2]-v[3])/v[3]);
RESULT(v[4])
EQUATION("af")
/* Average fitness */
v[0]=0; v[1]=0;
CYCLE(cur, "Species")
{v[0]+=VLS(cur,"Num",1);
v[1]+=VLS(cur,"Num",1)*VS(cur,"f");}
RESULT(v[1]/v[0])
//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 */
5
RESULT( VL("f",1)+UNIFORM(-.2,.2) )
Start by copying the model
Find your original model
in Browse Model window
Edit/Copy
Edit/Paste
Write RepDyn2004 in
model name
Write rd2004 in dir name
OK
Write a description
Save description
Goto model equations
6
Introducing a control variable for
change of fitnesses
Case 1: Fixed fitnesses (productivities)
Case 2: Random walk of fitnesses
f[t] = f[t-1];
f[t] = f[t-1] + UNIFORM(-.2,.2);
Allowing for both cases
if RandWalk==0 then f[t] = f[t-1];
if RandWalk==1 then f[t] = f[t-1] + UNIFORM(-.2,.2);
7
Specifying 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
8
Rewrite equation for fitness (f)
EQUATION("f")
/*
Calculation of fitness
If RandWalk = 0, then fixed fitnesses
If RandWalk = 1, then random walk of fitnesses
*/
v[0]=V("RandWalk");
if (v[0]==0) v[1]=VL("f",1);
if (v[0]==1) v[1]=VL("f",1)+UNIFORM(-.2,.2);
RESULT(v[1])
9
Start 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!
10
Add simple statistics
Size of total population
Population shares of species
TotNum = Sum(Num)
s = Num/TotNum
Inverse Herfindahl index
Standard concentration indicator in industrial economics
InvHerf = 1/Sum(s^2)
Between 1 and the number of species
11
Implement simple statistics
EQUATION("TotNum")
/* Total number of members of the population */
v[0]=0;
CYCLE(cur, "Species")
{v[0]+=VLS(cur,"Num",1);}
RESULT(v[0])
EQUATION("s")
/* Population share */
v[0]=V("Num");
v[1]=V("TotNum");
RESULT(v[0]/v[1])
12
Change 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
13
Add concentration index
EQUATION("InvHerf")
/* Inverse Herfindahl index = 1/SUM(s^2) */
v[0]=0;
CYCLE(cur,"Species")
{
v[1]=VS(cur,"s");
v[0]=v[0]+v[1]*v[1];
}
RESULT(1/v[0])
… Change model structure and check concentration
dynamics. Then kill the model
14
The 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
15
Introduce 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
v[0] = V("s");
v[1] = V("Num");
v[2] = V("Fissions");
v[3] = RND-0.5;
if (v[0]>0.25 && v[2]==1 && poisson(0.05*v[3])>0)
{cur=p->up;
cur=ADDOBJS_EX(cur,"Species",p);
WRITELS(cur,"Num",0.4*v[1],t);
WRITELS(cur,"s",0.4*v[0],t);
WRITELS(p,"Num",0.6*v[1],t);
WRITELS(p,"s",0.6*v[0],t);}
RESULT(v[2])
16
Change 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
17
Introducing fission in replicator dynamics
18
Dynamics of the Herfindahl index
19
Defining and calculating statistics
Population information for two points of time (t , t )
Initial population share of each species s i
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
Cov( wi , zi ) si ( wi w )( zi z )
20
Price’s partitioning of evolutionary change
Total evolutionary change
Selection effect + Innovation effect
z
Cov(w i , z i )
w
E( wi zi )
w
21
The meaning of Price’s equation
The innovation effect is the creative part
The selection effect means that some entities are
promoted while other entities shrink
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
It represents Schumpeter’s “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!
22
Price’s statistics – reproduction coefficients
EQUATION("Repro")
/* Repro = Num[t]/Num[t-1]
The reproduction coefficient of the species */
RESULT(V("Num")/VL("Num",1))
EQUATION("ReproMean")
/* Weighted mean of the species' reproduction coefficients */
v[0]=0;
CYCLE(cur,"Species")
{v[1] = VLS(cur,"s",1);
v[2] = VS(cur,"Repro");
v[0] = v[0]+v[1]*v[2];}
RESULT(v[0])
23
Price’s statistics – selection as covariance
EQUATION("Covar")
/* Cov(Repro,A) =
SUM[ s[t-1]*(Repro[t-1]-ReproMean[t-1])*(f[t-1]-af[t-1])) ]
Covariance between species' reproduction coefficients and fitnesses */
v[0]=0;
v[3] = V("ReproMean");
v[5] = V("af");
CYCLE(cur, "Species")
{v[1] = VLS(cur,"s",1);
v[2] = VS(cur,"Repro");
v[4] = VLS(cur,"f",1);
v[0] = v[0] + v[1]*(v[2]-v[3])*(v[4]-v[5]);}
RESULT(v[0])
24
Covariance in simple replicator dynamics
25
Covariance in repdyn random walk
26
Covariance in repdyn and fissions
27
Covariance in randwalk repdyn and fissions
28
Price’s statistics – the innovation effect
EQUATION("InnoEffect")
/* E(s[t]*(f[t]-f[t-1])) / ReproMean
The innovation effect as defined by George Price's equation. */
v[0]=0;
v[10] = V("ReproMean");
CYCLE(cur, "Species")
{
v[1] = VS(cur,"s");
v[2] = VS(cur,"f");
v[3] = VLS(cur,"f",1);
v[0] = v[0] + v[1]*(v[2]-v[3]);
}
RESULT(v[0]/v[10])
29
Innovation effect in simple repdyn
30
Innovation effect in randwalk repdyn
31