Stochastic Chaotic Market Competition

Stochastic Chaotic Market Competition preview image

1 collaborator

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 7.0.2 • Viewed 7 times • Downloaded 0 times • Run 0 times
Download the 'Stochastic Chaotic Market Competition' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


THE MODEL

BY Carlos Pedro Gonçalves and Carlos Rouco (2025)

Lusófona University (https://www.ulusofona.pt/en/), School of Economic and Organizational Sciences (https://eceo.ulusofona.pt/), Civil Aviation and Airports Management Department.

The current model simulates a market competition dynamics in a network of competing companies for a noisy coupled logistic map. The network links correspond to competition links between the companies, a less connected company has a niche strategy that allows it greater differentiation, while a more connected company corresponds to a company that has a wider range of market presence (market leader).

The network uses Watts–Strogatz small-world model (https://en.wikipedia.org/wiki/Watts%E2%80%93Strogatz_model).

The model is based on a coupled logistic map with driven growth rate.

In this case each company's sales are given by the market sales' carrying capacity multiplied by the company's fitness for each trading round:

s(i,t)=fitness(i,t)*K

The fitness is updated by a coupled stochastic logistic map with a varying grow rate with a seasonal component in accordance with the following algorithm:

Step 1: the fitness driver is updated incorporating a varying logistic growth rate factor r(i,t) and a stochastic shock in accordance with the equation:

F(fitness(i,t-1)) = (1 - stochastic-shock-level) * r(i,t) * fitness(i,t-1) * (1 - fitness(i,t-1)) + stochastic-shock-level * u(i,t)

The stochastic factor u(i,t) is IID noise characterized by a uniform distribuion on the unit interval, while the local growth rate factor is updated by the conditional rule:

if r + A * fitness(i,t-1) * (sin(2 * pi * t / period) + 1) > 4 then r(t)=4 else r(t) = r + A * fitness(i,t-1) * (sin(2 * pi * t / period) + 1)

The seasonal sinusoidal component thus has a varying amplitude that depends upon the fitness value.

Step 2: is the standard local coupled map on a network using the weighted average between the local fitness driver function F(fitness(i,t-1)) calculated in step 1 and the average of the network neighbors (the direct competitors) fitness driver values , leading to the equation:

fitness(i,t) = (1-coupling) * F(fitness(i,t-1)) + coupling *

This last rule simulates a tension between local mean field convergence due to competition and company specific factors driving the company's sales F(fitness(i,t-1)).

HOW TO USE IT AND THINGS TO TRY

The interface is comprised of network parameter sliders and dynamical map sliders.

The network specific sliders are comprised of the market size in terms of number of companies, the initial neighborhood size and rewiring probability for the Watts–Strogatz network to be built. The Histogram for the degree distribution is provided.

The user can try different network parameters and evaluate their impact on the dynamics.

The sliders for the dynamical map include:

a) The parameter K which corresponds to the logistic map's carrying capacity, in this case, applied to the evolutionary economic game dynamics;

b) r is the base growth rate factor as per explained above;

c) init-finess is the initial fitness level that is set the same for every company;

d) coupling is the network coupling used for the coupled map dynamics as explained above;

e) stochastic-shock-level is the level of the stochastic component in the stochastic logistic map;

f) A is the amplitude for the seasonal component in the time-varying local growth rate factor as addressed above;

g) period is the period for the seasonal component in the time-varying local growth rate factor as addressed above.

h) the transient slider is used to drop possible transients in plotting, the trading rounds until the transient time are not plotted

The plots show the dynamics for the mean sales and the standard deviation of sales in terms of times series charts and also on an scatterplot, which allow the user to see how the spatial dispersion around the mean sales and the mean sales are related. This allows for the study of synchronization and desynchronization dynamics and evaluate the overall economic dynamics of the market.

The growth rate vs mean fitness dynamics is also shown on a scatterplot.

NETLOGO FEATURES

The model incorporates the network extension and stochastic chaotic dynamics in a coevolutionary agent-based model, showing the applications of stochastic chaos to nonlinear economic dynamics.

CREDITS AND REFERENCES

The model should be cited as:

Gonçalves C.P. and Rouco C. (2025). Stochastic Chaotic Market Competition. Chaos Theory and Complexity Sciences Research Project. Lusófona University. https://sites.google.com/view/chaos-complexity

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

breed [companies company]

companies-own [fitness
               growth-factor
               sales
               fitness-driver
               degree
               ]

undirected-link-breed [competitors competitor]

extensions [nw]

globals [
  unique-degrees
  frequencies
  t]

to setup
  ca
  set t 0
  create-ordered-companies market-size 
  [
    set shape "circle"
    set size 1.2
    set fitness init-fitness
    set growth-factor r
  ]
  
 nw:generate-watts-strogatz companies competitors market-size init-neighborhood-size rewiring-probability
 ask companies [set degree count my-competitors]
 ask companies with [degree = 0] [ let target one-of other companies
                                               create-competitor-with target]
  
 ask companies [set degree count my-competitors
                ]
 layout-circle companies (market-size / 2)
 ask competitors [set color white]
 
 set-current-plot "Degree Distribution"
 set-current-plot-pen "Degree"
 set-plot-x-range 1 max [degree] of companies + 10
 histogram [degree] of companies
 
  
  
  
  reset-ticks
end 

to go
  tick
  set t t + 1
  ask companies [set growth-factor r + A * fitness * (sin(2 * pi * t / period) + 1)
                 if growth-factor > 4 [set growth-factor 4]         
                 set fitness-driver (1 - stochastic-shock-level) * growth-factor * fitness * (1 - fitness) + stochastic-shock-level * random-float 1.000]
  ask companies [set fitness (1 - coupling) * fitness-driver + coupling * mean [fitness-driver] of competitor-neighbors
                 set sales fitness * K
                 ]
  
  if ticks >= transient [do-plots]
end 

to do-plots
  let mean-sales mean [sales] of companies
  let sd-sales standard-deviation [sales] of companies
  
  set-current-plot "Mean Sales"
  set-current-plot-pen "Mean"
  plot mean-sales
  
  set-current-plot "Standard Deviation of Sales"
  set-current-plot-pen "Standard Deviation"
  plot sd-sales
  
  
  set-current-plot "Mean vs Standard Deviation"
  set-current-plot-pen "Mean vs SD"
  plotxy mean-sales sd-sales
  
  
  set-current-plot "Mean Growth Rate vs Mean Fitness"
  set-current-plot-pen "(r(t), fitness(t))"
  set-plot-x-range (r - 0.01) 4
  set-plot-y-range 0 1
  plotxy mean [growth-factor] of companies mean [fitness] of companies
end 

There is only one version of this model, created 1 day ago by Carlos Pedro S. Gonçalves.

Attached files

File Type Description Last updated
Stochastic Chaotic Market Competition.png preview Preview for 'Stochastic Chaotic Market Competition' 1 day ago, by Carlos Pedro S. Gonçalves Download

This model does not have any ancestors.

This model does not have any descendants.