controversy about a result in the wolrd303 model
Moderator: Jim Duggan
controversy about a result in the wolrd303 model
Hi everybody
I have a controversy with someone about the world303 as published in the Vensim documentation. When applying the extreme condition test, at a certain time, all people from cohort 0 to 14 years old die in a semester (the time step), the maturation goes negative, which means that people from cohort 15 to 44 are getting younger!.
Joined two published models in Vensim, with both results in two tables in the population view.
One with the original formulation and the other with the changed formulation.
To force mortality to 2, in a time step one uses the reality checks tool.
If one forces the mortality to 1, by setting the proportion of population 0 to 14 dying in the time step to 0.5, the number of people maturing goes to 0, which is still impossible, about half of the population from the beginning of the period maturing.
If one changes the formulation
( ( Population 0 To 14 ) )
* ( 1
 mortality 0 to 14 )
/ 15
To
( ( Population 0 To 14 ) )
* ( 1
 (mortality 0 to 14 * time step))
/ 15
The result resists the test.
The second formulation seems correct too because:
The population that matures in the time step is equal to the population at the beginning of the time step less the people that died during the time step divided by the number of time steps included in the duration of the cohort.
People maturing during the time step = (population  (population * mortality * time step)) / (15/time step) = maturation 14 to 15 * time step
Maturation 14 to 15 = People maturing during the time step / time step =
(population  (population * mortality * time step)) / 15 = population * (1 – (mortality * time step)) / 15.
The formula is too dimensionaly consistent.
People maturing during the time step (person)= (population (person)  (population * mortality * time step) (person)) / (15 (year) / time step (year)) = maturation 14 to 15 * time step
To make the formula
( ( Population 0 To 14 ) )
* ( 1
 mortality 0 to 14 )
/ 15
consistent one is obliged to affect a 1/year dimension to the 1 value and a no dimension to the 15.
For what reasons? 1 is in fact dimensionless and 15 is the duration of the cohort in years.
Both models can be read with either Vensim or the Vensim player.
Who is right?
Best regards.
JeanJacques Laublé
I have a controversy with someone about the world303 as published in the Vensim documentation. When applying the extreme condition test, at a certain time, all people from cohort 0 to 14 years old die in a semester (the time step), the maturation goes negative, which means that people from cohort 15 to 44 are getting younger!.
Joined two published models in Vensim, with both results in two tables in the population view.
One with the original formulation and the other with the changed formulation.
To force mortality to 2, in a time step one uses the reality checks tool.
If one forces the mortality to 1, by setting the proportion of population 0 to 14 dying in the time step to 0.5, the number of people maturing goes to 0, which is still impossible, about half of the population from the beginning of the period maturing.
If one changes the formulation
( ( Population 0 To 14 ) )
* ( 1
 mortality 0 to 14 )
/ 15
To
( ( Population 0 To 14 ) )
* ( 1
 (mortality 0 to 14 * time step))
/ 15
The result resists the test.
The second formulation seems correct too because:
The population that matures in the time step is equal to the population at the beginning of the time step less the people that died during the time step divided by the number of time steps included in the duration of the cohort.
People maturing during the time step = (population  (population * mortality * time step)) / (15/time step) = maturation 14 to 15 * time step
Maturation 14 to 15 = People maturing during the time step / time step =
(population  (population * mortality * time step)) / 15 = population * (1 – (mortality * time step)) / 15.
The formula is too dimensionaly consistent.
People maturing during the time step (person)= (population (person)  (population * mortality * time step) (person)) / (15 (year) / time step (year)) = maturation 14 to 15 * time step
To make the formula
( ( Population 0 To 14 ) )
* ( 1
 mortality 0 to 14 )
/ 15
consistent one is obliged to affect a 1/year dimension to the 1 value and a no dimension to the 15.
For what reasons? 1 is in fact dimensionless and 15 is the duration of the cohort in years.
Both models can be read with either Vensim or the Vensim player.
Who is right?
Best regards.
JeanJacques Laublé
 Attachments

 world3_corrected.zip
 (610.37 KiB) Downloaded 661 times

 world3_original.zip
 (609.82 KiB) Downloaded 633 times

 Site Admin
 Posts: 179
 Joined: Sat Dec 27, 2008 8:09 pm
