-
Notifications
You must be signed in to change notification settings - Fork 2
nathan_notes_cleaned
What are modules we would like?
- Dynamic Stochastic Optimization
- General Purpose Algorithms for calculating expectations
- Nice example of the expectation function
- Simulation of population behaving according to the defined rules.
- Computing ergodic distribution (in cases where that is useful)
- Tool for computing stats on the simulated population that can be compared to stats on the data
- Doing the indirect inference
- Events-study module
- Input: "what should population look like at moment the event occurs."
Note from Rob: * Talking about APIs * There are different types of APIs * In agent community: * inputs and outputs are the same -- populations * "taking a pointer to the population" is what agent communities do * "moving away from APIs" * * "Programmable interfaces" with ACE * Example: 6-7Mil EUR CRISIS model * spent a lot of time building these formal APIs and etc * done it in MASON * have functioning code * "you probably won't like their consumption functions but the broader abstract framework may be very useful" * "EURACE" and "CRISIS" -- but another half a dozen of them. * Nathan can reach out to them
-
API for markets meeting as well
-
API for Krusell-Smith -style
A Q for the ABM folks in the audience: "What have ABM folks learned about designing code frameworks in a general, flexible way?"
An aside: we are essentially asking to create something like an API. In my experience (and likely the experience of others!) is that a number of examples are the best way to determine what this should look like.
Q from audience: "can't we just compute distribution directly/analytically from activity of agents?"
-
Perhaps not for some complicated market and / or learning structures
[====================] c b a
Participants experience / background:
- private sector
- work on Miranda & Fackler's "CompEcon" toolbox
- financial friction with heterogeneous-agents
- research software development
- occasionally binding constraints, computational macro
- SCE and Dynare
- Johns Hopkins PhD candidate
- HH leverage, heterogeneous agent models with occassionally binding constraints.
-
licenses are very important
- CFPB, for example, uses a variety of licenses for content: public domain and creative commons cc0, cc1
-
Private Sector :
- private sector must stay away from GPL software
- to get substantial private sector support, use a rather open license:
- BSD, MIT
Audience question: "Why is GPL bad for private sector?"
- anything using it has to be open source
- diffcult to sell product, if all code must be released open a the same time."
Note: "Might be useful to have a form letter for researchers who sit behind the government," which can be sent off in the case of legal inquires.
- Would be great to have a letter I can get from the chief council discussing licensing issues from the research organizations perspective.
CFPB has policy on github which has been forked by a lot of people.
-
blog post here
-
"Taken from Department of Defense, who is really on the ball here..."
CFPB has open source policy template
-
"What is the open-source wizard?"
-
Something to help automate the checking-off of the checklist.
"Getting people to uptake can take some dedicated effort."
- "I trolled help forums/email lists for people with problems that my tools could address"
- Example
- "You need to have badges of honor for committing to this. Need to build this into community."
Participant: :
- "I have software posted online that, to this day, is downloaded, but not a single person sends anything back"
- "Haven't figured out how to get people to contribute back."
Participant: :
- "IMF, Fed, others could incentivize participation in a production toolkit in a natural way: put contributions to such a project on performance reviews, then really get people to contribute back."
Presenter: : "this brings up a very important topic: Governance!"
- "Need to have a few people with a vision -- some working group, for example, which thinks about branding, social engineering."
- Q: "how do you offer support for your open-source code?" This is extrememly important for the life of your project.
- "SLA: Service Level Agreement. No real support for open source. Have to have some channel for responses. Working group!"
- " Nothing worse than finding a bug and submitting bug report, and getting radio silence. Then you just walk away, 'thi project is dead...' ."
- Particiant: : "RebHat/Centos as an example."
- Presenter: : There are now 7,000-person conferences for Redhat and related work. Creators of the creators of Redhat tell a story of it suddenly striking them that the key element of a successful software environment is not the quality of the software itself (alhtough that is important), but rather the support and maintenance and 'teaching' infrastrcuture that supports the software. An insight which led to their rather successful model..."
Q for the audience: "how will you deal with support?"
- this is a key issues for uptake
Participant: : "one thing to encourage:" if people use code, attribution important.
- some licenses enforce this, but it may be 'better' to simply build a convention of attribution.
A question for the audience: What do economists want in a language?
Others:
-
cheap -- $
-
"proper editors" -- debugging
-
object orientation?
-
[functional options]
Questions about Python:
-
Overhead of using external libraries
- EXTREMELY USEFUL paper: http://economics.sas.upenn.edu/~jesusfv/comparison_languages.pdf
- In particular, see Table 1 for some rough comparisons
-
Julia:
- multiple dispatch
- looks like method overloading
- Very nice parallel features built in
- parfor, parmap
- can install on aws cload, google cloud (gcloud)
- @parallel (reducing_argument) [variable?]
-
IPython Notebook:
- live updating charts?
- dynamic plots
- 2d plotting
- IPython 3 will be released soon, and they will open source it then
-
Ask presenter if consider adding lecture tutorial sub-chapter on simple unit testing for scientific programming -- something which will be much needed for getting citations for an "e-journal"
-
Send around examples of IPython notebook
-
Participant: : "AgentScript"
- 'efficient for ...programmers.'
- "Top-down approaches: When is it useful?"
*
*
- Heterog-agent models: "what is the highest-level abstraction?"
participant Q: : "why not just build 10 models and see if they fit this or some framework?" Likely to be a good foundation.
Q: "Isn't there a tradeoff? If make the language definition for one particular subset of models, may never change the model itself -- may get locked into a small subset."
Presenter Q: "Tried to imagine how to extend Dynare modeling langauge to accomodate hetero-agents. Hit some limites " "What I can show you will show half the solutions. "
Presenter: :
- "This example doesn't work for OLG or transitions from one type to abother"
- eg OLG (transition is trivial)
- eg transition from one type to another.
- For forming types of agents
Participant: : "what about equations of motion for agent attributes."
Presenter: : "Not general enough."
Presenter: : Examples of YAML code.
Presenter: questions:
- main challenges of top-down approach
Participant: : "In JEDC 2010, special issue, lots of work on tracking distributions."
- Michael Reiter (sp)
- Michel Juillard and others
Presenter : Extending Dolo
- "Describing the problem isn't the issue; the issue is solving"
- participant : "many solution methods exist, may need to prod the solver in a direction. Eg Computational HH Finance group NBER."
Participant : Here's an important question / issue:
- I never develop a model in dynare; I develop it elsewhere
- I start off simple, and gradually add more and more to it over time to get to the 4000 equation model.
- I never build the 4000 equations right away. Start simple
- Seems to me that the syntax that we come up with has to include the process that we use to come up with and create models.
- Need to think about this portion
Presenter :
- This suggests to me the modeling langauge / user interface we've been talking about
Participant Q: we all have our own little tricks that we've come up with over time. How do we think about how this person/developer leaps from their own approach now, to the modeling framework?
Participant : What about the pragmatic/practical approach an earlier participant mentioned: why don't we just do rebuild the 10 comment models, and do refactoring? That'd be great.
- Theme: "everything by examples."
Two participants: : "I just want to see the code. I don't care about the GUI. I just want accuracy, then eventually speed. I think that if we can get the modules done in a general framework, that would be a tremendous contribution." "Also, this may inhibit development -- I need to see a lot of the guts. Endogenous Gridpoints doesn't alwa"
Participant : "RStudio and Stata build the equation in front of you so you learn how it looks as you do it."
================================================================================
- Conference, upcoming Other possibilities:
- SCE
- SEDynamics
Participant : This summer, committee for Soc Comp Econ Dynm. "Would be great to put something together along these lines."
Presenter : "Sugestions?" ----------------------------------------------------------
Participant :
- Swarm: wrt tower of babel John Holland: "also necessary for requisite diversity, from darwinian perspective"
- explore vs exploit
- WHo's done the most effective version of this?
- climate scietists and atmospheric
- ENCAR; $100 million
- "National institute of finance" $1 billion
- Aspiriationally: "ask some branch of government for some offical support"
- WEHIA 2009: Ruby was new thing.
- Customary procedure to pick sexiest platform
- 2010: Python for agents
- At Mason, MASON platform
- Sortware to support
- AScape at Brookings
- Repast filled it out
- Substative institution behind it is important.
- "Useful to ahve a fight because arms race"
- Venues for support: NSF
- typically does not support tool development.
- will fund repositories and replication. HMMM.
- "could think of NSF "
- openABM.org, NSF funded.
- but these guys: CISE
- "computer information science and engineering"
- "have one more zero than econ guys"
Wishlist of papers: "Say, 'I'd like to see my own paper in this journal.'"
Question: "what's the goal?"
- Community such that people pushing the bounds
- Create a product such that people not pushing the bound can use the tools that people pushing the bounds produce.
Presenter : "People pushing the bounds still hampered by common things -- reinventing the wheel." "Goal is to make interchange of ideas easier. Appropriate starting point is take example of papers that are reasonably well-known, make representations of these papers such that they are expressed in the same way."
"A number of policy institutes can benefit from something like this.."
Participant : "If you don't have people at the cutting edge, gotta allow flexibility. Someone at cutting edge doesn't want to change langages, switch from MPI to GPU, etc. "
How do we get some core models?
- bounties: "We'd love to see some of these -- whoever produces best result"
- related: reach out to freinds and colleagues: when assign projects to students in classes, assign them the effort of putting things online
- related: posting problem sets
- Q: "how to vet the contributions?"
What are some core models we'd like to see?
- standard life cyle, labor decision, retirement
- labor supply is a bounty
- "norms is Bewley."
- participant: "unclear what Bewley is sometimes...
- labor supply
- tradition of applying to INTL macro
- financial deepness
- model with default -- endogenousn
- temporal difference learning
- non-medical behaviors
- [health models]
- proper continuous choice with discrete choice.
- endogenous insurance pricing -- check with.
- victor-rios-rull -- default paper (borrow on credit cards)
- multiple equilibria. "Not just solving the model, but finding all the roots."
- homotomy method.
- estimating model: 2-step method, don't need to solve the model. (eh?)
- after estimate the model
- shoot email and ask about example.
- possibly contribute: incetivize students.
- Everything is a theorem
- publish code: "its a theorem but no proof."
- "would be great if API such level of generality" -- eg plug and play behavior heurisitics.
- what would be a concrete example? Shove some fraction in here.
- example: hyperbolic discounting.
-
very explict role for financial sector, endogenous credit limits
-
higher income inequality, more fragile the financial sector.
-
these models for open economies
-
tax system.
- macro model, heterog, occatianlly binding collateral constriants for macro-predential policy
- ramsey
- macroprudential, no ramsey, less optimization a la Rob
- move beyond loanable funds model. "Not how banks work in the real world." If follow this can't get financial fragilities.
- JEDC special issue -- contribute to
:
- Heterog firms models
- unertainty shocks.
- "will get huge-er model."
:
- recursive preferences.
Python vs Julia:
- Julia can call arbitrary Python code
One option:
-
authors of these papers and models we've named: ask students to replicate in this framework. set this as summer RAships.
-
Importance of getting a very good launch.
-
concrete commitment from high-quality people is key -- but what must we ask?
Participant :
- Thinking aloud
- preconference, how to version control with git, how to work as a team,
- "git-economics"
Participant : "software carpentry"
Participant :
- organization that produces a wishlist for things to be solved?
- organization that can channel funding
- Can be an established, or new. What are options?
- open-source world is second-best.
Presenter : intial stage: clear mission and focus, establish in people's minds what the project is. * specific core focus, specific core identity. ("if about everything then about nothing")
One thought on how to organize something somewhat amorphous: * get "little dictators" for sub-sections of the project * eg: interpolation
R Math library:
- c library developed by the R team; actually used by the Julia team.
- "good example of how this has succeeded."
- "more of a bottom-up approach."
Numfocus foundation http://numfocus.org/
"You want to be more specific than that -- want to focus on econ."
Q: "Other modules?"
"What should our list of APIs be?"
- graphically visualize the graphics
- praticipant sugestion of dynamic visualizations / testing
- Bayesian estimation of parameters
- interpolater?
- bootstrapping
The idea of the e-journal. General idea:
- use permanent archiving system, such as Github's new code archiving for academics, to "freeze" something like an IPython notebook "vignette" of code that demonstrates something useful or interesting. (New idea, replication using a toolkit, something "letters"-worthy.)
- "There's a Nature paper with an IPhython notebook"
- Example not mentioned: the Journal of Statistical Software.
- others: Stata journal, Dynare Journal