State Space Models

All state space models are written and estimated in the R programming language. The models are available here with instructions and R procedures for manipulating the models here here.

Saturday, June 13, 2026

The Neoclassical Growth Model

 


Harvey Leibenstien's Malthusian Model

 



Notes

You can run the basic Leibenstein model (here).

The Many Malthusian Models

 

You might conclude from casual reading or if your research stopped in 1798 when Thomas Robert Malthus published an Essay on the Principle of Population, that there is only one Malthusian Model, the one picture above as a Directed Graph. In the original model, Population (N) increases geometrically and Agricultural Production (QA) increases linearly. Eventually a Malthusian Crisis is created when S=(N > QA). The crisis is inevitable.

You might also conclude from casual empiricism that the model is wrong because technological change in Agriculture has made sure that growth in QA is not linear. So why should we bother with the Malthusian model and why does anyone even continue talking about it: (1) The model is easy to teach and supposedly easy to disprove. (2) The Neoclassical Economic Growth model (the Solow-Swan model) assumes that population growth is simply exogenous, along with technological change, and really offers no demographic theory. (3) Unified Growth Theory puts the Malthusian and Neoclassical models together in one frame work. (4) Malthusian Theory has never convincingly been tested statistically. (5) The data to test Malthusian Theory only exists from 0 AD forward (see the work of Angus Maddison). And, (6) the two single equation theory (one for population and one for production) is better formulated as a systems model.


