More on Mathematical Economic Modeling
Alex Tabarrok heaps praise upon “Quantitative Economics,” a new online text. Here is part of its description:
This website contains a sequence of lectures on economic modeling, focusing on the use of programming and computers for both problem solving and building intuition. The primary programming language used in the lecture series is Python, a general purpose, open source programming language with excellent scientific libraries.
…
If you work through the majority of the course and do the exercises, you will learn* how to analyze a number of fundamental economic problems, from job search and neighborhood selection to optimal fiscal policy
*the core of the Python programming language, including the main scientific libraries
*good programming style
*how to work with modern software development tools such as debuggers and version control
*a number of mathematical topics central to economic modeling, such as
1) dynamic programming
2) finite and continuous Markov chains
3) filtering and state space models
4) Fourier transforms and spectral analysis
Look, I enjoyed studying Markov chains as much as the next guy in grad school–actually I think the guy sitting next to me in class hated them–but I think the above is a perfect illustration of the problem with modern, mathematical economics. The world is not stuck in a terrible recession right now, because too few people understand Fourier transforms.
I am up to chapter three in the course. I will use the skills I am learning to START the recession of 2018.
“The world is not stuck in a terrible recession right now, because too few people understand Fourier transforms.”
Nor because too many people understand Fourier transforms!
Sounds like an interesting introduction to computational mathematics. I wonder why they say there’s a relation to economics here.
I think there is a real place for mathematical modeling, especially in microeconomic analysis. I generally agree that too much focusing on math models in academic theory discussions obscures more than it elucidates, but outside the academic world, there is a real place for these models, and that online text looks like a good introduction to me.
The important groundwork is to be systematic about identifying the assumptions that went into such a model, and carefully explaining where each assumption comes from, why it is plausible, and where the limitations are.
I might model the presumption that agents will seek to maximize some objective “utility” function, but this is quite a simplification as compared to real people who have various inconsistent preferences. No one has ever programmed something that can convincingly pretend to be human.
Yeah but so what? Go work in the data analysis department of any large corporation. The question we’re asking isn’t, “How can we correctly model human behavior?” The question is, “How can we use this huge stockpile of data that we’re sitting on to make predictions that improve our bottom line?” Nobody cares that the answer to that second question doesn’t fully conform to a priori narratives about homo economicus. If it makes us more money for a few quarters, it was a good idea. After that, we’ll cook up another model that performs even better.
I mean, it’s not like the people who compute things like this feel like they’ve come up with the meaning of life. A short term, modest improvement in revenue can still be worthwhile, even if it makes the Ghost of Mises cry a little. He’ll be okay. He’s a thick-skinned Geist.
“I mean, it’s not like the people who compute things like this feel like they’ve come up with the meaning of life.”
To be fair, there are SOME who do. But not the sensible ones.
Plenty of large corporations have done some absolutely dumbarse things because they convinced themselves the data showed there was justification for it. Just look at GM absolutely determined to make big cars while everyone was buying a Toyota Corrola. Look at how many people got all excited over Facebook shares, just because Facebook has a lot of (non paying) users.
Also, when used properly, data collection is your raw input data from a real process, this may be combined with some modelling but never confuse the two. An observation is a piece of reality, fitting a model to the observation is how you interpret those pieces of reality, very different step in the knowledge process.
If you collect sales data like, “We sold 100 hamburgers last Tuesday” there should be no model involved. Later on you may think about WHY sales figures go up and/or down, but keep the raw data strictly separate.
Tel, all you’re really saying is that people have to think whenever they have to calculate. Yeah, I agree. Good analysts think whenever they analyze. If you’re under the impression that people in the real world are just mindlessly doing math, then you might want to job shadow an actual analyst for a couple of days and check it out.
If everyone understood economics perfectly, would there be no recessions?
Depends on whether they wanted to be jerks or not.
😀
Anyway, I think this is what you’re looking for:
Ron Paul Lecture – “The Great Enabler: The Rise of the Federal Reserve and the Growth of Government”
[WWW]http://www.youtube.com/watch?v=ehh77k0rgPs#t=30m00s
I love FFT’s I use them ALL the time. They are great. But I would not use one to predict the future. Only study the present and the past.
Are you expecting the sun to rise tomorrow morning?
At least they’re doing the code part right: picking python and teaching modern software development practices like version control.
Python is a language written by someone who had seen perl and also seen R and decided to reinvent the wheel by coming up with something halfway between the two.
Every generation in the computer industry someone figures it’s easier to start writing everything from scratch rather than being bothered learning about what had already been done.
Probably has something to do with the stupid Copyright laws.
Both perl and R are licensed under very generous terms, and python is licensed under similar terms.
Yes, some stupid stuff has happened in the IT world because of Intellectual Property laws, but this would not be a good example.
Not to turn this into a programming language shootout, but take a look at this comparison of perl and python by people who have used both. Look at the general character of statements that are more true of python vs more true of perl.
Turn it into a shootout! Why not?
There is a wide variety of open source code written in this language
See what I was getting at?
I think they must have chosen a somewhat strange set of people to answer those questions.
THIRD-PARTY LIBRARIES ARE READILY AVAILABLE, WELL-DOCUMENTED, AND OF HIGH QUALITY
147 out of 292 picked Python over Perl
You have to be kidding me? CPAN is massive, and easy to use, and readily integrated into every major Linux distribution. As of now CPAN has 124408 Perl modules. I did a google search:
“what is the python version of cpan?”
Sure enough, on Stack Overflow someone asks exactly the same question. How about that? Out of a sense of fairness, I also tried googling the question:
“what is the perl version of pypi?”
But no one seems to ask that question… because everyone knows about CPAN already. For what it’s worth, PyPi has 34499 packages or less than 1/3 of what CPAN has. OK, we could subjectively argue about which modules are better documented, but since documentation is an inbuilt part of the perl module format, and CPAN offers a copy of the module documentation as a web page, and a fairly easy to learn in-code documentation style is part of the perl distribution in any case… it’s hard to argue that perl makes it difficult to document your code. Overall I think the majority of CPAN modules are pretty decent, not that I’ve tested all 100k+ modules so I probably run into the modules that other people recommend.
At any rate, seeing python win that particular question makes me wonder where these guys are at when it comes to the more subjective questions.
I might point out, in terms of beginners and teaching. If you learn a language with a syntax based on C you have:
* C (a low level language, with huge existing codebase in systems, network, and embedded projects).
* Java (a highly object-oriented language, good for Android development, and used by many large web projects, both server-side and client-side, and good beginner language because of expressive stack trace and training for good habits).
* perl (a scripting and reporting language, good for data extraction, and report generation, very versatile)
* PHP (a very rapid development language, used by WordPress and many other well established server-side web applications, good for beginners because they get results quickly).
If you teach people python syntax, basically the only thing they can do is use python. Since language syntax has an implicit network effect, C-style syntax has already won, the rest is condemned to the fringes. Teaching people python wastes their precious lifetime. Teaching them ruby is worse.