Abstract
Understanding the dynamics of complex ecosystems is a necessary step to maintain and control them. Yet, reverse-engineering ecological dynamics remains challenging largely due to the very broad class of dynamics that ecosystems may take. Here we tackle this challenge through symbolic regression, a machine learning method that automatically reverse-engineers both the model structure and parameters from temporal data. We show how combining symbolic regression with a “dictionary” of possible ecological functional responses opens the door to correctly reverse-engineering ecosystem dynamics, even in the case of poorly informative data. We validate this strategy using both synthetic and experimental data, and find it promising for the systematic modeling of complex ecological systems.
Keywords: symbolic regression, community ecology, ecological dynamics, functional response
1. INTRODUCTION
Understanding the dynamics of ecosystems, such as food webs or the human gut microbiota, has the potential to transform how we approach some of the most pressing challenges of our time, from better ecosystem management to improving human health.[1-6] For instance, the human gut microbiota is a large, complex ecosystem of microbial species residing in the gastrointestinal (GI) tract.[7] Many GI diseases such as C. difficile infection, inflammatory bowel disease and irritable bowel syndrome, as well as a variety of non-GI disorders as divergent as autism and obesity, have been associated with disrupted gut microbiota.[8-13] Despite the growing interest on those complex ecological systems, there is a substantial gap in our understanding of the mechanisms behind their dynamical behavior. This gap of knowledge originates from the difficulty of reverse-engineering dynamic models from the poorly informative time-series data that we often have for those ecological systems.
There are two main approaches to reverse-engineering dynamic systems. On the one hand, there exists a wide class of efficient parameter identification methods such as multivariate regression,[14] maximum likelihood estimation,[15] sparse regression and identification[16-18] or downhill simplex methods.[19] However, to apply these methods to ecosystems, it is necessary to a-priori choose a model structure for the ecosystem dynamics. Any choice is always very difficult to justify given the very broad class of dynamics that ecosystems exhibit.[20] Actually, this difficulty often forces us to assume “standard” models like the Generalized Lotka-Volterra (GLV) model — which assumes the simplest Holling Type-I functional response[4, 21] — despite its limitations occur even at the scale of two species.[20, 22] On the other hand, standard machine learning methods like deep neural networks[23] or autoregressive statistical models do not require choosing any model structure for the ecosystem dynamics.[24-26] However, these standard machine learning methods are “black-boxes” that have very poor interpretability.[27] The lack of interpretability is a fundamental obstacle for applying standard machine learning methods for understanding ecosystems because, despite their accuracy, these methods cannot provide any mechanistic insight of the underlying ecological dynamics.
To open the door of using machine learning methods to understand ecosystems, here we propose to use Symbolic Regression (SR). SR is a novel machine learning method that searches in the space of mathematical expressions for both the structure and the parameters of an ordinary differential equation (ODE) model that accurately explains the given temporal data.[28, 29] Potentially, the resulting ODE models automatically obtained by SR can be interpreted to understand the underling ecological mechanisms of the ecosystem, such as the type of ecological interactions between species (e.g., predator-prey), or the form of the interaction mechanisms (e.g., the functional form of the reverse-engineered functional response). Importantly, SR automatically provides the user not one but several candidate models with different complexity (i.e., number of symbols in the model) and accuracy (i.e., how well the model fits the data). This set of candidate models allows the user to choose the most appropriate Pareto-optimal model for each specific scenario (i.e., choosing the model with the best complexity vs. accuracy tradeoff). A schematic overview of the SR workflow revealing the dynamics of a two-species ecosystem is shown in Box 1.
BOX. 1.
Symbolic Regression.
Consider the temporal data {x1(t), … , xN (t)}, t ∈ {0, … , tf}, containing the abundance of N species in an ecosystem. Our objective is to mechanistically understand the ecological dynamics of this system from the available temporal data. Mathematically, we aim to find simple but ecologically meaningful functions , such that the model , accurately fits the data. In SR, the model accuracy is usually quantified by the root-mean-square error (RMSE) between the true derivative and the estimated derivatives on T steps of validation datasets. In the figure below we show the workflow of SR for a two-species ecosystem (a). SR starts by randomly assembling several candidate models using a set of admissible operators (e.g., {+,−,×,/}) and terminals {x1,x2} ∪ {const.}, panel b. Next, SR computes the fitness of each candidate model, keeps the good ones, and employs mutation and crossover among those models to build better ones (panel c). The Pareto front reflects the tradeoff between complexity and fitness of candidate models (panel d). The Pareto front tracks the model at each of its “cliffs” (models A to F), characterizing the most accurate models for a given complexity. In this example, after searching over a space of 1.9 × 108 equations, SR finds equation F, which reveals the underlying model dynamics.

