Machine learning-assisted calibration of Agent-based Models: surrogate-based optimization with Genetic Algorithm and Particle Swarm Optimization
Organizations: Department of Industrial and Data Engineering Major in Industrial Data Science and Engineering Pukyong National University, Busan, Republic of Korea
Abstract
Calibrating an agent-based model (ABM) is difficult because its objective landscape is stochastic and rugged, and can be evaluated only through costly black-box simulations. This study adapts inner-loop surrogate-assisted evolutionary computation (SAEC) to ABM calibration by embedding a machine-learning surrogate within genetic algorithm (GA) and particle swarm optimisation (PSO). At each iteration, the surrogate screens the candidates and the simulator validates only the top 50%, reducing simulation demand while correcting surrogate errors. We evaluate a full factorial of 48 configurations combining two optimisers, five surrogates, and four calibration objectives on two contrasting ABMs, the Brock-Hommes asset-pricing model and the Island growth model. Parameter recovery is measured against pseudo-true values. Relative to the strongest pure-optimiser baseline, the best ML-assisted configurations reduce RMSE by 20.0% on Brock-Hommes and 63.8% on Island, while reducing computation time by 32.1% and 61.1%, respectively. ANOVA with Dunnett's post-hoc tests confirms significant time savings for every surrogate under both Brock-Hommes optimisers and under GA on Island. No surrogate differs significantly from the pure-optimiser baseline in parameter-recovery accuracy on Island; the reported accuracy gains are therefore best-configuration outcomes rather than average effects resolved at this sample size. The best surrogate-optimiser-objective combination changes with ABM complexity, indicating that surrogate-assisted calibration depends on the model and does not admit a universal default recipe.
Figures & tables
| Type | Parameter | Symbol | Pseudo-true value | Search bounds |
| Fixed global | Risk-free return | 1.05 | — | |
| Intensity of choice | 1.0 | — | ||
| Noise std dev | 0.05 | — | ||
| Fixed strategy | Strategy 1 trend | 0 | — | |
| Strategy 1 bias | 0 | — | ||
| Strategy 4 trend | 0 | — |
| Type | Parameter | Symbol | Pseudo-true value | Search bounds |
|---|---|---|---|---|
| Free (calibrated) | Knowledge diffusion locality | 0.01 | ||
| Labour productivity | 1.5 | |||
| Cumulative learning effect | 0.4 | |||
| Island probability | 0.4 | |||
| Willingness to explore | 0.1 | |||
| Initial number of firms | 50 |
| Objective | Parameter | Value |
|---|---|---|
| MSM | ||
| KS | , , | 1.0, 1.0, 1.0 |
| MIC | 3, 2 | |
| GSL-div | 3, 4 |
| Model | Parameter | Value | Parameter | Value |
| XGBoost | eta | 0.3 | max_depth | 6 |
| num_rounds | 100 | subsample | 1 | |
| colsample_bytree | 1 | min_child_weight | 1 | |
| lambda | 1 | alpha | 0 | |
| seed | 1 | |||
| Linear regression | learning_rate | 0.1 | epochs | 50 |
| Rank | Optimizer | Objective | ML Surrogate | Mean RMSE | SD | Time (s) |
|---|---|---|---|---|---|---|
| 1 | PSO-ML | MIC | ANN | 0.2286 | 0.1893 | 5932 |
| 2 | PSO-ML | MIC | LR | 0.2543 | 0.1472 | 5705 |
| 3 | PSO-ML | GSL-div | ANN | 0.2758 | 0.1667 | 5940 |
| 4 | GA | MIC | — | 0.2856 | 0.2600 | 8739 |
| 5 | GA | MSM | — | 0.3251 | 0.1567 | 8734 |
| 6 | PSO-ML | MIC | Random Forest | 0.3538 | 0.2672 | 5786 |
| Rank | Optimizer | Objective | ML Surrogate | Mean RMSE | SD | Time (s) |
|---|---|---|---|---|---|---|
| 1 | GA-ML | KS | ANN | 2.3862 | 1.0717 | 9307 |
| 2 | GA-ML | GSL-div | ANN | 3.3922 | 1.0623 | 11615 |
| 3 | GA-ML | KS | LR | 5.0387 | 3.3567 | 8935 |
| 4 | GA-ML | GSL-div | LR | 5.6716 | 2.4579 | 16865 |
| 5 | GA-ML | KS | SVM | 5.7752 | 5.0327 | 9558 |
| 6 | PSO-ML | KS | Random Forest | 5.9595 | 5.6590 | 8645 |
| GA | PSO | ||||||
|---|---|---|---|---|---|---|---|
| Surrogate | Mean | Mean | |||||
| LR | 0.940 | 0.462 | 0.657 | 0.006 | 1.000 | ||
| SVM | 0.832 | 0.354 | 0.558 | 0.094 | 0.864 | ||
| RandomForest | 0.710 | 0.232 | 0.108 | 0.556 | 0.095 | 0.859 | |
| XGBoost | 0.645 | 0.168 | 0.359 | 0.607 | 0.044 | 0.994 | |
| ANN | 0.563 | 0.085 | 0.883 | 0.429 | 0.223 | 0.169 | |
| GA | PSO | ||||||
|---|---|---|---|---|---|---|---|
| Surrogate | Mean | Mean | |||||
| LR | 6.782 | 1.376 | 0.768 | 11.851 | 2.849 | 0.346 | |
| SVM | 7.838 | 0.320 | 0.999 | 12.762 | 1.938 | 0.699 | |
| RandomForest | 8.363 | 0.205 | 1.000 | 13.928 | 0.772 | 0.990 | |
| XGBoost | 8.884 | 0.726 | 0.978 | 14.465 | 0.235 | 1.000 | |
| ANN | 4.955 | 3.204 | 0.081 | 11.442 | 3.258 | 0.228 | |
| GA | PSO | |||||
|---|---|---|---|---|---|---|
| Surrogate | Mean (s) | (s) | Mean (s) | (s) | ||
| LR | 5,507 | 3,275 | 5,717 | 3,434 | ||
| SVM | 5,345 | 3,438 | 5,712 | 3,439 | ||
| RandomForest | 5,444 | 3,338 | 5,844 | 3,307 | ||
| XGBoost | 5,429 | 3,353 | 5,785 | 3,366 | ||
| ANN | 5,646 | 3,136 | 5,887 | 3,264 | ||
| GA | PSO | |||||
|---|---|---|---|---|---|---|
| Surrogate | Mean (s) | (s) | Mean (s) | (s) | ||
| LR | 14,817 | 11,413 | 9,930 | 3,255 | 0.691 | |
| SVM | 15,475 | 10,755 | 13,061 | 123 | 1.000 | |
| RandomForest | 16,909 | 9,322 | 13,139 | 46 | 1.000 | |
| XGBoost | 17,280 | 8,950 | 13,926 | 741 | 0.999 | |
| ANN | 13,355 | 12,875 | 10,090 | 3,095 | 0.730 | |
Appendix figures & tables2 assets
Supplementary material from the paper’s appendix.
Appendix
| Accuracy (RMSE) | Speed (seconds) | |||||||
|---|---|---|---|---|---|---|---|---|
| Optimizer | Objective | Best Surrogate | Pure | Surrogate | Impr. (%) | Pure | Surrogate | Impr. (%) |
| GA | GSL-div | ANN | 0.4497 | 0.6086 | 35.3 | 8795.2 | 5724.7 | 34.9 |
| GA | MSM | ANN | 0.3251 | 0.3761 | 15.7 | 8734.3 | 5549.3 | 36.5 |
| GA | MIC | ANN | 0.2856 | 0.3985 | 39.5 | 8739.1 | 5570.0 | 36.3 |
| GA | KS-test | ANN | 0.8513 | 0.8682 | 2.0 | 8860.5 | 5740.8 | 35.2 |
| PSO | GSL-div | ANN | 0.4814 | 0.2758 | 42.7 | 9215.0 | 5939.6 | 35.5 |
| Accuracy (RMSE) | Speed (seconds) | |||||||
|---|---|---|---|---|---|---|---|---|
| Optimizer | Objective | Best Surrogate | Pure | Surrogate | Impr. (%) | Pure | Surrogate | Impr. (%) |
| GA | GSL-div | ANN | 8.7008 | 3.3922 | 61.0 | 30233.4 | 11614.9 | 61.6 |
| GA | MSM | ANN | 6.5874 | 6.5874 | 0.0 | 23899.5 | 24400.4 | 2.1 |
| GA | MIC | ANN | 10.3711 | 7.4523 | 28.1 | 27347.6 | 8097.9 | 70.4 |
| GA | KS-test | ANN | 6.9732 | 2.3862 | 65.8 | 23440.8 | 9307.5 | 60.3 |
| PSO | GSL-div | LR | 13.5182 | 10.3046 | 23.8 | 27237.2 | 17628.1 | 35.3 |