QUERY Initialization Analytics

This forum contains all archives from the SD Mailing list (go to http://www.systemdynamics.org/forum/ for more information). This is here as a read-only resource, please post any SD related questions to the SD Discussion forum.
Locked
rt156323 albany.edu
Newbie
Posts: 1
Joined: Fri Mar 29, 2002 3:39 am

QUERY Initialization Analytics

Post by rt156323 albany.edu »

Posted by rt156323@albany.edu
Dear Colleagues,

While working on a system dynamics project, a group of colleagues and I began a discussion of analytical initialization of models. Although we were inclined to believe that this good modeling practice, I was uncertain of the core reasons for doing so. To find some answers, I searched many pertinent SD-literature sources, such as Sterman (2000) and the SDS online bibliography. Unfortunately, I was left without a clear sense of why analytic initialization is preferable over other methods including numerical integration. Thus, I pose a short series of questions that may begin fruitful discussion: (1) When is it preferable to initialize a model analytically?; (2) What conditions must be present for a modeler to initialize a model in equilibrium (i.e. Do conditions exist that prevent analytic equilibrium?); (3) Is it always (or nearly always) good modeling practice to find the analytical solution?

I appreciate any assistance (i.e. answers to the questions posed or helpful sources that should be investigated) that you can provide my colleagues and myself.



Ryan M. Taylor
Ph.D Program
Rockefeller College of Public Affairs and Policy University at Albany, SUNY Posted by rt156323@albany.edu posting date Thu, 22 Jun 2006 10:50:05 -0400 (EDT)
Newton Paul C Paul.C.Newton2 boe
Junior Member
Posts: 2
Joined: Fri Mar 29, 2002 3:39 am

QUERY Initialization Analytics

Post by Newton Paul C Paul.C.Newton2 boe »

Posted by ""Newton, Paul C"" <Paul.C.Newton2@boeing.com> Richardson and Pugh's 1981 textbook ""Introduction to System Dynamics Modeling"" has an excellent discussion of analytic equilibrium.

Paul Newton
Complex Systems Analysis and Simulation
Strategic Development & Analysis
Phantom Works (Seattle)
The Boeing Company
Posted by ""Newton, Paul C"" <Paul.C.Newton2@boeing.com> posting date Fri, 23 Jun 2006 11:20:40 -0700
Ilker Soydan ilkersoydan hotmail
Junior Member
Posts: 3
Joined: Fri Mar 29, 2002 3:39 am

QUERY Initialization Analytics

Post by Ilker Soydan ilkersoydan hotmail »

Posted by ""Ilker Soydan"" <ilkersoydan@hotmail.com> Hello Ryan,

Ryan asks:

""(1) When is it preferable to initialize a model analytically?;

(2) What conditions must be present for a modeler to initialize a model in equilibrium (i.e. Do conditions exist that prevent analytic equilibrium?);

(3) Is it always (or nearly always) good modeling practice to find the analytical solution?""

It is sometimes surprising to see that people out there have the same problem that you have/ had.

I had carried out my master's thesis (in SD) project for Siemens Turkey. The issue was Cross-Selling (sellling more than 1 type of product/service to the
customer) and obviously sales, forecasts, orders were endogenous variables. In their reference mode, the sales and orders were showing sustained oscillations with a constant growth rate through years.

I had followed a ""step-by-step"" approach during the modeling phase. The focus was to investigate the oscillations and their roots. I had started building very simple, but functioning models as recommended. I had initialized the system ANALYTICALLY.

At the end of every model, I applied some validation tests such as giving a test function of shape STEP, PULSE, RAMP, EXPONENTIAL etc. At the end of that model's development stage, my aim was to see the equilibrium again after the test functions. This way I had the chance to test my models against the test functions.

If the system returned to the equilibrium (same or a different level of equilibrium, but equilibrium), then I would feel that I am on the right track.
If not, I tried to look for instabilities that I created during the initialization process. Because maybe you had already noticed, there might occur the problem of ""simultaneous equations"". In a loop, we cannot always define every initial value analytically. Let's say, at least for 1 stock, we have to give a numeric value. OR sometimes, I found difficulty defining the equilibrium value of a graphical function.

