Dynamic modeling offers many benefits to understand the dynamics of complex systems. Hybrid modeling attempts to bring together the complementary benefits of differing dynamic modeling approaches, such as System Dynamics and Agent-based modeling, to bear on a single research question. We present here, by means of an example, a hybrid modeling technique that allows different modules to be specified separately from their implementation. This enables each module to be designed and constructed on an ad-hoc basis. This approach results in 3 benefits: it facilitates incremental development, a key focus in agile software design; it enhances the ability to test and learn from the behavior of a dynamic model; and it can help with clearer thinking about model structure, especially for those of a hybrid nature.
There are many clear benefits to dynamic modeling. System Dynamics (SD) can efficiently capture certain key system patterns, such as feedbacks and accumulations (Homer and Hirsch 2006), can quickly describe aggregate characteristics of a system (enabling quick prototyping of models), and can generate insight into system behavior very effectively with causal loop diagrams and group model building techniques. They have been used in a wide range of fields, including many in health (Homer and Hirsch 2006), and public policy and business (Sterman 2000). Agent-based modeling (ABM), focusing on agent behaviors, allows one to pull apart the aggregate dynamics and describe in detail system dynamics, especially in the presence of certain characteristics, such as agent heterogeneity, social networks, and impacts of location (Rigotti and Wallace 2015). It has be used to study the formation of human norms (Dechesne, Di Tosto, Dignum, and Dignum 2013), noncommunicable diseases (Nianogo and Arah 2015), and even human migration patterns (Klabunde and Willekens 2016).
Clearly certain problems are more amenable to one modeling methodology than another. This can be due to several factors, such as different research goals (e.g. an initial foray into studying the patterns of a system might benefit most from an SD approach), the problem constraints themselves (e.g. if agent heterogeneity is known to be a key driving factor, ABM might be more beneficial), the nature of the particular stakeholder groups (e.g. whether they already use language and techniques from a system pattern, agent-behavior, or process perspective), or on the data that is available (aggregate data vs individual data).
A given problem might not have an obvious choice for modeling approach, however. The stakeholders might best understand the system pattern while the problem itself might have some need to describe agent behavior. Here is where hybrid techniques might be implemented. Hybrid modeling attempts to bring to bear, simultaneously, the complementary benefits of multiple techniques, on a single research question.
Additionally, it is not uncommon for development paths to change. For example, if seeking to understand leverage points in a hospital emergency ward, an SD might be an efficient starting point to get an understanding of the main accumulations and feedbacks, and to assist in solidifying the types of questions sought by the model. As development progresses, it might become valuable to account for agent heterogeneity (e.g. nurses and doctors of different wards and specialties, or patients with various comorbidities), necessitating the use of an ABM. Taking a dynamic model as a thinking prosthesis, it is a distinct advantage to be able to not only switch between approaches model-wide, but also, through modular and incremental development, to alter different model components as assumptions and learning evolves.
Much work has been done on attempting to standardize hybrid techniques (Swinerd and McNaught 2012). The goal of this research, therefore, is to expand on the learning in hybridization techniques. We demonstrate a pattern for hybrid model construction that allows for easy connection between components of a model built with differing methodologies. This pattern, demonstrated with an example hybrid model, focuses on model modularity to support incremental development, and continual and efficient testing.
The benefits this technique offers are threefold. Firstly, proper modularization of a model supports incremental development, a key feature of the agile programming paradigm (Fowler and Highsmith 2001). This allows development to adapt more easily to changes in design requirements by enabling modules to be removed or added without requiring substantial changes to the model core. Given the role of models in driving insight that did not exist at the beginning of a modeling project, it can be seen how this might be a valuable feature of model design as well. Secondly, a modular design allows for improved testing and learning. Since modules are able to be simulated independently of each other, a given module’s dynamics and response can be uniquely characterized. This improves investigation to see if unpredicted model behavior is due to fresh insight or code errors. Finally, for those software packages that allow multiple methods in the same single architecture (AnyLogic, being a prime example), modules themselves can be single-method even though the model as a whole draws on several, enabling clearer thinking about model structure. This could allow a unified method of model characterization building on current examples, such as the ODD method of ABMs (Grimm et al. 2006).