scikit-agent¶
scikit-agent is a scientific Python toolkit for agent-based economic modeling and multi-agent systems design. It provides a unified interface for creating, solving, and simulating economic models using modern computational methods including deep reinforcement learning as well as more traditional numerical techniques.
Our goal is for scikit-agent
to be for computational social scientific
modeling and statistics what scikit-learn
is for machine learning.
Key Features¶
Built on Scientific Python and Torch for easy integration with the Python ecosystem
Modular modeling system. Construct multi-agent environments from modular blocks of structural equations.
Solution algorithms including deep reinforcement learning methods.
Simulation tools for generating synthetic data and running policy experiments
Installation¶
pip install scikit-agent
For development installation:
git clone https://github.com/scikit-agent/scikit-agent.git
cd scikit-agent
pip install -e ".[dev,docs]"
Key references¶
Hammond, L., Fox, J., Everitt, T., Carey, R., Abate, A. and Wooldridge, M., 2023. Reasoning about causality in games. Artificial Intelligence, 320, p.103919.
Maliar, L., Maliar, S. and Winant, P., 2021. Deep learning for solving dynamic economic models. Journal of Monetary Economics, 122, pp.76-101.
Quick Example¶
import skagent as ska
from skagent.models.consumer import consumption_block, calibration
# Create a consumption-saving model
model = consumption_block
model.construct_shocks(calibration)
# Define simple decision rule
decision_rules = {"c": lambda m: 0.9 * m}
# Run simulation
simulator = ska.MonteCarloSimulator(
calibration=calibration,
block=model,
dr=decision_rules,
initial={"k": 1.0, "p": 1.0},
agent_count=1000,
T_sim=50,
)
results = simulator.simulate()
Quick Links¶
Get up and running in minutes with your first economic model
Learn to build custom models using DBlocks and economic building blocks
Explore solution methods from VFI to neural networks
Master Monte Carlo simulation and result analysis
Browse complete working examples and use cases
Detailed documentation of all classes and functions
What Can You Build?¶
Consumption-Saving Models¶
Life-cycle consumption with income uncertainty
Precautionary saving with borrowing constraints
Habit formation and durable goods
Portfolio Choice Models¶
Mean-variance optimization with labor income
Multi-asset allocation problems
Portfolio constraints and transaction costs
General Equilibrium Models¶
Overlapping generations models
Heterogeneous agent models with aggregate shocks
Market clearing and equilibrium computation
Policy Analysis¶
Tax and transfer policy evaluation
Social Security and pension reform
Regulatory impact assessment
Why scikit-agent?¶
🧱 Modular Design¶
Build complex economic models using intuitive building blocks. Compose DBlocks and RBlocks to represent different stages of economic behavior with clear separation of shocks, dynamics, controls, and rewards.
🔬 Multiple Solution Methods¶
Choose from traditional methods like value function iteration or modern neural network approaches. All algorithms follow consistent APIs and integrate seamlessly with the model framework.
📊 Rich Simulation Engine¶
Generate synthetic data with sophisticated Monte Carlo simulators that handle agent heterogeneity, life-cycle dynamics, and complex stochastic processes.
🐍 Scikit-Learn Compatible¶
Familiar fit-predict patterns, consistent APIs, and integration with the broader Python scientific ecosystem.
Next Steps¶
New to scikit-agent? Start with the Quickstart Guide guide.
Want to dive deeper? Check out:
Models Guide for model building concepts
Examples for complete working examples
API Reference for detailed API documentation
Community & Support¶
GitHub Repository: github.com/scikit-agent/scikit-agent
Issue Tracker: Report bugs and request features
Discussions: Ask questions and share examples
Contributing: Help improve scikit-agent for everyone