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.

Friday, August 28, 2026

World System (1950-2000+): The Economy of Canada


This page is UNDER CONSTRUCTION but you can go ahead an explore the Questions presented below using Wikipedia links and State-Space Models.


Unemployment is an important historical controller in Canada as is the Ecological Footprint. Here is a chatGPT report on the Unemployment effects of a Trump Trade War:



You can run the CA_L20 Model on my Google site using R-code.

Notes


Questions

  1. Do you agree with chatGPT's  analysis of Trump Trade War effects on Unemployment?
  2. What might the effects of a Trump Trade War have on Canada's Ecological Footprint?
  3. What happened between 1978 and 1996 to create feedback cycles with Canada's historical controllers, CA2 and CA3?


CNL20 Model Measurement Matrix



The CAL20 model has three component state variables that explain 98.4% of the variation in the indicator variables (taken from the World Development Indicators), the KOF Index of Globalization, the Human Development Index (HDI) and the Ecological Footprint (EF). CA1 = (Growth), CA2 = (LU-EF) and CA3 = (EF+L-Q-CO2-N).

CNL20 AIC Statistics


The best CN_L20 Attractor Path model takes input from the North America Regional Model (NA_L20).



CNL20 Regional Model




The best CN_L20 Attractor Path model takes input from the North America Regional Model (NA_L20).

NAL20 Model Measurement Matrix









 

Wednesday, August 26, 2026

Globalization, CO2 Emissions and Unemployment in Italy (World-System, 1950-2000+).


This page is UNDER CONSTRUCTION but you can study the graphic above and the State Space model outputs below. 




Notes

You can run the ITL20 Model in R-code (here). For more of my posts see Blog Roll: Italythe Boiler Plate and the Introduction to State Space Models.

Questions

  1. The ITL20 Model is stable and cyclical? A steady state can be maintained by the two historical controllers: IT2 = (KOF+HDI-LU-EF) a Globalization-Unemployment and IT3 = (LU-N-CO2-EG) an Emissions-Unemployment (see below), that is, Globalization and Emissions controllers. chatGPT concludes that these two controllers are tracking structural changes in the Economy of Italy. The historical structure involved IT3 = (Q - CO2) and the emerging structure involves IT2 = (Q -> -CO2). Do you agree?
  2. To make things more complicated, how do the two historical controllers (IT2 and IT3) relate to conventional problems facing Italy?


Wikipedia Links


ITL20 Model Measurement Matrix





IT1 = (Growth), IT2 = (KOF+HDI-LU-EF) a Globalization-Unemployment and IT3 = (LU-N-CO2-EG) an Emissions-Unemployment controller.


 ITL20 BAU Systems Matrix




Friday, July 17, 2026

World System (1950-2000+): The UK Economy

 


The video above shows the standard growth forecasts for the Economy of the UK. The forecasts are not great and have generated a lot of handwringing. The Economy seems to be slowing. Typically, commentators go from one time series to another showing that something bad or unexpected is happening. However, commenting on time series graphs is not a causal analysis and does not explain why things are happening. For that you need a model. The uncomfortable fact is that any macro socio-technical economic system is too complex to be understood with verbal exposition. What is possible is to (1) develop a model you can understand, (2) test how well model explains historical data and (3) use the model to forecast the future.

In this post, I will (1) develop a model for the UKL20 Economy, (2) show how it relates to conventional economic models and (3) show how conventional models do not adequately explain economic feedback loops. 

The UKL20 Model


Displayed above is the UKL20 Measurement Model constructed using Principal Components Analysis (PCA). The code names are:


UK1 explains 53.4% of the variation, UK1 + UK2 explain 88% of the variation and UK1 + UK2 + UK3 explain 93% of the variation in the indicators. The indicators are taken from the Kaya Identity:



Where N = Population, =Labor, LU = Unemployment, = Production, = Energy Use and CO2 = Carbon Emissions. The lower case letters are coefficients in a causal model.

The Kaya Identity works well for short-term predictions but in the long run, there are feedback effects between the extensive variables (N, L, LU, Q, E, CO2). Here is where the Measurement Matrix becomes important. 




The negative coefficients UK1=(-0.324 LU - 0.319 CO2) indicate negative feedback effects on the first historical state variable controller. In a standard direct graph, the negative feedback effects might involve the Labor Force, L, and population, N (see Climate Change, Air Pollution and Health). In the DCM model, the effects are on overall growth which is harder to represent in directed graphs. This is why I analyze the dynamics of the state variables (UK1, UK2 and UK3) rather than the individual indicators (see the UKL20 System Matrix below).

The UK2 = (0.6356 EF + 0.392 CO2 + 0.558 E - 0.321 L) balances the Ecological Footprint (EF), Carbon Emissions (CO2) and Energy Use (E) against the Labor Force (L)


The digraph above is a little easier to understand and the feedback effects are clearer.

Finally, the UK3 = (0.712 LU + 0.417 L + 0.3814 N + 0.2818 EF - 0.2818 KOF)




is a KOF Globalization controller. Notice that the UK1 and UK2 feedback controllers are unstable (see the System Matrix below and Unstable Feedback Loops).



Notes

Neoclassical economists might argue that adding markets for Labor, Production, Energy Use and Emissions are all that is needed. Unfortunately, Markets Won't Save Us.

