Adding random number generators to Minsky
System dynamics program with additional features for economics
Brought to you by:
hpcoder,
profstevekeen
While Minsky is useful to illustrate how economic systems can be non-linear, it is my impression that it should have random number blocks to allow for exogenous events to affect the economy. And they can be simple random number functions, such as Gauss, poisson, etc. For example, Sornette and Anderson (2002) replicate the various non-guassian distributional characteristics of actual stock market series using only one random Gaussian variable in a model of the stock market bubbles and crashes:
"A Nonlinear Super-Exponential Rational Model of Speculative Financial Bubbles"
D. Sornette (Univ. Nice/CNRS and UCLA), J.V. Andersen (Univ. Nice/CNRS)
(Submitted on 18 Apr 2001 (v1), last revised 19 Apr 2002 (this version, v2))
http://arxiv.org/abs/condmat/0104341
Sornette has gone on to develop a stock market prediction model based in part on this work that has gained notice of professional money managers:
http://www.ted.com/talks/didier_sornette_how_we_can_predict_the_next_financial_crisis.html
In my opinion, Didier and Anderson's model of speculative financial bubbles "cheats" by assuming a jump process of regime change without explaining the economic basis for the different regimes. My guess is that non-linear models of the economy could explain these different regimes, but to replicate the distribution of actual macroeconomic variables in a manner as rich as Didier and Anderson's requires including simple random variables in the model.
I agree. I created a ticket #366 to cover this. There are some
technical issues though, as I note in the ticket description:
We did have a uniform rng in an earlier version of Minsky, but I
removed it when we moved to using Runge Kutta solvers, as I wasn't
sure how to code a derivative of a random function.
Technically, it is simple to add in an arbitrary nonuniform RNG, with
the distribution describable via a text string. The difficulty is to
ensure that it works correctly ith the solver. The derivative question
is only relevant for implicit methods, so we may need to disable the
selection of implicit methods when a random component is included. But
I also need to sure that the ODE solver works correctly - stochastic
differential calculus is subtly different from regular differential
calculus, in a way that I'm aware of, but by no means expert
on. Unfortunately, the guy in my department who knows most about this
stuff retired a few years ago :(.
Cheers
On Fri, Sep 27, 2013 at 05:25:13PM +0000, Chris Gadarowski wrote:
--
Prof Russell Standish Phone 0425 253119 (mobile)
Principal, High Performance Coders
Visiting Professor of Mathematics hpcoder@hpcoders.com.au
University of New South Wales http://www.hpcoders.com.au
I would like a RNG too for similar reasons.
It seems to me that a RNG in minsky doesn't need to be an irreversible function like with typical RNGs for crypto which must be irreversible to be secure.
Something like a white noise function would do for simulation purposes.
On Tue, Dec 31, 2013 at 03:24:31PM +0000, jdiligence wrote:
The plan is to expose the underlying pseudo random number library of
EcoLab, which provides a range of generators, and and arbitrary
distributions.
The issue is that some thought needs to be given to what a random
variable means in a differential equation context. To handle this
correctly requires some understanding of stochastic calculus, for
which I need to hit the books to study. Hopefully, that will happen
this year.
Real random sources can be provided on the Linux platform by accessing
the built in entropy harvester of the kernel (/dev/random), or by
linking to the HAVEGE library on other platforms. But is there much
call for that?
Cheers
--
Prof Russell Standish Phone 0425 253119 (mobile)
Principal, High Performance Coders
Visiting Professor of Mathematics hpcoder@hpcoders.com.au
University of New South Wales http://www.hpcoders.com.au
A real random source might be useful if you wished to convince someone that you had not somehow fudged your data.
The reason why there is no random number tool in Minsky (there was one
initially), is that solving a stochastic system via Runge-Kutta is undefined.
What may work is a random populate option to the data tool - ie the
random nature is computed up front prior to starting the simulation.
--
Prof Russell Standish Phone 0425 253119 (mobile)
Principal, High Performance Coders
Visiting Professor of Mathematics hpcoder@hpcoders.com.au
University of New South Wales http://www.hpcoders.com.au
A random populate option to the data tool would be quite useful.