The systems theory version of the Malthusian model was first formulated by Kenneth Boulding in 1955. I'm going to take Boulding's work one step further and develop the Malthusian Model as a State-Space system (see the R-code below that can be run on line using https://rdrr.io/snippets/ using the program dse. When the model is run in the R programming language, the graph above is produced. In the right frame, you can see that QA increases linearly and N increases geometrically (exponentially) as called for by the original Malthusian model. 

The shock decomposition diagram in the left frame shows that (1) a positive shock to population (N, the first row) increase QA which peaks after six years and then begins declining and (2) a positive shock to agricultural production (QA, second row) increases population which also peaks after about six years. All the data are standardize, dimensionless and purely theoretical.

There is a lot of experimenting you (and I) can (and should) do with this model to convince yourself of its generality. You can experiment by changing values in the System Matrix (F).   Here are some experiments to try:
  1. Set f[1,1] = f[2,2] =1 and set f[1,2] = f[2,1]=0 to create a Random Walk hypothesized to be the original Malthusian Trap by Unified Growth Theory.
  2. Try reading Malthus' original statement (few people do here). Can you find any feedback and feedforward effects?
  3. Add some feedback effects to the original model f[1,2] <- -.5 ; f[2,1] <- .5. We expect Population to increase with decrease (maybe) with increases in QA (f[1,2] is a feedback effect) and we expect Population to increase QA as more people are farming (a feedforward effect).




Code

Models have a compact R-code in dse and can be run easily https://rdrr.io/snippets/. Cut-and-paste the following code into the Snippets editor window. When you run it, it should produce the shock decomposition diagram and the forecast in the graphic above.

#
#    MALTHUS
#
require(dse)
require(matlab)
f <- matrix( c(   1.070143e+00, 0, 0.09478143,
               0,  1.00000000, 0.09238426,
                      0.000000000, 0.00000000,  1.000000000
),byrow=TRUE,nrow=3,ncol=3)
h <- eye(2,3)
k <- f[1:3,1:2,drop=FALSE]
TRM <- SS(F=f,H=h,K=k,
z0=c(0.09478143, 0.09238426, 1.00000000),
              output.names=c("N","QA"))
stability(TRM)
TRM <- SS(F=f,H=h,K=k,
z0=c(0.09479164, 1, 1.00000000),
              output.names=c("N","QA"))
TRM
TRM.data <- simulate(TRM,sampleT=20,
,start=1,freq=1,noise=matrix(0,20,2))
TRM.model <- l(TRM,TRM.data)
#tfplot(TRM.model)
shockDecomposition(toSSChol(TRM))
tfplot(forecast(TRM.model,horizon=20))

Tuesday, March 3, 2026

World1 Model: The Limits to Growth

 


The graphic above displays data from the World1 Limits to Growth Model (Forrester, 1974). Historically, the 1972 Limits to Growth Report was important because it was the first modern challenge to the Unlimited Infinite Exponential Growth orthodoxy of Neoclassical Economics. The computer simulation model showed that, as a result of some reasonable assumptions about Natural Resource Exhaustion (e.g., Oil and Minerals), the World system was on a growth-and-collapse path.

To avoid Growth-and-Collapse, growth rates must be limited.

In another post (here), Gaya Harrington analyze the model in more detail and compares it to available historical data. In this post, I convert the World1 model into a State Space Dynamic Components (DCM) model to allow comparison with other World System models I have constructed and other analyses available in Systems Theory.

You can run you World1 Model using R-code here. The system is stable, nonlinear and cyclical. You can compare the World1 Model to the WL203 World Model** which is stable, linear and cyclical. Instructions are available in the R-code for conducting Counterfactual Analysis.


Notes

** The World1 Model and the WL203 World Model differ in the number of data points used to calibrate or estimate the models. The World1 Model uses six data points plus initial conditions (6 x 6 =12) while the WL203 World Model uses complete historical series (14 x 50 = 700) as data points.

Forrest (1973) World Dynamics: Second Edition (pdf).

World1 Measurement Model


Three Principal Components were extracted from the World1 data explain 100% of the variation in the variables (NR= Natural Resources, K=Capital Stock, POL=Pollution, QL=Quality of Life). The components are: W1=(0.440 N + 0.464 K + 0.4619 POL - 0.46659 NR), W2=(Overall Growth - 0.00684 NR) and W3 = (0.6143 POL + 0.354 QL - 0.596 N - 0.3616 NR).

World1 System Matrix

The World1 System is nonlinear, unstable and cyclical.


World1 W1 Time Plot





WL203 Model Measurement Matrix  


Three Principal Components were extracted from the World data explaining 97.3% of the variation in the variables: (N = Population, OIL = Oil Production, QA = Agricultural Output, GWP = Gross World Product, P.Wheat. = World Price of Wheat, P.Oil. = World Price of Oil, TEMP = Global Temperature, CO2 = Carbon Dioxide Emissions, Carbon = All Carbon Emissions, TotalFootprint = Ecological Footprint, EarthsNumber of Earths needed to maintain production, WorldGlobal = Globalization, LivingPlanet = Living Planet Index, URBAN = World Urbanization.

WL203 Model System Matrix



W1 Time Plot


W1 Steady State


A Steady-State Economy in the WL203 World Model can be created with the following command:

f[2,3] <- f[3,2] <- 0


Which eliminates the feedback effects from W2=(LP + P.Wheat. + OIL - TEMP) and W3=(P.Oil. + P.Wheat.- OIL - EF), in words,  the feedback effects from the World-Market-Global-Temperature controller and the World-Market-Ecological-Footprint Controller.

Eliminating the Historical Feedback controllers is not a reasonable policy recommendation. However, reducing growth rates:

f[1,1] <- f[2,2] <- f[2,3] <- .9

Will produce a very rapid steady state in the graphic above. The same aergument made by the 1972 Limits to Growth Report. From Google AI:


Two different Systems Models reaching the same conclusion: 

To avoid Growth-and-Collapse, growth rates must be limited.

I should also point out that Systems Models include Historical Feedback Controllers that are absent from conventional Economic theory (for example, see the DICE Model).



















Perspectives on the Limits to Growth









Here are the four World3 scenarios Gaya Harrington discusses in the video: BAU (Business-as-Usual), BAU2 (Doubling NR), CT (Techno-solution) and SW (Steady-State).




Notes


Wikipedia Links

The Club of Rome a nonprofit, informal organization of intellectuals and business leaders whose goal is a critical discussion of pressing global issues.

The Limits to Growth a 1972 report that discussed the possibility of exponential economic and population growth with a finite supply of resources, studied by computer simulation.

The Limits to Growth Digital Scan of the book.

World Dynamics Digital Scan of the book.

World3 Model system dynamics model for computer simulation of interactions between population, industrial growth, food production and limits in the ecosystems of the earth. It was originally produced and used by a Club of Rome study that produced the model and the book The Limits to Growth (1972).

Doughnut Economic Model a visual framework for sustainable development – shaped like a doughnut or lifebelt – combining the concept of planetary boundaries with the complementary concept of social boundaries.

Earth4All  an initiative launched in 2022 that promotes economic systems change to achieve sustainable development and social equity within planetary boundaries. The project builds upon the legacy of The Limits to Growth report from 1972 and is convened by the Club of Rome, the Potsdam Institute for Climate Impact Research, the Stockholm Resilience Centre and the BI Norwegian Business School.

Wellbeing Economy (WEGO)  a public policy framework in which the economy is designed to serve social, health, cultural, equity and nature outcomes.

Twelve Leverage Points The leverage points, first published in 1997, were inspired by Meadows' attendance at a North American Free Trade Agreement (NAFTA) meeting in the early 1990s, where she realized a very large new system was being proposed but the mechanisms to manage it were ineffective. 




Data Mining



Wednesday, November 26, 2025

Technology Long Waves

  


The Kondratiev Wave is an important element of World-Systems Theory. The graphic above is taken from Andreas Goldschmidt and gives historical specifics for technological cycles. Goldschmidt's formulation allows for the idea to be tested (one of the models I always test), is partially consistent with economic Growth theory (particularly if we do not assume a functional form for exogenous disembodied technological change in the Solow-Swan Model) and I can present some examples.