Recent Posts

Wednesday, May 17, 2017

Advantages Of Discrete Time Models In Economics

One sometimes encounters continuous time economics, such as the Minsky package developed under the direction of the economist Steve Keen (link: In a continuous time model, the time axis is the real line, instead of being discrete steps (as in the Python sfc_models package). This article discusses some of the advantages of the discrete time formalism.

The first key advantage of discrete time is that all economic and financial data are ultimately only available in discrete time. (This might be surprising for the case of finance, but it should be noted that the entire premise of the profitable high frequency trading industry rests upon the observation that financial transactions are not instantaneous. Continuous time models are used in mathematical finance, but these should be interpreted as approximations of the true system.) A continuous time model is therefore one step removed from the data, and we would have to be cautious translating properties that appear only in continuous time series.

Even comparing a discrete time model to data is always going to be a difficult process in practice. For example, how do we treat monthly data in a model that evolves quarterly? We are always going to lose information (or forced to insert information) as we change data frequencies. Furthermore, it is difficult to align data that released with a variable lag to the calendar dates that they represent.

A second key advantage of discrete time is the simplicity of treatment, particularly if random variables are involved. As soon as we introduce randomness, it is incorrect to assume that the derivatives of any variables exist. To what extent solutions exist, they are defined in terms of Lebesgue integrals, a mathematical area that is not particularly well known. Almost all the work in analysis proofs would involve extremely obscure corner cases. (“What happens if government spending is $20 if t is rational, $0 otherwise?”) It is one thing to define continuous time models where the components are passive resistances and capacitances that obey simple laws of physics; the interactions created by entities reacting in real time to inputs creates the possibility of highly pathological outcomes.

A related issue is the question of time delays. Within a discrete time model, a time delay is straightforward: we add a new state variable that is the original variable from the previous period. In continuous time, the amount of information contained within any non-zero interval is theoretically infinite. (For example, we could theoretically encode all human knowledge into a signal that lasts less than one microsecond. In practice, information channels have finite bandwidth, so we do not see this effect.) In order to model a time delay, we have an infinite dimensional system. Statements of mathematical results (such as stability theorems) we have available for infinite dimensional nonlinear systems would comprise a very small book.

Finally, accounting is unusual within a continuous time system. We are no longer doing familiar accounting with stocks and flows that can be related with basic arithmetic. We instead would have to define all accounting relationships as stocks being the Lebesgue integral of flows. Such an environment is much less intuitive, and more prone to error. Furthermore, there is no clean way to model events that cause discrete jumps in stock variables, without invoking the Dirac Delta Function. This so-called function is not actually defined as a time variable, and so it is difficult to relate it to system behaviour that is defined as mathematical operations on time series.

The only real cost to discrete time analysis is that some of the more easily understood stability results (such as Lyapunov functions) are lost. However, it is possible to define the discrete time equivalents, and the general lack of computational tractability of such results for high dimensional systems makes the loss of this theory not practically significant.

(c) Brian Romanchuk 2017


  1. Good post.

    Quote James Tobin here:

  2. My understanding of minksy is that the equations may be continuous time format, but the program steps along in fixed steps. Keen refers in to using time constants for the steps.

    1. I didn't have time to go through the entire article; in what section did he refer to a time constant? Thanks.

  3. btw, did you say why you didn't just use SimPy for your modelling?

    1. The first reason is that I had never heard of it until you mentioned it. The second is that my package develops the equations from a high level description of the economy (using objects). Don't know enough about SimPy to know how much it would help on that task. Finally, I want control over the solution method. If the SimPy solver helps me, I could try interfacing to it, but otherwise I want the ability to use whatever library is available for the problem at hand. I expect that I will need to develop my own solver for some problems.

  4. It's not just the data - the real world is discrete.

    Actual economic activity consists of a large number of discrete transactions, not a set of continuous processes. A "true" model might divide time so that every single transaction fell into its own separate (but very, very short time period). All a normal discrete model does is dial down the granularity, so that a single time period covers many transactions.

    (One caveat here is that within a business day, the actual order of transactions may be ambiguous, but that arguably makes it even less like a continuous function.)

  5. It seems to me that when we build a model that unfolds over time, it becomes unpredictable except for the assumptions we place into action. We are making those action assumptions at the time of construction, not at the discrete future time when it finally arrives.

    Hence, the tedious process of calculating sequential interim levels and applying predicted responses is merely a detailed projection of current thinking.

  6. Quote attributed to James Tobin from the link above : "From one period to the next asset stocks jump by finite amounts."

    Financial stability or instability is not due to the mere passage of time or the introduction of time into models, but rather, most likely it is due to the fact that intelligent agents (lenders, investors) adjust behavior in a relatively coordinated fashion. During an asset price boom the prices adjust upward as assets turn over with newly created debt at the margin for producing new assets and for resale of comparable old assets in primary markets. During an asset price bust the prices adjust rapidly downward as assets turn over without much newly created debt (collateral values are falling so debt finance dries up) and new production does not materialize for a class of assets which are falling in price so levels of investment go down. The feedback between debt, asset prices, and economic stability is a variable parameter set by intelligent agents operating with a model for the behavior of the other intelligent agents. When others are financing assets with new debt it is rational to invest up until one things the others will stop refinancing asset prices higher with new debt then it is rational to seek liquidity or to avoid purchasing assets with debt finance. The timing of the change in rational behavior is not certain because one is trying to anticipate the greed or fear of financial intermediaries (who provide or withhold credit) and of investors holding a wide variety of gains or losses in particular asset positions.

    In growth stock investing there is a paradox: a new high price means all old owners are sitting in a gain and only very short term owners, such as high frequency traders or day traders, may be taking a loss on a position. An investor holding a gain tends to be less fearful then one taking a loss, therefore secondary markets are prone to asset price bubbles even in a normal period due to feedback from rational psychology and distributed decisions of intelligent agents.

    Regarding the use of a digital computer to solve a continuous-time system there are only two methods: either the exact solution is known in the calculus using symbolic methods, and it can be solved using a symbolic solver; or a numerical method must be used to approximate the continuous-time solution using a discrete-time system model.


Note: Posts are manually moderated, with a varying delay. Some disappear.

The comment section here is largely dead. My Substack or Twitter are better places to have a conversation.

Given that this is largely a backup way to reach me, I am going to reject posts that annoy me. Please post lengthy essays elsewhere.