Kalman, R. E. (2006) A System-Theoretic Critique of Dynamic Economic Models. In System's Theory, we must work from data to model rather than start with a complete, clean theoretical model. The data we need must cover the inputs and output of a real system we are trying to understand. Attributes of the System are: stability, feedback, growth rates, mechanization, controllability, reachability, etc. Neoclassical Economic Models are particularly deficient in attention to stability, feedback and growth rates.

UKL20 BAU System Matrix



If the UKL20 BAU model was represented as a direct graph, it would be:


which is not very insightful but shows all the possible connections between state variables.


It is more insightful, when analyzing interactions between state variables, to use Shock Decomposition Diagrams and Impulse Response Analysis (see the UKL20 BAU model). Notice that the feedback effects are very small.


The time plots of UK1 (solid line), UK2 (dashed red line) and UK3 (dotted green line) are displayed above.








Thursday, June 18, 2026

Unstable Feedback Loops

 


Everyone has probably heard intended or unintended audio feedback effects at a Rock Concert or a public event with a PA System.  What is probably not well understood is that unstable feedback loops can be found in any system (see examples below) under certain conditions. 

Ii have been studying social systems and feedback loops since the 1980's. Some AI summaries, first from ChatGPT and then from Google AI are presented below.

Contrary to the AI conclusions, for example that the Great Depression was a result of unstable feedback loops, the US_E20 Model does not have unstable secondary feedback loops, neither does the DEL19D Model for 19th Century Germany, contrary to my initial hypotheses.

Notes

Pasdirtz, G.W. Instability and Late Nineteenth Century German Development. The DEL19D Model does have unstable positive feedback loops but does have an unstable growth component and is an example of the Moving Equilibrium model.


ChatGPT

What are the effects if unstable feedback loops in systems?

Unstable feedback loops occur when a system's responses amplify disturbances rather than dampening them. Instead of returning to equilibrium after a shock, the system moves farther away from it.

General Effects of Unstable Feedback Loops

  1. Exponential Growth or Decline
    • Small changes become large changes.
    • The system may experience runaway growth or collapse.
    • Example: A bank run, where withdrawals trigger more withdrawals.
  2. Increased Volatility
    • Fluctuations become larger over time.
    • The system becomes difficult to predict or control.
    • Example: Financial bubbles and crashes.
  3. Loss of Equilibrium
    • Stable operating points disappear.
    • The system may shift to a completely different state.
    • Example: An ecosystem losing a key species and reorganizing into a new ecological regime.
  4. Overshoot and Collapse
    • Growth exceeds sustainable limits, followed by rapid decline.
    • Example: Population growth that exhausts resources.
  5. Tipping Points
    • A critical threshold is crossed, after which change becomes self-reinforcing.
    • Returning to the previous state may become difficult or impossible.
    • Example: Climate systems reaching irreversible ice-sheet loss.
  6. System Failure
    • Components become overloaded and break down.
    • Example: Electrical grids experiencing cascading blackouts.

Examples Across Different Systems

SystemUnstable Feedback LoopPossible Outcome
EconomyRising asset prices attract more buyersBubble and crash
ClimateWarming melts ice, reducing reflectivityAccelerated warming
PoliticsPolarization creates more polarizationInstitutional breakdown
EcologySpecies loss reduces ecosystem resilienceEcosystem collapse
TechnologySocial media engagement rewards outrageInformation instability
MilitaryArms race encourages further armamentEscalating conflict

Why Some Systems Survive

Many real-world systems contain negative feedback loops that counteract instability:

  • Central banks raising interest rates during inflation.
  • Predator populations limiting prey populations.
  • Thermostats regulating temperature.
  • Democratic institutions constraining political power.

When these stabilizing mechanisms are weaker than the reinforcing feedbacks, instability grows.

A Systems Theory Perspective

From the perspective of the academic field of Systems Theory, the most dangerous systems are not those with feedback loops alone—every system has feedback loops—but those where:

  1. Positive feedback dominates negative feedback.
  2. Delays prevent corrective action.
  3. Actors do not perceive the consequences until thresholds are crossed.

Many major historical crises—from the Great Depression to financial crashes and ecological collapses—can be understood as situations where self-reinforcing feedbacks overwhelmed stabilizing forces.

A useful rule is:

Stable systems absorb shocks; unstable systems amplify them.


Google AI




Saturday, June 13, 2026

The Neoclassical Growth Model

 




The causal structure for the  Solow-Swan or Cobb-Douglas production functions take population growth (N) and Technology (TECH) as exogenous to the employment (L), production (Q) and Capital formation (K) processes. The causal model predicts that if either Population Growth or Technology change reach an equilibrium that the system will reach a steady state. The assumption is that Technological change will never cease. The only feedback loop in the model is between Capital (K) and Production (Q).

The Neoclassical Growth model can be derived from the Kaya Identity (true by definition).



Adding TECH and Capital Stock (K) to the model is simple:




However, using loop-reduction theorems, K can be reduced out of the system:





which is convenient because Capital stock is not available in the World Development Indicators (WDI). The theoretical interpretation is that, at equilibrium, the Capital Stock (K) modifies Labor (L) and TECH productivity (some output must be set aside to support production). Markets for labor (L) and production (Q) can also be aded to the model





and reduced out if needed.









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))