I used to correct my mistakes throughout these step-by-step modeling stages and tried to search the ""why""s of the behaviour.

Having seen the initial little models growing to the bigger ones, I was able to do my equilibrium analysis easily. When a behaviour occured, I could say ""This was coming from the last version of the model. So I already knew it. When I added this structure, the behaviour became like this because ...."" and so on.

If I had not done analytical initialization, so to say if I had done numerical initialization, I might have not been able to see the roots of oscillations and might have not been able to link the structure and behaviour so strongly.
Because the oscillations might have been orginating from the numerical initialization.

Plus, I saw at one point at another model that it was not always possible to maintain analytical equilibrium. I guess, I answered, at least partially, your first and second question. For the third one, I was taught that doing the analytical initialization is a good modelling practice. I believe so. However, I would like to hear other experiences of other SDists.

I do not know if it was any helpful to you. I might give more details, or ""pieces of experience"" if you need further help.

Good luck...

**

*Ilker Soydan, */Phd Candidate /

*Politecnico di Milano*
Posted by ""Ilker Soydan"" <ilkersoydan@hotmail.com> posting date Fri, 23 Jun 2006 16:07:49 +0200
Tom Fiddaman tom ventanasystems.
Junior Member
Posts: 2
Joined: Fri Mar 29, 2002 3:39 am

QUERY Initialization Analytics

Post by Tom Fiddaman tom ventanasystems. »

Posted by Tom Fiddaman <tom@ventanasystems.com>

> (1) When is it preferable to initialize a model analytically?


The alternative is of course to use numbers to initialize levels. But then, where do you get the numbers? Usually, they come from some kind of back-of-the-envelope calculation using basic algebra to establish a value for the local level that sets inflows=outflows. One might as well embed the calculation as an expression for the initial value rather than using the resulting number, because the model will then be flexible (i.e.
the initial values will automatically reflect parameter changes) and units can be checked automatically.

There are, of course, alternative sources for the numbers:
- Initialize to data - this is often convenient if the model is to be fit to
data anyway. However, the resulting disequilbrium may disguise formulation
errors (e.g. a decision rule that fails to adjust a stock to a desired value)
and you miss out on the potential for simple insights from developing the
initial conditions by hand.
- Initialize numerically - e.g. by using trial and error, optimization, or just
running the model to equilibrium and then starting future simulations from
that point. All of these approaches can work, but they're often more work than
the analytical approach, and have to be tediously repeated each time the model
structure or parameters change.

For practicality, it's common to employ a mix of methods, with most subsystems initialized in equilibrium, and perhaps a few key levels set to desired or discovered numerical values. Even if the model has no equilibrium it is likely to be good practice to initialize most of it analytically, because analytical expressions that, for example, set levels to lie on a common steady-state growth trajectory minimize initial transients that would otherwise confound analysis.

Note that there are actually two possible meanings for ""analytical initialization"".
So far I've been referring to the typical approach of developing an analytical expression for initial values based on local information (initial_stock = inflow*lifetime for example). The other possibility is to write down the model in matrix form (linearizing if needed) and use linear algebra to discover the equilibria. I almost never do this, though it can generate important insights. In particular, it reveals unstable equilibria that aren't easily discoverable, and describes oscillatory modes that are inherently nonlocal. Also, in a linear system, you will discover that any set of equilibrium values can be scaled by a common factor to yield another equilibrium, which means that it's necessary to pick a number for at least one level to determine the overall scale, even if all the others are analytically derived.

> (2) What conditions must be present for a modeler to initialize a
> model in equilibrium (i.e. Do conditions exist that prevent analytic
> equilibrium?);

Obviously the main requirement is that there exist an equilibrium at which to initialize. There are certainly many cases that violate this; a control theory or linear algebra text would have good coverage of the topic. Common counterexamples:
- logistic growth, as in an infection model, where the two stable states (no one
has cooties, we all have cooties) are sufficiently trivial as to be uninteresting
- models that generate limit cycles, as in Dennis Meadows' dissertation on commodity
cycles, in which at least one version has an unstable equilibrium, not easy to find
by trial & error, near which roundoff error alone is enough to get the model moving
towards the limit cycle.
- any model dominated by a growth trend

