exploring evolutionary models with lsd n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Exploring evolutionary models with Lsd PowerPoint Presentation
Download Presentation
Exploring evolutionary models with Lsd

Loading in 2 Seconds...

play fullscreen
1 / 31

Exploring evolutionary models with Lsd - PowerPoint PPT Presentation


  • 133 Views
  • Uploaded on

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. KISS and TAMAS: Conflicting principles?. KISS = Keep It Simple, Stupid!

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Exploring evolutionary models with Lsd' - mio


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
exploring evolutionary models with lsd

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

kiss and tamas conflicting principles
KISS 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!
tamakiss with a nelson winter model
TAMAKISS with a Nelson-Winter model

Capital accumulation

Numi

Technical change

fi

Short-run process

simplifying the nelson winter model short term and capital accumulation
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);
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 */

RESULT( VL("f",1)+UNIFORM(-.2,.2) )

Lsd code for replicator dynamics
start by copying the model
Start 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
introducing a control variable for change of fitnesses
Introducing a control variable for change of fitnesses
  • Case 1: Fixed fitnesses (productivities)
    • f[t] = f[t-1];
  • Case 2: Random walk of fitnesses
    • 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);
specifying the regimes
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

rewrite equation for fitness f
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])
start model load config and add parameter
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!
add simple statistics
Add 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(s^2)
    • Between 1 and the number of species
implement simple statistics
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])
change model structure
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
add concentration index
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
the logic of fissions of species
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
introduce fissions of species
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])
change the model structure and check
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
defining and calculating statistics
Defining 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
    • Meanreproduction coefficient
    • Changein mean fitness
    • Variance of fitnesses
    • Covariance of reproduction coefficients and fitnesses
    • Regression of reproduction coefficients on fitnesses
price s partitioning of evolutionary change
Price’s partitioning of evolutionary change
  • Total evolutionary change  Selection effect + Innovation effect
the meaning of price s equation
The meaning of Price’s 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 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 ignoresecological effects
    • Thus it is a form of short-term evolutionary analysis
    • But short-term evolution is the starting point!
price s statistics reproduction coefficients
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])
price s statistics selection as covariance
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])
price s statistics the innovation effect
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])