Re: controversy about a result in the wolrd303 model
Hi JJ,
In noticed this quite recently as well. The formulation in the world 3 model is odd, and I have not dug into its genesis. It is quite possible that the mortality and cohort promotion logic was conceptualized as year on year difference equations and never adjusted after moving to a smaller solution interval.
In any case your refinement is the correct one and, assuming a continuous time conceptualization, simply leaving the mortality term out of the equation all together also makes sense. The original formulation does pass Vensim's unit checking  though for all the wrong reasons. The expression (1mortality) resolves to units of 1/year which when multiplied by a population gives person/year then, since the cohort sizes are simply numbers that person/year sticks in the final computation instead of person/year/year which is what it actually is. Another example showing that embedding constant in equations is not a good idea.
In noticed this quite recently as well. The formulation in the world 3 model is odd, and I have not dug into its genesis. It is quite possible that the mortality and cohort promotion logic was conceptualized as year on year difference equations and never adjusted after moving to a smaller solution interval.
In any case your refinement is the correct one and, assuming a continuous time conceptualization, simply leaving the mortality term out of the equation all together also makes sense. The original formulation does pass Vensim's unit checking  though for all the wrong reasons. The expression (1mortality) resolves to units of 1/year which when multiplied by a population gives person/year then, since the cohort sizes are simply numbers that person/year sticks in the final computation instead of person/year/year which is what it actually is. Another example showing that embedding constant in equations is not a good idea.
Re: controversy about a result in the wolrd303 model
Hi Bob
Thank you for your answer.
About the unit checking, when one checks the units using the strictest unit checking feature Vensim detects 9 errors. 6 errors are due to values automatically assigned a no dimension when in fact they have a defined dimension. The three other errors are the three maturation formulation. All errors are susceptible to be corrected with assigning a name and dimension to the constants. Doing this does not change the results for 6 unit errors that are in fact no real formulation errors, but it corrects the flaw in the maturation formulation.
I discovered lately the strictest unit testing lately and use it now systematically.
The only values that I leave in equations are constant unchangeable and that have no dimensions, Vensim assigning automatically a no dimension to values in an equation when using the strictest unit testing.
The world 3 model having matured for more than thirty years should not have that sort of bugs in it.
And it is particularly embarrassing that it is the first equation in the first view.
Somebody reviewing the model and finding such an error will automatically think that it is not the only one.
I just read David Lane’s address to the late SD conference with the different possible objectives for the SDS. He noticed that mathematic works are often blamed.
I think that before wanting to save the world, SD people should learn to produce high quality products that take advantage of its mathematical formalization. It is not the mathematics that are to be blamed but its incorrect utilization. Without a high quality standard, there is no hope.
Best regards.
JJ
Thank you for your answer.
About the unit checking, when one checks the units using the strictest unit checking feature Vensim detects 9 errors. 6 errors are due to values automatically assigned a no dimension when in fact they have a defined dimension. The three other errors are the three maturation formulation. All errors are susceptible to be corrected with assigning a name and dimension to the constants. Doing this does not change the results for 6 unit errors that are in fact no real formulation errors, but it corrects the flaw in the maturation formulation.
I discovered lately the strictest unit testing lately and use it now systematically.
The only values that I leave in equations are constant unchangeable and that have no dimensions, Vensim assigning automatically a no dimension to values in an equation when using the strictest unit testing.
The world 3 model having matured for more than thirty years should not have that sort of bugs in it.
And it is particularly embarrassing that it is the first equation in the first view.
Somebody reviewing the model and finding such an error will automatically think that it is not the only one.
I just read David Lane’s address to the late SD conference with the different possible objectives for the SDS. He noticed that mathematic works are often blamed.
I think that before wanting to save the world, SD people should learn to produce high quality products that take advantage of its mathematical formalization. It is not the mathematics that are to be blamed but its incorrect utilization. Without a high quality standard, there is no hope.
Best regards.
JJ
Re: controversy about a result in the wolrd303 model
Hi Bob
I did not quite understand what you mean by taking the mortality out of the equation ?
Does the equation ( Population 0 To 14 ) )
* ( 1 mortality 0 to 14 )
/ 15
becomes Population / 15 ?
If it is the case the maturation will no more become negative, but the equation is still wrong, because a proportion of the people dead in the period will mature to the second period.
With a mortality of 2 per year or 1 per semester, the population will become negative the maturation being positive when it should be equal to zero.
One must take away from the population susceptible to mature, the people that are dead, which necessitates the use of the mortality.
Best regards.
JJ
I did not quite understand what you mean by taking the mortality out of the equation ?
Does the equation ( Population 0 To 14 ) )
* ( 1 mortality 0 to 14 )
/ 15
becomes Population / 15 ?
If it is the case the maturation will no more become negative, but the equation is still wrong, because a proportion of the people dead in the period will mature to the second period.
With a mortality of 2 per year or 1 per semester, the population will become negative the maturation being positive when it should be equal to zero.
One must take away from the population susceptible to mature, the people that are dead, which necessitates the use of the mortality.
Best regards.
JJ

 Site Admin
 Posts: 179
 Joined: Sat Dec 27, 2008 8:09 pm