We find that, if the temporal data is informative enough, and with very limited prior knowledge of model structure, the standard SR can reverse-engineer accurate and interpretable models of predator-prey ecosystems. However, just with a two-species ecosystem with standard ecological dynamics, we find that the resulting data can be not informative enough to correctly reverse-engineer its specific interaction mechanisms. In other words, SR finds models that accurately fit the data but whose dynamics differs from the “true” dynamics that generated the data. The lack of informativeness of ecosystem dynamics becomes more pronounced as the complexity of the ecosystem dynamics increases or the number of species increases. In order to circumvent this issue, we propose to combine the standard SR with a “dictionary” of possible functional responses. Such a dictionary is built from functional responses previously obtained by either reverse-engineering small ecosystems from informative enough temporal data or from domain knowledge of existing functional responses.[20] We validated this strategy using both synthetic and real ecological system data, showing that it is a feasible and robust method to automatically reverse-engineer interpretable models for ecosystem dynamics.
For years, a central goal for ecology has been understanding the ecosystem dynamics from measuring the temporal data of the species abundance in that ecosystem. Consider an ecosystem of Nspecies and let xi(t), i = 1, … , N, denote the abundance of the i-th species at time t. Suppose that we measured the species abundance at certain time instants . To model the ecosystem dynamics, in principle, a very complex model with many mathematical operations and model parameters can be very accurate but uninterpretable. Acknowledging this situation, SR is designed to reverse-engineer models that are simultaneously: (i) simple (i.e., they are built using a small number of mathematical operations), and (ii) they accurately fit the temporal data. Namely, by feeding observations of species’ temporal data , SR searches for the “best” ordinary differential equation (ODE) model in the sense that it satisfies the above two goals. Besides very limited prior knowledge of model structure (e.g., the prey-growth function estimated from isolated prey data, and possible functional responses), SR does not require any other model assumptions on the structure of inter-species interactions, and it also provides a set of candidate ODE models with different levels of complexity and accuracy. Here, the complexity of a model is the number of mathematical operations needed to construct the ODE; accuracy is measured from the difference of the temporal data and the predictions of the model. From the set of candidate ODE models, we can select a model with a good tradeoff between complexity and accuracy to represent the dynamics of the ecosystem.
To build candidate models, the standard SR starts by randomly assembling several ODE models using a given set of mathematical operators (e.g., {+,−,×}) applied to a given set of variables called “terminals”. In our case, those terminals correspond to the abundance of each species in the ecosystem and an arbitrary constant, i.e., {x1, x2, ⋯ xN} ∪ {const.}. Next, SR computes the accuracy of each candidate ODE model, keeps the good ones, and uses mutation and crossover among those models to “evolve” better ones.[29, 30] Unlike typical regression methods that first specify a model structure and then adjust its parameters,[15, 18] SR simultaneously updates both the structure and the parameters of the model. To do this, we keep track of the set of most accurate models that SR has reverse-engineered for each possible complexity.[31] This set provides the Pareto front of the complexity vs. accuracy tradeoff of the reverse-engineered models, which evolves as SR discovers models with a better tradeoff (see Box 1). The SR algorithm terminates when either it reaches a predefined number of iterations, or when it reaches a predefined accuracy vs. complexity tradeoff. After terminating, the user selects from the Pareto-front models the one with the best complexity vs. accuracy tradeoff for the specific task. We note that models in the Pareto front where a large increase in accuracy requires a little increase of complexity are particularly relevant because they signal that the SR discovered an important mechanism in the ecosystem dynamics. Note that an advantage of SR is that both the complexity and the accuracy of the models in the Pareto front evolve automatically. By contrast, for other methods the model structure has to be fixed in the very beginning, and thus the Pareto front can only evolve by manually tuning the model structure.
As mentioned before, applying the above standard SR algorithm to ecosystems has limitations because of the lack of informative data inherent to ecological dynamics. In this paper we overcome this limitation by combining SR with a dictionary of existing functional responses. In particular, given that ecosystem dynamics is often the sum of small nonlinear functions (e.g., the sum of functional responses for each species), we find that multi-gene algorithms[32] can be quite useful. Here, multi-gene algorithms refer to the special settings where linear combinations of low-order nonlinear transformations of the input variables are utilized in SR. Compared to the standard SR algorithms, incorporating multi-gene could expand the search space of SR more efficiently. To implement this idea in our calculations, and to accelerate the search of solutions by utilizing the prior information on functional responses, simple nonlinear functional responses are seeded as initial “genes”. Such algorithms can be used to automatically build and evolve new functional responses. Moreover, this strategy facilitates the Pareto front analysis because we can efficiently record improvements in the accuracy and complexity of the functions.[31]
2. RESULTS
2.1. Limitations of reverse-engineering ecosystems using standard Symbolic Regression.
To illustrate the potential and limitations of the standard SR algorithm for ecosystems, we applied this reverse-engineering method to an elementary two-species ecosystem consisting of a predator and a prey. For this, we generated data using the rather general ODE model[20]
| (1) |
Above, and denote the abundance of prey and predators, respectively. The function represents the per-capita growth rate of the prey, and is the so-called “functional response”. The functional response characterizes the instantaneous per-capita feeding rate of the predator, which determines the form of inter-species interaction.[33] The constants m > 0 and μ > 0 are the conversion efficiency and the per-capita death rate of predators, respectively. We choose the standard logistic growth model f(x1) = r(1 − x1/K) for the prey growth rate, where K > 0 is the carrying capacity of prey and r > 0 its growth rate constant.[20] To choose the functional response, we emphasize that empirical evidence shows that predator-prey ecosystems exhibit various functional responses, which are key factors for determining their ecological dynamics.[20, 34-39] Here we consider four representative functional responses: Lotka-Volterra (LV), Holling Type II (H), DeAngelis-Beddington (DB) and Crowley-Martin (CM). These functional responses are given by the equations
| (2a) |
| (2b) |
| (2c) |
| (2d) |
Above, the constants ci > 0 (i = 1,2,3) characterize the saturation of the functional responses. These functional responses describe different mechanisms for the inter-species interactions with increasing complexity (see Remark 1 in SI-2.1).
We generated synthetic time series by first choosing one functional response from Eq. (2) and then numerically integrating Eq. (1) . From these time series data, we used SR to reverse-engineer and (see Methods-1), providing estimates for the true functions f(x1) and g(x1,x2). The only prior knowledge we use in the SR algorithm is that for some unspecified functions p and q, preventing the SR algorithm from searching over functional responses that are not ecologically meaningful (see Methods-1).
In order to test the performance of SR, we considered two case studies in which the data have different levels of “informativeness”. In the first case, the parameters of Eq. (1) are chosen such that the system exhibits oscillations. In this case, the data were informative enough to correctly reverse-engineer the functional form and parameters for the LV, H and DB functional responses without any prior information (Fig. 1a-c). However, for the CM functional response, SR finds an accurate model but the inferred functional response does not match the original functional response g (Fig. 1d). This last result implies that the data are not informative enough to reveal the correct functional response in the CM case, since other different functional responses can fit the data equally well. In other words, the CM functional response is not identifiable from these data. Note the lack of identifiability is a problem of the data themselves, and not of the particular inference algorithm.
FIG. 1. Reverse-engineering synthetic two-species communities.
For Lotka-Volterra, Holling type II and DeAngelis-Beddington functional responses, SR can directly reconstruct the correct growth functions and functional responses from the time-series data only (panels a, b, and c). For the Crowley-Martin functional response (panel d), SR reconstructs a model with high accuracy but incorrect model structure. Root-mean-square errors (RMSEs) are calculated to compare the derived models with the original ones. Constant errors denote the constant terms derived in SR models.
One strategy to solve the above problem is using additional time-series data. For this, a method used in practice is to collect temporal data of the response of the prey growing in isolation.[20] This extra information allows us to use SR to infer f(x1) first, and then apply SR a second time to recover g(x1, x2) (see Methods-2). Following this procedure, the exact CM functional response can also be recovered (Fig. 2). In SI 2.3, we show the proposed method is also robust to measurement noises. We emphasize that the strategy of requiring extra information of the prey growing in isolation is not an ideal solution, since it may be simply impossible to obtain such data in real ecosystems
FIG. 2. Reverse-engineering a two-species community with Crowley-Martin functional response.
Without giving any prior knowledge of the interaction, SR is able to infer an accurate model that does not use the CM functional response (see red curves in a and b). In order to reverse- engineer the correct functional response, we provide extra information using the time-series data of the isolated prey (green in a) that allows us to correctly infer f(x1) first (yellow in a). With such prior information, SR correctly recovers the functional form for g(x1, x2) (see blue curves in a and b).
To better understand how the informativeness of the measured temporal data impacts the effectivity of SR for ecosystems, in the second case study we set up the parameters of Eq. (1) such that its trajectories approach an equilibrium (see Fig. 3). This behavior without persistent oscillations is also typical in ecosystems beyond predator-prey interactions. In this case, for all functional responses, the standard SR finds accurate models that fit the temporal data, but their growth rates and functional responses differ from the true ones (solid blue lines in Fig. 3). This result indicates again a lack of identifiability, implying that the data by themselves are not informative enough to infer the “true” underlying growth rate and functional response.
FIG. 3. Reverse-engineering a two-species community from uninformative data.
Compared to Fig. 2, here the parameters of the systems are such that their trajectories quickly approach an equilibrium. From this data, SR is able to reverse-engineer an accurate model without recovering the correct functional response or intrinsic growth rates (blue). Actually, we can force SR to only use Lotka-Volterra (LV) model for fitting a rough model (green). In this sense, the data itself is not informative enough to infer the different functional responses. In order to acquire more information without needing more data, we combine the SR algorithm with a “dictionary” of the possible functional responses. With this additional information, the SR algorithm correctly reverse-engineers both the growth rate and functional response (red).
2.2. Combining symbolic regression with prior knowledge of possible functional responses.
In the previous section, we demonstrated that if the measured temporal data are not informative enough, then SR can reverse-engineer accurate models that are completely different from the ground truth. Actually, we expect that data become less informative as the size of the ecosystem grows, making it challenging to apply the standard SR.
To circumvent the above limitation without requiring more data, we propose combining the SR algorithm with a “dictionary” of possible functional responses (see Methods-3 for details). For the predator-prey ecosystem discussed in the previous section, this combined SR can correctly infer the functional response even with the poorly informative data without additional data of the prey growing in isolation (Fig. 3).
The combined SR can reverse-engineer larger ecosystems. We illustrate this point using synthetic time-series data of a six-species ecosystem with the following model:
| (3) |
We choose the above predator-prey system parameters so that its trajectories oscillate, as shown in Fig. 4a. By directly applying SR on collected data, we obtain an accurate model but it does not contain the correct form of the interactions (Fig. 4b and SI-4). As can be observed from Fig. 4a, species x4, x5 and x6 exhibit similar temporal behavior to each other, making it very difficult for any inference algorithm to distinguish between them. In other words, the effect of including any of these variables directly on the right-hand side of an ODE model is very similar. Furthermore, SR often yields accurate but very complex models (see Methods-4).
FIG. 4. Reverse-engineering a large community using symbolic regression.
a. The dataset consists of trajectories obtained by simulating the six-species predator-prey ecosystem of Eq. (4) (each species is shown in different color). b. Error (Euclidean norm of the difference between the true trajectory x(t) and the estimated trajectory as a function of time for the reverse-engineered models using symbolic regression without (dashed) and with (solid) prior information of the possible interaction types. In both cases, the reverse-engineered models have good accuracy, but only when the SR is given prior information are the data informative enough to recover the correct functional responses.
By using the dictionary of possible functional responses proposed in this work, the combined SR algorithm successfully reverse engineer the ecosystem dynamics. Finally, with prior information integrated into our algorithm, SR is able to significantly narrow down its searching space, and infer an accurate model with the correct interactions (see Methods-4).
2.3. Validation with experimental data.
Finally, we test our approach with real data from a microbial predator (P. aurelia) and prey (D. nasutum) ecosystem.[40] Following the methodology of Ref.[20], we first infer the growth rate function from experimental data of the prey growing in isolation (Fig. 5b) and we let and also depend on delayed values of x1 and x2. Using our SR method, we infer the following dynamic model:
| (4) |
with the growth rate function
and functional response
FIG. 5. Reverse engineering a predator-prey community from experimental time-series data.
a. Interpolation of experimental times-series data from Ref.[40]. b. Experimental time-series obtained from the prey in isolation (green), and the estimated time-series from the reverse-engineered model using SR (yellow). c. Experimental time-series data of the prey. True (gray), reverse-engineered model using SR (blue), best model fitted in Ref.[20] using the DeAngelis-Beddington functional response with logistic growth (dashed red). d. Time-series data of the predator. True (grey), reverse-engineered model using SR (blue), best model fitted in Ref.[20] using the DeAngelis-Beddington functional response with logistic growth (dashed red).
Here time t is in units of days. The inferred model contains constant terms in the right-hand side of the ODE for prey and predator, which can be interpreted as external inputs from the environment acting on the system. The growth rate function includes terms with delays in addition to the standard logistic model. For the death rate of predators, the model also includes delays. These delay terms make sense because they indicate that the current population affects the carrying capacity of their off-springs. Furthermore, the inferred functional response depends only on the prey. The inferred model of Eq. (3) has a Root Mean Square Error (RMSE) = 22.7123 (blue lines in Fig. 5c-d), which is significantly better than the best model computed in Ref.[20], which has an RMSE = 53.4876. Note that the model in Ref.[20] also contains delays and it uses the DeAngelis-Beddingtion functional response. This means that SR was able to automatically reverse-engineer an ecologically meaningful model with higher accuracy than human curated models (Fig. 5).
3. DISCUSSION
SR is not only a predictor or a parameter estimator method. Actually, thanks to Pareto front, SR is a data-driven approach with enhanced interpretability. This advantage is not shared by most system identification algorithms since, even if the data are informative enough, they can at best fit the parameters of an a-priori selected model (the selection of such model is hard to justify in practice) and often, even if the model accurately fits the data, such models do not provide a mechanistic understanding of the system (e.g., in artificial neural network models). Moreover, the SR approach has an additional degree of freedom: it allows users to choose the model that has the best tradeoff between complexity and accuracy for each particular task. Such model selection strategies overcome the overfitting problem that is often encountered by both regression and deep learning methods.
There still exists a potential gap between the current proposed solution focused on inferring the underlying dynamics of predator-prey ecosystems and the general solution of reverse-engineering ecological mechanisms for general ecosystems, especially in the case of poorly informative data or imperfect knowledge. This deserves a dedicated future work with significant amount of research efforts. We anticipate that the proposed SR approach along with the pipeline dealing with uninformative data would offer a guideline for recovering general dynamics of ecosystems in future studies. Even with very limited temporal data, SR is still a potentially very powerful method to recover the governing dynamics of ecological systems. By contrast, for other machine learning algorithms such as neural networks, it is nearly hopeless to explicitly reveal the mechanisms underlying the dynamics, even if the fitting performance could be very good.
Methods
1. Applying SR to a two-species community.
Given time-series data of the two species {x1(t), x2(t)}, we first estimate their derivatives using the “central differences” method. Next, we reverse-engineer a model that accurately fits . For this, we use SR to find a function and a constant , such that has good fitness/complexity tradeoff. Finally, with the function , we use SR again to find a function such that has a good fitness/complexity tradeoff for some constant m > 0.
For the results shown in all figures, we used the SR algorithms powered by Eureqa.[41] To help accelerate the discovery of underlying dynamics, we also incorporate the constraint during for unknown functions p and q. In addition, cross validation is adopted in all of our SR algorithms in order to prevent model overfitting as well as ensuring model’s predictability.
2. Prior information I: additional data from the prey in isolation.
We explored two methods to incorporate prior information. The first one uses data of the response of the prey in isolation, which we denote as x1,isolated(t). We estimate again the derivative of these data and use SR to find a function such that has a good fitness/complexity tradeoff. With this estimated , we can use the time-series data from the prey interacting with the predator {x1(t), x2(t)} to reverse-engineer the functional response by using . We found this approach is very efficient, reducing the computation time required to correctly reverse-engineer . This, in turn reduces the time to find parameters m and μ. Such information is also often available from controlled experiments in ecology. This method allows us to correctly reverse-engineer a synthetic ecosystem with CM functional responses (Fig. 2b).
Since we can expect that the functional response of real ecosystems is at least as complex as the CM functional response, we applied the same method to the experimental data of Veilleux.[40] In this case, we also incorporated interpolation and a delay operator to build the candidate predator-prey functions for the SR algorithm.
3. Prior information II: dictionary of possible functional responses.
The second method to incorporate prior information seeds the SR algorithm with a dictionary of possible functional responses. Instead of trying to directly reverse-engineer the equation for , we listed all possible “atoms” that may exist in the denominator of g(x1,x2), like x1, x2, x1x2, and treated them as a dictionary of interaction forms for SR. In the next step, we transformed the reverse-engineering process of into a multi-gene SR problem for identifying the parameters for the different atoms in our interaction dictionary. Some parameters simply equal 0, indicating some types of functional responses are not present. We performed the multi-gene symbolic regression using the Matlab package GPTIPS2,[42] combined with a Pareto front analysis to select the model with the best fitness/complexity tradeoff. From a technical perspective, compared to previous symbolic regression procedures, we found that combining the dictionary of possible interactions with multi-gene genetic programming increases the accuracy of the method and helps avoid bloated equations (i.e., accurate but extremely large models). Nevertheless, this choice tends to produce models with a small constant error that is accumulated when the ODE models are numerically integrated. This could be remediated by using a different norm for evaluating the fitness of the candidate models in the SR algorithm. Such choice, however, would slow down the SR algorithms because it requires to numerically integrate an ODE system to evaluate the fitness of a candidate model.
We found this approach is useful in selecting the true functional response for uninformative data and for finding the model for . After this step, we follow Methods-1 to reverse-engineer . Thus prior information on the possible functional responses is very useful in recovering the model structures, especially for uninformative temporal data.
4. Applying SR to larger ecosystems.
Here we used prior information as described in Methods-2 and Methods-3. Since x4, x5 and x6 share the same model structure , i = 4,5,6, we can apply the approach of Methods-1 to directly reverse-engineer and by only providing time-series data {x1(t), … , x6(t)}. This approach successfully reverse-engineered these three variables, see Fig. 4.
We found that SR algorithm had difficulties for inferring the dynamics of x2 and x3, since three species appeared in the right-hand side of the ground-truth ODE model. To circumvent this problem, we listed all the possible forms of interactions as described in Methods-3. Then we instructed SR to use this dictionary as the prior knowledge for model reconstruction. With this dictionary, the multi-gene SR successfully selected the correct forms for the functional responses, reverse-engineering , and . In particular, SR was able to correctly infer the model for , which has the highest complexity including pairwise interactions with other 5 species. The typical three steps of reverse-engineering plots are shown in SI-2.2, in the context of a comparison with the original synthetic model and direct SR model with good fitness but poor structures.
Supplementary Material
Footnotes
The authors declare no competing financial interests.
References:
- [1].Micheli F, Science 1999, 285, 1396. [DOI] [PubMed] [Google Scholar]
- [2].Bascompte J, Science 2010, 329, 765. [DOI] [PubMed] [Google Scholar]
- [3].Cebrian J, Science 2015, 349, 1053. [DOI] [PubMed] [Google Scholar]
- [4].Coyte KZ, Schluter J, Foster KR, Science 2015, 350, 663. [DOI] [PubMed] [Google Scholar]
- [5].Costello EK, Stagaman K, Dethlefsen L, Bohannan BJM, Relman DA, Science (New York, N.Y.) 2012, 336, 1255. [DOI] [PMC free article] [PubMed] [Google Scholar]
- [6].McNally L, Brown SP, Nature Microbiology 2016, 1, 15016. [DOI] [PubMed] [Google Scholar]
- [7].Gill SR, Pop M, DeBoy RT, Eckburg PB, Turnbaugh PJ, Samuel BS, Gordon JI, Relman DA, Fraser-Liggett CM, Nelson KE, Science 2006, 312, 1355. [DOI] [PMC free article] [PubMed] [Google Scholar]
- [8].Youngster I, Sauk J, Pindar C, Wilson RG, Kaplan JL, Smith MB, Alm EJ, Gevers D, Russell GH, Hohmann EL, Clinical Infectious Diseases 2014, 58, 1515. [DOI] [PMC free article] [PubMed] [Google Scholar]
- [9].Morgan XC, Tickle TL, Sokol H, Gevers D, Devaney KL, Ward DV, Reyes JA, Shah SA, LeLeiko N, Snapper SB, others, Genome Biol 2012, 13, R79. [DOI] [PMC free article] [PubMed] [Google Scholar]
- [10].Khoruts A, Dicksved J, Jansson JK, Sadowsky MJ, Journal of clinical gastroenterology 2010, 44, 354. [DOI] [PubMed] [Google Scholar]
- [11].Mulle JG, Sharp WG, Cubells JF, Current psychiatry reports 2013, 15, 1. [DOI] [PMC free article] [PubMed] [Google Scholar]
- [12].Ley RE, Current opinion in gastroenterology 2010, 26, 5. [DOI] [PubMed] [Google Scholar]
- [13].Foster JA, Neufeld K-AM, Trends in neurosciences 2013, 36, 305. [DOI] [PubMed] [Google Scholar]
- [14].Mardia KV, Kent JT, Bibby JM, Multivariate analysis, Academic Press, 1979. [Google Scholar]
- [15].Johansen S, Juselius K, Oxford Bulletin of Economics and statistics 1990, 52, 169. [Google Scholar]
- [16].Dam M, Brøns M, Juul Rasmussen J, Naulin V, Hesthaven JS, Physics of Plasmas 2017, 24, 22310. [Google Scholar]
- [17].Mangan NM, Kutz JN, Brunton SL, Proctor JL, in Proc. R. Soc. A, Vol. 473, 2017, 20170009. [DOI] [PMC free article] [PubMed] [Google Scholar]
- [18].Rudy SH, Brunton SL, Proctor JL, Kutz JN, Science Advances 2017, 3, e1602614. [DOI] [PMC free article] [PubMed] [Google Scholar]
- [19].Glaudell R, Garcia RT, Garcia JB, Computer Journal 1965, 7, 308. [Google Scholar]
- [20].Jost C, Ellner SP, Proceedings of the Royal Society of London B: Biological Sciences 2000, 267, 1611. [DOI] [PMC free article] [PubMed] [Google Scholar]
- [21].Chung M, Krueger J, Pop M, arXiv preprint arXiv:1509.06926 2015. [Google Scholar]
- [22].Chen L, Chen F, Chen L, Nonlinear Analysis: Real World Applications 2010, 11, 246. [Google Scholar]
- [23].Goodfellow I, Bengio Y, Courville A, Bengio Y, 2016, 1. [Google Scholar]
- [24].Deyle ER, May RM, Munch SB, Sugihara G, Proceedings of the Royal Society B: Biological Sciences 2016, 283, 20152258. [DOI] [PMC free article] [PubMed] [Google Scholar]
- [25].Ye H, Beamish RJ, Glaser SM, Grant SCH, Hsieh C.-h., Richards LJ, Schnute JT, Sugihara G, Proceedings of the National Academy of Sciences 2015, 112, E1569. [DOI] [PMC free article] [PubMed] [Google Scholar]
- [26].Ye H, Sugihara G, Science 2016, 353, 922. [DOI] [PubMed] [Google Scholar]
- [27].Zeiler MD, Fergus R, in European conference on computer vision, 2014, 818. [Google Scholar]
- [28].Bongard J, Lipson H, Proceedings of the National Academy of Sciences 2007, 104, 9943. [DOI] [PMC free article] [PubMed] [Google Scholar]
- [29].Schmidt M, Lipson H, Nutonian, Somerville, Mass, USA, 2013. [Google Scholar]
- [30].Koza JR, Genetic programming: on the programming of computers by means of natural selection, Vol. 1, MIT Press, 1992. [Google Scholar]
- [31].Kotanchek M, Smits G, Vladislavleva E, in Genetic programming theory and practice V, Springer, 2008, 201. [Google Scholar]
- [32].Searson DP, Leahy DE, Willis MJ, in Proceedings of the International multiconference of engineers and computer scientists, Vol. 1, 2010, 77. [Google Scholar]
- [33].Holling CS, The Canadian Entomologist 1959, 91, 293. [Google Scholar]
- [34].Holling CS, Memoirs of the Entomological Society of Canada 1965, 97, 5. [Google Scholar]
- [35].Beddington JR, The Journal of Animal Ecology 1975, 331. [Google Scholar]
- [36].Crowley PH, Martin EK, Journal of the North American Benthological Society 1989, 211. [Google Scholar]
- [37].Tanner JT, Ecology 1975, 855. [Google Scholar]
- [38].Skalski GT, Gilliam JF, Ecology 2001, 82, 3083. [Google Scholar]
- [39].Hsu S-B, Hwang T-W, Kuang Y, Discrete and Continuous Dynamical Systems. Series B 2008, 10, 857. [Google Scholar]
- [40].Veilleux BG, The Journal of Animal Ecology 1979, 787. [Google Scholar]
- [41].Searson DP, arXiv preprint arXiv:1412.4690 2014. [Google Scholar]
- [42].Ljung L, System Identification Theory for User, Prentice Hall, 1999. [Google Scholar]
Associated Data
This section collects any data citations, data availability statements, or supplementary materials included in this article.