In fact, models with an interesting equilibrium are probably in the minority.
Nevertheless, subsystems will generally have equilibria that should be explored in isolation before plugging the whole together.

Some structures that have stable equilibria will nevertheless be such that the equilibrium is painful to discover, either because there are so many inflows and outflows that the algebra is messy, or because one must solve a system of simultaneous equations.

> (3) Is it always (or nearly always) good modeling practice to find the
> analytical solution?

Yes. As with any modeling problem, there is some art to the decision. There will be times when it is a poor use of your time or a client's money to spend hours solving a system of simultaneous equations or wading through tedious algebra for a complex aging chain in order to establish analytic initial conditions. But most of the time it's the way to go. Even if it were easier to just plug in numbers, it's always useful to be thinking about the question, ""under what conditions could this bit of structure be in equilibrium?"" and developing analytical expressions for initialization reinforces that habit.

Tom

****************************************************
Tom Fiddaman
Ventana Systems, Inc.
Posted by Tom Fiddaman <tom@ventanasystems.com> posting date Fri, 23 Jun 2006 14:46:59 -0600
ybarlas boun.edu.tr
Junior Member
Posts: 4
Joined: Fri Mar 29, 2002 3:39 am

QUERY Initialization Analytics

Post by ybarlas boun.edu.tr »

Posted by ybarlas@boun.edu.tr
Hi Ryan.
Here is my brief view on this:
- It is 'almost' always 'preferable' to initialize the system analytically at equil.
- The main reasons why it is preferrable:
- Analytic equil. initialization is a great way of model verification and structure validation
- A model initialized at equil will nicely separate the TRANSIENT and STEADY-STATE dynamics. (Transient dynamics are the ones caused by strong initial disequilibria. Steady-state dynamics are structural/natural dynamics caused by minimum disturbance from equilibria. Long term analysis of problems typically necessitate an understanding of ss dynamics).
- Analytic equilibria, when they can be found, are always 'true.' But an equil pt found numerically as a result of simulation can be false; an artifact of simulation errors.
- A given numeric simulation delivers ONLY ONE equil pt. Whereas, if it can be done, analytics will deliver ALL equil points, some of which will NEVER be discovered by simulation.
- After all these pros, I must add that analytic equil finding can often be very difficult or impossible. (Solving of simultaneous nonlinear equations is a very poor field yet).
- Is it WORTH spending weeks on trying to find analytic equil? It depends on the nature of the problem:
i- If the problem involves a STABLE dynamics (such as oscillations or overshoot-then-equil...), then it is worth it.
ii- if the problem involves an untable dynamics (such as a growth or collapse situation), then it is not worth it. Because the equil pt would be unstable and the woould be really no 'steady-state dynamics around the equil pt' no separation of 'transient and steady-state'.

Hope this would be of some use,

best,
yaman barlas
Posted by ybarlas@boun.edu.tr
posting date Tue, 27 Jun 2006 11:54:49 +0300
Thompson James. P (Jim) A142 Jim
Junior Member
Posts: 8
Joined: Fri Mar 29, 2002 3:39 am

QUERY Initialization Analytics

Post by Thompson James. P (Jim) A142 Jim »

Posted by ""Thompson, James. P (Jim) A142"" <Jim.Thompson@CIGNA.COM>

There were several helpful replies to the question of why one should find analytic equilibrium (Initialization Analytics (SD5956)). But, as Yaman Barlas observed, finding analytic equilibrium can often be very difficult or impossible, and solving of simultaneous nonlinear equations is a very poor field yet. His observation reflects what Jay Forrester wrote nearly 50 years ago in Appendix O of Industrial Dynamics. It appears we haven't advanced the issue much in half a century of modelling experience.

This raises the questions. Are there laws, rules or heuristics to determine under what conditions finding analytic equilibrium is very difficult or impossible? Are there 'trade secrets' to reduce the time invested in finding analytic equilibrium?

In other words, how do modellers find analytic equilibrium in a model?

Jim Thompson
Economic & Operations Research
Cigna HealthCare
900 Cottage Grove Road, A142
Hartford, CT 06152
Posted by ""Thompson, James. P (Jim) A142"" <Jim.Thompson@CIGNA.COM> posting date Tue, 27 Jun 2006 10:47:42 -0400
Locked