Agent Based Modelling and the Earth Reserve Assurance
I'm currently a Sophomore at Northwestern University majoring in economics and computer science. I chose to double major because I like working at the intersection of tech and it's practical applications in economics. I enjoy learning about the ways businesses can optimize operations using cutting-edge technology. I also enjoy utilizing data to answer key problems facing businesses.
At the beginning of the academic year, I started searching for a position that would directly pertain to both economics and computer science. I got into contact with Jacob Kelter and started working with the Center for Connected Learning (CCL) on a project modelling the implications of quadratic voting on overall welfare in a community. Quadratic voting is a voting mechanism in which voters can allocate votes on a ballot based on the degree of preference. The project was positioned at the nexus of computer science and economics, providing a unique opportunity for me to dive deep into two of my passions simultaneously. I also got a chance to connect directly with Uri Wilensky, the author of NetLogo.
After the conclusion of the quadratic voting project, I learned about Xalgorithms and the Earth Reserve Assurance (ERA) Framework. I expressed interest in working with Jacob and Joseph Potivin on a NetLogo model of the ERA market because I was interested by the ERA's application to both the macroeconomic and microeconomic scale. When Jacob first described the concept behind the ERA framework, I was interested in the scope. The ERA appeared to tackle multiple challenges at once. First, it provides a clear framework for determining monetary value and quantity. Additionally, the ERA is intentionally designed to allign economic and ecological incentives. I was particularly interested in the second goal since historically, economic success has almost always come at the cost of ecological damage.
After starting work on the NetLogo model, I noticed several key differences in the NetLogo implementation. For one, a real world implementation of the ERA would use multiple metrics for measuring an ecoregion. However, in the model, we use soil because it is an information-rich factor in land-based ecosystems characterized by relatively easy-to-monitor volume and quality metrics. Working on the ERA mechanism provided a unique set of challenges to me. For one, the goal of the model wasn’t as clean cut as we had with the quadratic voting model. The quadratic voting project involved generating and analyzing welfare data in Jupyter Notebook. There were measurable metrics with which to analyze the overall utility of the population.
However, if we zoom out to the macroeconomic scope of the ERA Framework, we can quickly see that it becomes much trickier to set a firm goal. We will again likely utilize Jupyter Notebook to analyze general trends, but there is no singular metric with which to gauge the model’s efficacy. Through Xalgorithms, I'll be collaborating with a recent grad from University of San Francisco on the Jupyter work. Deja Newton is currently working with geospatial data to define ecoregions, and she has also previously done work with defining the Bezier spline in Jupyter Notebook.
Another problem I encountered stemmed from the broad scope of the ERA. For one, as the scope of the model becomes more broad, we must make more assumptions and simplifications within the model. Additionally, there is no single metric for which to draw conclusions on the ERA. Inherently, the ERA strives to align ecological and economic incentives which provides a broad range of metrics with which to analyze the framework. To handle this, we created a dashboard style of interface with multiple charts so that the user can analyze simultaneous changes in a variety of quantifiable metrics for the biophysical ecoregions, currency unit worth, and overall monetary liquidity.
When I first started working on the ERA model, the base implementation had already been completed by Jacob alongside two undergraduate interns with the CCL, Amanda Sugiharto and Jake Wit. After being brought on, Joseph, Jacob, and I worked on hashing out a mathematical solution to calculating an index for relative currency worth. This differs from "exchange rates" in the conventional sense because the emphasis here is on the how each currency is calibrated relative to changes in the productive capacity of ecoregions across the biogeophysical Earth. I implemented the “ERiE” (ERiE measures changes in overall ecoregion health) and the “ERiC” (Earth Reserve index for Currencies) in the NetLogo model. I also learned about and implemented the Bezier curve, which is used in the ERA methodology to calibrate the ERiE components to the Best Feasible Scenario and to the Worst Potential Scernario, relative to any chosen base year. The ERiC is derived from ERiE by attributing changes in ecoregions to currency-of-transaction data by jurisdiction. This is a little complicated because the boundaries of ecozones and jurisdictions are not the same.
I have also spent considerable time making small changes to the original model to better convey the trends. We changed how ecoregions, jurisdictions, and operations nodes were displayed within the model, creating a more digestible format to display information. I also added in metrics for jurisdictions’ individual exchange rates and soil depth to find out whether certain jurisdictions would be pushed to diverge in ecological policy from each other.
On a personal level, this position has helped me significantly with my functional programming skills. I’ve been working on improving my code’s readability by separating all functions using the single responsibility principle. Agent based modeling has also given me significant practice with intuitively structuring data. The structure of NetLogo has forced me to focus on making conscious decisions about my data representation. In NetLogo, agents must be “asked” to access their data. This means that certain functions are only called by certain agent types, further pushing the “one function one purpose” principle.
I've also seen relevant applications in many of my economics classes. After working on the ERA model, I have a new lens towards macroeconomics. Small changes within the model have drastic implications on the monetary metrics. Seeing the model react to changes has improved my intuition towards understanding the broad trends in the macroeconomic scope. This has translated to a deeper understand of macroeconomic concepts beyond what would be required for a class.
Over the last couple weeks, I’ve taken on the responsibility of hosting three demo meetings with Jacob to groups within the CCL and XAlgorithms. These meetings aimed to show off the current status of the model and answer questions about the general ERA framework. These demos also gave me a chance to verify that my intuition was correct in relation to the model. Moving forward, I am excited to be taking the next steps running experiments in the model’s behaviorspace. I’m also excited to get the chance to be advance with the model with the wider Xalgorithms team.