Re: controversy about a result in the wolrd303 model
Hi JJ,
When I say conceptualize in continuous time that means view the equations as a set of differential (or integral) equations, and not as a set of difference equations. In this frame the solution interval (dt or time step) is 0, therefore any equation having dt*something can be simplified. Conversely, any equation using something/dt will simply not work.
To my mind the conceptual clarity arrived at by removing integration correction terms generally outweigh the numerical oddities that they are meant to prevent. Certainly is mortality is 2/year then the appropriate solution interval is at most 1/8 and probably better 1/16 or 1/32.
The world 3 model is 30 years old (actually close to 40)  but it has not been under development for 30 years. Rather the original model is essentially unchanged (only a few minor adjustments were made with each book). There are good points and bad points in that, but I can understand the motivation for doing it this way.
When I say conceptualize in continuous time that means view the equations as a set of differential (or integral) equations, and not as a set of difference equations. In this frame the solution interval (dt or time step) is 0, therefore any equation having dt*something can be simplified. Conversely, any equation using something/dt will simply not work.
To my mind the conceptual clarity arrived at by removing integration correction terms generally outweigh the numerical oddities that they are meant to prevent. Certainly is mortality is 2/year then the appropriate solution interval is at most 1/8 and probably better 1/16 or 1/32.
The world 3 model is 30 years old (actually close to 40)  but it has not been under development for 30 years. Rather the original model is essentially unchanged (only a few minor adjustments were made with each book). There are good points and bad points in that, but I can understand the motivation for doing it this way.
Re: controversy about a result in the wolrd303 model
Hi Bob.
Your reference to a differential approach, at least, brings light to the origin of the formulation as it politically justifies the approximation.
But I do not agree totally with your approach.
It is true, provided that the mortality is the same that the differential equation will be
(population / 15) * dt as the limit of the difference equation if the time step is decreasing to 0.
But the equation (population * (1 – (mortality * time step)) / 15) is right too even in the differential equation and has the advantage to be right too in the difference equation where the time step is larger.
But if you stick to the extreme hypothesis that all people die in a time step, you cannot erase the mortality * dt because the mortality is equal to 1/dt and the term with mortality is no more marginal compared with the other terms. In this case the error is increasing as the time step is decreasing.
I prefer a formulation that is always right, even if slightly more complex, whatever the time step and the formulation (difference or differential).
I do not totally agree when you write.
<Certainly if mortality is 2/year then the appropriate solution interval is at most 1/8 and probably better 1/16 or <1/32.
I think that if mortality is 2/year during a semester then the appropriate solution interval is at most the smaller possible taken into account the software used, with the original formulation, because it is difficult to evaluate the effect of the integration error on the rest of the model, unless one has done the appropriate sensibility analysis. Why not just use the correct formulation without having to bother about eventual marginal effects generated by the approximations?
I am not ready to sacrifice exactitude for a vague notion of conceptual clarity that is only understandable for people with notions of calculus. I do not think either that the formulation is odd unless one is sure that what you name numerical oddities do not affect the objectives of the model.
The proposed formulation is approximately right with a very small time step, conceptually right with a differential equation, but neither approximately nor conceptually with bigger time steps as those used in SD.
I respect your approach, but I am more interested with very pragmatic approaches, even if they look less conceptually interesting. Finally what counts is the usefulness of the model. Is the world3 model effectively used by people and implemented?
Best regards.
JJ
Your reference to a differential approach, at least, brings light to the origin of the formulation as it politically justifies the approximation.
But I do not agree totally with your approach.
It is true, provided that the mortality is the same that the differential equation will be
(population / 15) * dt as the limit of the difference equation if the time step is decreasing to 0.
But the equation (population * (1 – (mortality * time step)) / 15) is right too even in the differential equation and has the advantage to be right too in the difference equation where the time step is larger.
But if you stick to the extreme hypothesis that all people die in a time step, you cannot erase the mortality * dt because the mortality is equal to 1/dt and the term with mortality is no more marginal compared with the other terms. In this case the error is increasing as the time step is decreasing.
I prefer a formulation that is always right, even if slightly more complex, whatever the time step and the formulation (difference or differential).
I do not totally agree when you write.
<Certainly if mortality is 2/year then the appropriate solution interval is at most 1/8 and probably better 1/16 or <1/32.
I think that if mortality is 2/year during a semester then the appropriate solution interval is at most the smaller possible taken into account the software used, with the original formulation, because it is difficult to evaluate the effect of the integration error on the rest of the model, unless one has done the appropriate sensibility analysis. Why not just use the correct formulation without having to bother about eventual marginal effects generated by the approximations?
I am not ready to sacrifice exactitude for a vague notion of conceptual clarity that is only understandable for people with notions of calculus. I do not think either that the formulation is odd unless one is sure that what you name numerical oddities do not affect the objectives of the model.
The proposed formulation is approximately right with a very small time step, conceptually right with a differential equation, but neither approximately nor conceptually with bigger time steps as those used in SD.
I respect your approach, but I am more interested with very pragmatic approaches, even if they look less conceptually interesting. Finally what counts is the usefulness of the model. Is the world3 model effectively used by people and implemented?
Best regards.
JJ
Who is online
Users browsing this forum: No registered users and 1 guest