Just to give a bit of background before any of you go into reading about this model, the authors have performed regression analysis to determine what (if any) mechanism exists between the level of development of local financial markets and incoming FDI to a given country. As is often expressed in literature about economic growth and emerging economies, Increased FDI is associated with economic growth for a whole host of reasons. But is there a threshold of financial market development that must be met before increased FDI is accompanied by positive spillover effects? This is the question the authors seek to answer through their econometric study, and the same question Natalie and I will address in our course project.
To provide some more-detailed summary, all agents in a given country are give two choices: to work for the foreign company in the FDI sector of the economy or to take-on an entrepreneurial venture by starting their own firms. The decision of an agent to develop his own firm depends on his ability (given at birth but varies among agents) and his availability to capital (thus on the level of development of financial markets).
I realize our project is quite ambitious, and I think what I am most concerned about is the amount of seemingly nested variables that will be present in our model. Additionally, while we have had discussion on the logic that will drive our agents to make the decision to work for the FDI sector or to pursue entrepreneurial endeavors, I am not yet sure how we will incorporate this all into economic growth more broadly...
As for the projects that will deal with terrorism and counterinsurgency, I am very much looking forward to reading these articles (hopefully tomorrow morning). I went to an all-day talk downtown on Friday on terrorism, and was actively thinking about your projects and how useful ABM is/can be in that policy realm.
Amanda and I are working on out ODD currently and we had a couple of thoughts we would like feedback on. We are modeling a world with two sectors (as Amanda described above): foreign (FDI) and domestic. We were thinking about ways to best model our patches so that we can simulate the movement of turtles on the patches like people moving across sectors or raising their returns within their current sector. We discussed an idea similar to the Butterfly model where we use hills and elevation to help simulate how people will move. For instance we were discussing having two hills that each cover a large portion of half of the world (or nearly an entire sector). Initially zero or one patch would be colored (say green) on each hill (at the peak) which would simulate zero economic growth or a stagnant economy. Then as production increased an increasing number of patches would turn green (moving down the hill to signify the spread of production). This production would increase as financial markets become increasingly developed. Say you have perfect development of financial markets then the maximum surface area of the world would be covered with green patches. Meanwhile as financial markets develop more people will be able to earn larger returns in the domestic sector than in the foreign sector (and will therefore move there) as the the difference between the borrowing rate and the lending rate decreases.
Two Sector Model
Just a reminder: rank your goals (attending to interest and feasibility), start by conceptualizing and implementing just part of what you want to do. Small and complete beats visionary and unimplemented.
That said, after reading about your interest, I am wondering if you would like to see how much you can implement of section 3 of:
http://www.uvm.edu/~wgibson/Research/Gibson_ABM_informal.pdf
Is that close enough to your interests?
Ordinarily, display considerations will come late in the game. Focus on the substance of our project, and ideally you will discover as you implement what visuals will be useful.
Number of Agents
This is an interesting and difficult question, and the answer depends on your goals. In some settings, it is appropriate to have a computer agent for each real-world agent. Often this is not feasible. Often it is not desirable even when it is feasible.
The big background question of course is whether the model results scale. That is, are your results sensitive to the number of agents? The more sensitive your results are to the number of agents, the more important it will be to have a realistic number of agents for your application.
In this class, I am not asking you to calibrate your models to real-world data. Furthermore, I don't want you sitting around waiting for results instead of programming. So I encourage you to use a small number of agents (dozens or at most hundreds). However, if you suspect your results depend sensitively on the number of agents, it would be a good idea to do a sensitivity analysis (e.g., set n=50, 500, 5000).
Note that it is unfortunately easy to write code that runs quickly for 50 agents and won't ever terminate for 5,000 agents. (Try enumerating all possible subsets, for example.) You will need to be sensitive to this.
I hope this starts to answer your question. Otherwise, ask again.
class Role01(object):
def respond(self):
return "attack"
class Role02(object):
def respond(self):
return "run away"
class MyAgent(Agent):
def initialize(self, role):
self.role = role
def respond(self):
response = self.role.respond()
if response == "attack": do_something()
elif response == "run away": do_something_else()
else: raise ValueError ("unrecognized response")