Emergence of Small-World Networks in an Overlapping-Generations Model of Social Dynamics, Trust and Economic Performance

Emergence of Small-World Networks in an Overlapping-Generations Model of Social Dynamics, Trust and Economic Performance (version 1.0.0)

We study the impact of endogenous creation and destruction of social ties in an artificial society on aggregate outcomes such as generalized trust, willingness to cooperate, social utility and economic performance. To this end we put forward a computational multi-agent model where agents of overlapping generations interact in a dynamically evolving social network. In the model, four distinct dimensions of individuals’ social capital: degree, centrality, heterophilous and homophilous interactions, determine their generalized trust and willingness to cooperate, altogether helping them achieve certain levels of social utility (i.e., utility from social contacts) and economic performance. We find that the stationary state of the simulated social network exhibits realistic small-world topology. We also observe that societies whose social networks are relatively frequently reconfigured, display relatively higher generalized trust, willingness to cooperate, and economic performance – at the cost of lower social utility. Similar outcomes are found for societies where social tie dissolution is relatively weakly linked to family closeness.

Release Notes


This is a companion discussion topic for the original entry at https://www.comses.net/codebases/d34b6370-490c-483c-bcf2-94cbeab904fc/releases/1.0.0/

I am very interested on this topic and in Julia.
I have run your model on Julia 1.4 with almost no problem with the following exception: module ModelDynamic which gives the error premature end of input.
When do you think a paper or documentation about this code would be available?

1 Like

Hi,

I have just checked if the code works on Julia 1.4 and it works correctly. Just follow the instructions in the README.txt. In the terminal first run command

julia installpkg.jl

to install required packages and then:

julia model_dynamic.jl

to run the model.

If you have any problems with this please respond to me in this thread copy-pasting what you see in the terminal so that I can diagnose more easily what is the problem.

The paper related to this model should be published in early April 2020 and then I will update the reference to it on CoMSES.

1 Like

Here is what I see in terminal (and also 25 txt files on main folder):

1       0.5     0.5     [2.9709461723918533 0.271126692920949]
2       0.5     0.5     [2.984939372151493 0.2635149290210593]
Eigenvalue centrality did not converge after 1000 iterations.
3       0.5     0.5     [2.9690511893042713 0.27999059266227655]
4       0.5     0.5     [2.9849373822639107 0.2732504720267364]
5       0.5     0.5     [2.9791731112433086 0.27614745738015445]
6       0.5     0.5     [2.9872155344730915 0.26985589648073716]
7       0.5     0.5     [2.9791362021789425 0.2919025674786043]
8       0.5     0.5     [2.977829179632989 0.2704581654642556]
9       0.5     0.5     [2.951447774727969 0.2725689490618205]
10      0.5     0.5     [2.9737391771103203 0.2833269998099943]
11      0.5     0.5     [2.971639645583944 0.28672521342555074]
12      0.5     0.5     [2.9647935564003114 0.2684610212395681]
13      0.5     0.5     [3.0019762389053217 0.266216775940275]

But I had a problem installing the package Statsbase:

ERROR: LoadError: Unsatisfiable requirements detected for package StatsBase [2913bbd2]:
 StatsBase [2913bbd2] log:
 ├─possible versions are: [0.24.0, 0.25.0, 0.26.0, 0.27.0, 0.28.0-0.28.1, 0.29.0, 0.30.0, 0.31.0, 0.32.0-0.32.2, 0.33.0] or uninstalled
 ├─restricted to versions 0.32-0.33 by Agents [46ada45e], leaving only versions [0.32.0-0.32.2, 0.33.0]
 │ └─Agents [46ada45e] log:
 │   ├─possible versions are: 2.4.0 or uninstalled
 │   └─Agents [46ada45e] is fixed to version 2.4.0
 └─restricted to versions 0.25.0 by an explicit requirement — no versions left

The reason is you have other packages installed in your computer (StatsBase.jl has recently changed a version and a newer version is required by Agents.jl).

CoMSES requires full reproducibility, that is why I have specified the Julia version 1.0 under which the project was developed and exact package versions when it was developed by:

using Pkg

Pkg.add(PackageSpec(name="LightGraphs", version="1.2.0"))
Pkg.add(PackageSpec(name="StatsBase", version="0.25.0"))

However, you can (relatively) safely just write:

Pkg.add("LightGraphs")
Pkg.add("StatsBase")

to install latest versions of the packages and all should work.

Reproducibility is unfortunately a hard thing to manage sometimes.

1 Like