Stocks, Flows and State Variables in Minsky
System dynamics program with additional features for economics
Brought to you by:
hpcoder,
profstevekeen
Finally downloaded Minsky and began trying to understand various economic models in the context of how they would be implemented in the program. Nice work! Coming from a dynamic systems and control engineering background one thing jumped out at me however.
The columns of the Godley table represent stock variables which are the output of integrators so can also be called state variables. However the algebraic constraint dictating the sum of the columns must equal zero suggests one of the variables is not independent so in actuality should not be considered a state variable. Do you recognize this and just compensate internally by reducing the number of integrators by one and simply compute the dependent stock variable from the others?
Also when you have multiple Godley tables there could be additional algebraic constraints further reducing the number of independent stock variables. For instance if one Godley table is set up for the Central Bank (CB) and another table for the aggregate banking sector (B), then the some of the Central Banks liabilities are algebraically related to the aggregate banking sectors assets, those being the reserves held at the CB. It would seem then in this case there is a redundant stock variable and integrator.
Is this redundancy in stock variables and consequently integrators something you try to eliminate?
Finally what needs to be added to get the multi-sector capability implemented or can it be implemented now?
Thanks!
Last edit: Michael Bridges 2014-01-04
Actually, "State variable" is a good suggestion, because I was always
searching for a term that covers both stock variables (Godley table
columns) and integration variables (representing physical flow
accumulation).
The row sum constraint is not enforced, but if it were, it would be
possible to reduce the system dimension by the number of Godley
tables, as you say. However, I'm sceptical that such an optimisation
would lead to noticible performance improvements, given that driving
the GUI still dominates over the simulation costs.
As for asset-liability pairs, they refer to only one state variable,
which is why the definitions in each table must be consistently
enforced by the system.
Cheers
On Sat, Jan 04, 2014 at 06:11:19AM +0000, Michael Bridges 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
Thanks for the response. You wrote:
"As for asset-liability pairs, they refer to only one state variable,
which is why the definitions in each table must be consistently
enforced by the system."
Just to clarify, does this mean the number of integrators is different or the same as the number of columns in a Godley Table?
Is there anything preventing me from defining a single Bank Godley Table with Asset accounts and Liability accounts and then computing the Bank Equity myself outside of the Godley table using stock (state) variables and an equation?
This would be my way of eliminating the extra integrator associated with the Equity account that would be present if it was included in the table.
It would also allow me to not have to explicitly track how various flows affect the bank equity as it would be computed automatically.
It goes against my grain to integrate flow variables in a manner that attempts to ensure their integrated values are algebraically constrained as opposed to integrating the minimal number of 1st order state variable differentional equations and enforcing the constraint in an algebraic output function. I worry about drift. :)
On Sun, Jan 05, 2014 at 06:57:29AM +0000, Michael Bridges wrote:
In general, it is different, but in a simple case of a single Godley
table, with no integrals elsewhere on the canvas, the number of
integrators (state variables) is equal to the number of columns.
Nothing prevents you from doing this. In fact, if you put a "-"
operation just underneath the Godley icon, and connect all the stock
variables arrayed across the botton of the Godley icon to the "-"
port, the output defines the "missing" column.
Actually, that's a good point, and it would be interesting to see if
the sum, as computed by the afrementioned method drifts away from a
stock variable defined so as to zero out the rows of the Godley table.
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
Forgot about the integrator icons. So if I have two Godley tables with no other integrator icons on the canvas do the number of integrators equal the sum of the number of columns from both tables? If not can you explain the difference?
By the way you might not see drift with simple dynamics but chaotic dynamics would probably drift based on minor differences due to finite machine precision.
On Sun, Jan 05, 2014 at 07:07:30PM +0000, Michael Bridges wrote:
If you have two Godley tables that share a column (asset/liability
pair), and there are no other integration operations in the system,
then the number of state variables is one less than the total number
of Godley table columns.
In other words, each shared column (asset/liability pair) counts as a
single state variable (integrator). The system tries its utmost to
ensure that the column names are unique, or only appear as a pair of
asset/liability columns linking two tables with consistent
definitions. It will refuse to simulate the system if this condition
is not met.
I hope this explanation helps. Its an important part of the
double-entry bookkeepoing conventions that Minsky emulates - something
I'm not personally all that familiar with :).
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
You wrote:
This is a detail I definitely want to make sure I get right so thanks for your patience. So it sounds like the key concept involves asset/liability pairs across two Godley Tables which you seem to indicate equal "shared columns".
So what is the formal definition of an "asset/liability pair" or "shared column" between two Godley Tables?
My guess would be it is columns that have identical account names but that have the asset class defined as "asset" in one table and "liability" in the other. Is that correct?
On Mon, Jan 06, 2014 at 03:25:03PM +0000, Michael Bridges wrote:
Correct.
--
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
Got it Thanks!