Understand IFs: Difference between revisions
CamrynDreyer (talk | contribs) No edit summary |
No edit summary |
||
(20 intermediate revisions by 3 users not shown) | |||
Line 5: | Line 5: | ||
'''Context Sensitive Help.''' The use of the F1 key will normally provide screens that provide information about the specific form or window being used at the time. These explain the interactive interface of the model. | '''Context Sensitive Help.''' The use of the F1 key will normally provide screens that provide information about the specific form or window being used at the time. These explain the interactive interface of the model. | ||
'''Pop-up Menus with Help Options.''' Users also want Help, however, when dealing with variables and parameters in the model. They want to know longer names for the short ones sometimes used in the model and want to understand the causal linkages of variables to each other. The use of pop-up menus at many places when variables/parameters are being chosen or used for inputs and for display opens up a variety of options for understanding the names and linkages. For instance, when a table is displayed, a double-click on the body of the table with the right or left mouse button produces a pop-up menu with several options. Similarly, at the bottom of the Display Menu or the Variable Selection form are status boxes with short variable names selected by the user. A right or left mouse click brings up | '''Pop-up Menus with Help Options.''' Users also want Help, however, when dealing with variables and parameters in the model. They want to know longer names for the short ones sometimes used in the model and want to understand the causal linkages of variables to each other. The use of pop-up menus at many places when variables/parameters are being chosen or used for inputs and for display opens up a variety of options for understanding the names and linkages. For instance, when a table is displayed, a double-click on the body of the table with the right or left mouse button produces a pop-up menu with several options. Similarly, at the bottom of the Display Menu or the Variable Selection form are status boxes with short variable names selected by the user. A right or left mouse click brings up [[Define,_Drivers,_Explain,_Code_and_Delete|similar pop-up menu]]. | ||
The pop-up menu system was developed by Mohammod T. Irfan. | The pop-up menu system was developed by Mohammod T. Irfan. | ||
Line 33: | Line 33: | ||
More detail is available on the manifestation of this modeling approach for the following structural systems of IFs: | More detail is available on the manifestation of this modeling approach for the following structural systems of IFs: | ||
::Structure and Agent System: [ | ::Structure and Agent System: [[Agriculture#Structure_and_Agent_System:_Agriculture|Agriculture]] | ||
::Structure and Agent System: [ | ::Structure and Agent System: [[Population#Structure_and_Agent_System:_Demographic|Demographic]] | ||
::Structure and Agent System: [ | ::Structure and Agent System: [[Economics#Structure_and_Agent_System|Economics]] | ||
::Structure and Agent System: [ | ::Structure and Agent System: [[Education#Structure_and_Agent_System:_Education|Education]] | ||
::Structure and Agent System: [ | ::Structure and Agent System: [[Energy#Structure_and_Agent_System:_Energy|Energy]] | ||
::Structure and Agent System: [ | ::Structure and Agent System: [[Environment#Structure_and_Agent_System:_Environment|Environment]] | ||
::Structure and Agent System: [ | ::Structure and Agent System: [[Governance#Structure_and_Agent_System:_Governance|Governance]] | ||
::Structure and Agent System: [ | ::Structure and Agent System: [[Health#Structure_and_Agent_System:_Health|Health]] | ||
::Structure and Agent System: [ | ::Structure and Agent System: [[Infrastructure#Structure_and_Agent_System:_Infrastructure|Infrastructure]] | ||
::Structure and Agent System: [ | ::Structure and Agent System: [[Interstate_Politics_(IP)#Structure_and_Agent_System:_Interstate_Interaction|Interstate Interaction]] | ||
::Structure and Agent System: [ | ::Structure and Agent System: [[Socio-Political#Structure_and_Agent_System:_Socio-Political|Socio-Political]] | ||
== Structure-Based and Agent-Class Driven Modeling == | == Structure-Based and Agent-Class Driven Modeling == | ||
Line 51: | Line 51: | ||
Organizing structures are well-recognized and theoretical and conceptual frameworks with an organizing character for important human systems: cohort-component structures for demographic systems, markets for economic systems, financial flows for socio-political-economic systems, and so on. | Organizing structures are well-recognized and theoretical and conceptual frameworks with an organizing character for important human systems: cohort-component structures for demographic systems, markets for economic systems, financial flows for socio-political-economic systems, and so on. | ||
'''Stocks and flows remind us of systems dynamics.''' In demographic systems, the stocks are numbers of people in age- and sex-specific cohorts, while the flows are births, deaths, and migration. Systems dynamics would deal with the key relationships as auxiliaries, but econometrics would recognize them as equations that require empirical estimation.<ref> | '''Stocks and flows remind us of systems dynamics.''' In demographic systems, the stocks are numbers of people in age- and sex-specific cohorts, while the flows are births, deaths, and migration. Systems dynamics would deal with the key relationships as auxiliaries, but econometrics would recognize them as equations that require empirical estimation.<ref>[[Understand IFs#Dominant Relations|1]]</ref> | ||
'''Key Aggregate Relationships.''' Life expectancy or mortality is a key aggregate relationship, clearly a function of income, perhaps education, and certainly of technological change. Aggregate Relationships are often actually Agent-Class behaviors that have not yet been decomposed enough to represent in terms of a single agent class. For instance, life expectancy is a function of government and firm spending on R&D as well as household life-style choices; it could eventually be decomposed to the agent-class level. | '''Key Aggregate Relationships.''' Life expectancy or mortality is a key aggregate relationship, clearly a function of income, perhaps education, and certainly of technological change. Aggregate Relationships are often actually Agent-Class behaviors that have not yet been decomposed enough to represent in terms of a single agent class. For instance, life expectancy is a function of government and firm spending on R&D as well as household life-style choices; it could eventually be decomposed to the agent-class level. | ||
Line 61: | Line 61: | ||
In representing the behavior of agent classes and the structures of systems, IFs draws upon large bodies of insight in many theoretical and modeling literatures. Although IFs sometimes breaks new ground with respect to specific sub-systems, its strengths lie primarily in the integration and synthesis of much earlier work. | In representing the behavior of agent classes and the structures of systems, IFs draws upon large bodies of insight in many theoretical and modeling literatures. Although IFs sometimes breaks new ground with respect to specific sub-systems, its strengths lie primarily in the integration and synthesis of much earlier work. | ||
== Dominant Relations == | |||
= Dominant Relations = | |||
Any computer simulation or other model will have some relationships and dynamics that dominate the behavior of the model and that therefore most heavily influence the analyses done with the model. Understanding these dominant relations will facilitate model use, particularly in the definition of key or framing scenarios. | Any computer simulation or other model will have some relationships and dynamics that dominate the behavior of the model and that therefore most heavily influence the analyses done with the model. Understanding these dominant relations will facilitate model use, particularly in the definition of key or framing scenarios. | ||
Line 71: | Line 69: | ||
For an introductory summary of dominant relations and dynamics by submodule: | For an introductory summary of dominant relations and dynamics by submodule: | ||
*Dominant Relations: | *Dominant Relations: [[Agriculture#Dominant_Relations:_Agriculture|Agriculture]] | ||
*Dominant Relations: | *Dominant Relations: [[Population#Dominant_Relations:_Population|Demography/Population]] | ||
*Dominant Relations: | *Dominant Relations:[[Economics#Dominant_Relations:_Economics|Economics]] | ||
*Dominant Relations: | *Dominant Relations: [[Education#Dominant_Relations:_Education|Education]] | ||
*Dominant Relations: | *Dominant Relations: [[Energy#Dominant_Relations:_Energy|Energy]] | ||
*Dominant Relations: | *Dominant Relations: [[Environment#Dominant_Relations:_Environment|Environment]] | ||
*Dominant Relations: | *Dominant Relations: [[Governance#Dominant_Relations:_Governance|Governance]] | ||
*Dominant Relations: | *Dominant Relations: [[Health#Dominant_Relations:_Health|Health]] | ||
*Dominant Relations: | *Dominant Relations: [[Infrastructure#Dominant_Relations:_Infrastructure|Infrastructure]] | ||
*Dominant Relations: | *Dominant Relations: [[Interstate_Politics_(IP)#Dominant_Relations:_Interstate_Politics|Interstate Politics]] | ||
*Dominant Relations: | *Dominant Relations: [[Socio-Political#Dominant_Relations:_Socio-Political|Socio-Political]] | ||
= Understanding the Equations = | |||
As a general rule, the equations closely follow the computer code. Insofar as possible without confusion, variable and parameter names here are the same as those in the computer program, but in a few cases equation names differ to enhance readability. Computer code shows a single computed variable on the left and one or more input variables and parameters on the right. In fact, computer code frequently shows the computed variable on both the left and the right hand side, which is NOT standard mathematical equation form and a few traditional purists have difficulty understanding this (as well as preferring non-mnemonic single letter variable names and Greek symbols to much more intelligible computer-based variable names). As an appropriate accommodation, this documentation sometimes uses asterisks to distinguish different values of the same variable name on left and right-hand sides of equations. | |||
IFs has multiple modules: population, economic, agriculture, energy, and socio-political. An environmental "module" is scattered across other modules, especially agriculture and energy. Equations are presented by module and cross references in the documentation of each module indicate linkages. | |||
IFs is a recursive dynamic system and equation sequence is therefore important. This text presents equations in largely the same sequence as in the computer program. Program flow exits from and returns to each module up to three times each time step (year), however, and it would break up discussions of module too much if we were to follow computational flow slavishly. Moreover, to facilitate understanding this documentation sometimes presents the key equations of a module or a section of one first, with subsequent explanation of the compu"tational procedures for variables used therein (thereby deviating further from actual computation sequence). Equation form here is the same as in the computer program, including the presentation of a single "computed" variable on the left side of the equal sign. | |||
== Equation Notation == | |||
Variable names are shown in all capitals, as in the display functions of the model. Parameters are shown in lower case and boldface. Empirically-based initial conditions of variables are in capitals with boldface. Internal computed variables, which are not available for display, are shown in mixed upper and lower case. | |||
At one time the project used a superscript of "t" to indicate time/year. Although it has mostly moved that to subscripts, it may sometimes still be found in project documentation. Superscripts other than "t" indicate exponentiation. Subscripts or superscripts with "t" indicate time, but will be omitted when a reference is contemporary to model year "t." | |||
Subscripts show dimensionality and there are a number of standard ones in the model: | |||
*'''r''' for region/country r = 1,2,... (e.g., United States, European Union, Japan, Brazil...) | |||
*'''b''' (sometimes the project uses j) for age cohort c/j = 1,2,...,22 (infant, 0-4 years,...95-99 years, 100+ years; abbreviated set for World Value Survey variables) | |||
*'''s''' for economic sector s = 1,2,3,4,5,6 (agriculture, energy, materials, manufactures, services, ICT) | |||
*'''f''' for food types f = 1,2 (crops, meat/fish) | |||
*'''l''' for land types l = 1,2,3,4,5 (crop, grazing, forest, unused, urban/industrial) | |||
*'''e''' for energy types e = 1,2,3,4,5,6,7 (oil, gas, coal, hydroelectric, nuclear, other renewable, unconventional oil) | |||
*'''g''' for govt spending g = 1,2,3,4,5,6 (military, health, education, R&D, other, foreign aid) | |||
*'''p''' for population sex p=1,2 (male, female) | |||
*'''ss''' for safe water and sanitation ladder categories | |||
*'''d''' for cause of death (15 in total) | |||
*'''dg''' for cause of death group dg=1,2,3 (communicable, non-communicable, injuries/accidents) | |||
*'''h''' for household types h=1,2 (unskilled, skilled) | |||
Individual equations specify a range of dimensionality only if it differs from that above. | |||
== Specialized Functions == | |||
=== AnalFunc and TablFunc === | |||
Throughout the IFs documentation there will also be references to analytic functions that have been added to the library of IFs functions. Because the user interface allows display and change of such functions, the form and parameters are not always elaborated in the written documentation. Some references to TablFunc persist in error from earlier versions of documentation when analytic functions were still represented as systems-dynamic like table functions, but an effort is being made to reserve TablFunc for the handful of functions that are still truly represented in such a manner. Occasionally an "F" creeps in, also referring to analytic functions in the library. | |||
=== AMAX and AMIN === | |||
IFs often bounds a variables computation with upper or lower limits. This serves a number of functions, all related to assuring reasonable behavior of the model under extreme conditions. For instance, denominators that might approach 0 are bound with the AMAX function so that they take on at least some specified number – the AMAX function returns the larger of the computed value and the number specified. Other computations are subject to the AMIN function so as to avoid becoming unreasonably large (such as probabilities that exceed 1) – the AMIN function returns the smaller of the computed value and the number specified. | |||
=== Converge Over Time Mechanism === | |||
In the development of IFs it has been found that there are many instances in which initial empirical conditions for values in specific countries vary considerably from what one might expect in the longer-term. In some instances, data may be faulty. In others, there may be disequilibria that appear unlikely to be maintained over time or cultural distinctiveness that appears likely to erode. Because immediate readjustment of such values would both violate the integrity of the data and, in many cases, create other discrepancies, such adjustment is rare in IFs. Instead, the modeling system uses a mechanism to facilitate convergence over time of the values to a target computation that appears a reasonable longer-term expectation. The mechanism is used with sufficient frequency that it is built into a function with the name ConvergeOverTime, and that name returns a value to the program when it is called with three parameters: a base value that comes from the empirical side (Base), a target value that comes from forecasting relationships (Target), and a number of years over which the model should interpolate between the base and the target, converging with the target over that period (Years to Converge). | |||
:<math>ConvergeOverTime=\frac{Base*(YearsToConverge-TimeFac)+Target*TimeFac}{YearsToConverge}</math> | |||
where | |||
:<math>TimeFac=Amin(t,YearsToCoverge)</math> | |||
=== Adjustment Mechanism === | |||
In many modules, especially the economic module and the two elaborated sectoral modules, IFs relies upon an adjustment function to alter key variables (e.g., demand, prices, trade, and investment) in the pursuit of equilibrium. The adjustment function compares the level of some stock type variable (most often either inventory levels or prices, but including other variables such as international indebtedness) with a desired level, and adjusts the dependent variable. | |||
IFs computes a difference (DIFF1) between the actual and desired levels and scales that difference with a scaling base (SCALINGBASE) value (for instance, total production in an economic sector might be a reasonable scaling base value against which to gauge the importance of a deviation of inventories from desired levels). In addition, the adjustment mechanism uses a second-order difference (DIFF2) to compare the level of the stock-type driving variable with its value in the previous time cycle, relying upon the same scaling base. | |||
Non-zero differences result in a multiplier value (MUL) that deviates from "1" depending on the magnitude of two elasticities (EL1 and EL2). Specifically, the formulation is | |||
:<math>MUL=(1+\frac{DIFF1}{SCALINGBASE})^{EL1}*(1+\frac{DIFF2}{SCALINGBASE})^{EL2}</math> | |||
This mechanism is represented in a function called the adjuster (ADJSTR) that the model calls at numerous locations. The magnitude of the two parameters will, of course, differ depending on the model variable in which equilibrium is being pursued. Experience has shown, however, that EL1 normally takes absolute values between 0.2 and 0.4, while EL2 is most often two times the value of EL1 and thus varies most often between 0.4 and 0.8. The values of EL1 and EL2 have been determined experimentally, in order to be large enough to maintain approximate equilibrium and small enough to avoid unreasonably rapid or extreme oscillation. There will inevitably be some oscillation in equilibrium-seeking processes, and in some cases (such as inventory levels), the values could be set so as to provide an oscillation consistent with known cycles (such as business cycles). Because IFs is a long-term rather than a short-term model, however, we have generally devoted little attention in scaling to the oscillation cycle, focusing instead on long-term stability in the face of shocks introduced by scenarios of model users. | |||
This kind of adjustment mechanism is sometimes called a PID controller, that is, an adjustment process that responds proportionately (the adjustment parameters) to the integral of the error (the stock discrepancy) and to the derivative of the error (the change in stock term). We shall see many PID controllers in IFs. For more information see the books by Chang (1961) and by Mishkin and Braun (1961) in the bibliography. An early version of this adjustment mechanism was developed by Thomas Shook for the Mesarovic-Pestel modeling project. | |||
=== Standard Error Targeting === | |||
Especially for the purposes of policy analysis, we often want to force the result of an equation towards a particular value over time (e.g. to achieve the elimination of indoor use of solid fuels). Target variables are generally paired, one for the target level and one for the number of years to reach the target (from the initial year of the model forecast). Targets have different types: | |||
==== Absolute Targets ==== | |||
In this case, the target value and year define to what absolute value the variable should move and in how many years after the first model year. Together they determine a path in which the value for the variable moves linearly from the value in first year to the target value in the target year. (In some cases, the model uses non-linear convergence, e.g. to accelerate movement in early years and then to slow it as the target is approached.) Trgtval and trgtyr are the parameter suffixes used for this parameter type. The first of these changes the target itself and the second of these alters the number of years to the target. | |||
==== Relative (Standard Error) Targets ==== | |||
In this case, the target value and year def ine to what relative value the variable should move and in how many years after the first. The relative value is defined as the number of standard errors above or below the “expected” value of the variable of interest. (An expectation is usually based on the country's GDP per capita and a cross-sectional analysis of country values.) As with the absolute targets the value calculated using the targeting is compared to the value forecast in the model without targeting and the final forecast value gradually moves from that pre-targeting forecast value to the target value. Two different parameter suffixes are used in standard-error targeting: setar and seyrtar. The first of these changes the target itself and the second of these alters the number of years to the target. | |||
<references /> |
Latest revision as of 23:39, 12 September 2017
Help During Use of IFs
The full Help System is always available to users of IFs from the Help option on the Main Menu. In addition, however, there are several types of Help that are available at key points of model use and that are generally more specific to the specific points of model use. The goals of the IFs system are user-friendliness with respect to the interface and transparency and openness with respect to the structure of the model.
Context Sensitive Help. The use of the F1 key will normally provide screens that provide information about the specific form or window being used at the time. These explain the interactive interface of the model.
Pop-up Menus with Help Options. Users also want Help, however, when dealing with variables and parameters in the model. They want to know longer names for the short ones sometimes used in the model and want to understand the causal linkages of variables to each other. The use of pop-up menus at many places when variables/parameters are being chosen or used for inputs and for display opens up a variety of options for understanding the names and linkages. For instance, when a table is displayed, a double-click on the body of the table with the right or left mouse button produces a pop-up menu with several options. Similarly, at the bottom of the Display Menu or the Variable Selection form are status boxes with short variable names selected by the user. A right or left mouse click brings up similar pop-up menu.
The pop-up menu system was developed by Mohammod T. Irfan.
Understanding the Modeling Approach
There are many "routes to understanding" of a model: the general philosophy of the modeling approach, the key or dominant relationships and dynamics in the model, the primary causal linkages in the model (using flow charts or causal diagrams), the equations, the full model computer code, and the data used. In order to facilitate the search for understanding, this documentation provides each of these paths, more or less in the sequence of this listing.
The documentation groups most of the "routes to understanding" under issue modules (such as the energy module). The exception is model code, which is collected across modules because of its specialized character.
The IFs model is constantly evolving. In addition to the documentation here, there is stand-alone documentation on the Reports page of the IFs project web site. The model user would be advised, in particular, to look at the paper on "The Structure of International Futures (IFs)."
IFs Structure: Elements and Philosophy
A basic mental model helps frame the approach to modeling in International Futures:
Global human systems consist of classes of agents and larger structures within which those agents interact. Over time agents and the larger structures evolve in processes of mutual influence and determination.
That conceptualization shapes the methodological approach:
At one time global models were categorized as using either econometric or systems dynamics methodologies. IFs draws upon techniques found in both traditions, but reaches beyond them, especially in its structural representations.
Structural representations include cohort-component systems for population; markets for production, exchange, and consumption of goods and service; and social accounting matrices for financial flows.
This emergent IFs methodology is Structure-Based and Agent-Class Driven Modeling.
More detail is available on the manifestation of this modeling approach for the following structural systems of IFs:
- Structure and Agent System: Agriculture
- Structure and Agent System: Demographic
- Structure and Agent System: Economics
- Structure and Agent System: Education
- Structure and Agent System: Energy
- Structure and Agent System: Environment
- Structure and Agent System: Governance
- Structure and Agent System: Health
- Structure and Agent System: Infrastructure
- Structure and Agent System: Interstate Interaction
- Structure and Agent System: Socio-Political
Structure-Based and Agent-Class Driven Modeling
The Structure-Based, Agent-Class Driven approach has five key elements methodologically: organizing structures, stocks, flows, key aggregate relationships, and key agent-class behavioral relationships.
Organizing structures are well-recognized and theoretical and conceptual frameworks with an organizing character for important human systems: cohort-component structures for demographic systems, markets for economic systems, financial flows for socio-political-economic systems, and so on.
Stocks and flows remind us of systems dynamics. In demographic systems, the stocks are numbers of people in age- and sex-specific cohorts, while the flows are births, deaths, and migration. Systems dynamics would deal with the key relationships as auxiliaries, but econometrics would recognize them as equations that require empirical estimation.[1]
Key Aggregate Relationships. Life expectancy or mortality is a key aggregate relationship, clearly a function of income, perhaps education, and certainly of technological change. Aggregate Relationships are often actually Agent-Class behaviors that have not yet been decomposed enough to represent in terms of a single agent class. For instance, life expectancy is a function of government and firm spending on R&D as well as household life-style choices; it could eventually be decomposed to the agent-class level.
Key Agent-Class Behavioral Relationships. For example, in the case of fertility, there is one primary agent-class, namely households, whose behavior, as a function again of income, education, and technology, will change over time.
Agent-classes versus micro agents. IFs is not agent-based in the sense of models that represent individual micro-agents following rules and generating structures through their behavior. Instead, IFs represents both existing macro-agent classes and existing structures (with complex historic path dependencies), attempting to represent some elements of how behavior of those agents can change and how the structures can evolve. Although building aggregate model behavior and structure upward from micro agent behavior is laudable in more narrowly-focused models, global systems and structures are far too numerous and well-developed for such efforts to succeed across the breadth of concerns in IFs.
In representing the behavior of agent classes and the structures of systems, IFs draws upon large bodies of insight in many theoretical and modeling literatures. Although IFs sometimes breaks new ground with respect to specific sub-systems, its strengths lie primarily in the integration and synthesis of much earlier work.
Dominant Relations
Any computer simulation or other model will have some relationships and dynamics that dominate the behavior of the model and that therefore most heavily influence the analyses done with the model. Understanding these dominant relations will facilitate model use, particularly in the definition of key or framing scenarios.
The value added by more detailed specification of relationships in the model will lie partly in more probing analysis, often around specific policy options. Much of the value added by a more complete model specification will, however, lie in the dynamics of the full model.
For an introductory summary of dominant relations and dynamics by submodule:
- Dominant Relations: Agriculture
- Dominant Relations: Demography/Population
- Dominant Relations:Economics
- Dominant Relations: Education
- Dominant Relations: Energy
- Dominant Relations: Environment
- Dominant Relations: Governance
- Dominant Relations: Health
- Dominant Relations: Infrastructure
- Dominant Relations: Interstate Politics
- Dominant Relations: Socio-Political
Understanding the Equations
As a general rule, the equations closely follow the computer code. Insofar as possible without confusion, variable and parameter names here are the same as those in the computer program, but in a few cases equation names differ to enhance readability. Computer code shows a single computed variable on the left and one or more input variables and parameters on the right. In fact, computer code frequently shows the computed variable on both the left and the right hand side, which is NOT standard mathematical equation form and a few traditional purists have difficulty understanding this (as well as preferring non-mnemonic single letter variable names and Greek symbols to much more intelligible computer-based variable names). As an appropriate accommodation, this documentation sometimes uses asterisks to distinguish different values of the same variable name on left and right-hand sides of equations.
IFs has multiple modules: population, economic, agriculture, energy, and socio-political. An environmental "module" is scattered across other modules, especially agriculture and energy. Equations are presented by module and cross references in the documentation of each module indicate linkages.
IFs is a recursive dynamic system and equation sequence is therefore important. This text presents equations in largely the same sequence as in the computer program. Program flow exits from and returns to each module up to three times each time step (year), however, and it would break up discussions of module too much if we were to follow computational flow slavishly. Moreover, to facilitate understanding this documentation sometimes presents the key equations of a module or a section of one first, with subsequent explanation of the compu"tational procedures for variables used therein (thereby deviating further from actual computation sequence). Equation form here is the same as in the computer program, including the presentation of a single "computed" variable on the left side of the equal sign.
Equation Notation
Variable names are shown in all capitals, as in the display functions of the model. Parameters are shown in lower case and boldface. Empirically-based initial conditions of variables are in capitals with boldface. Internal computed variables, which are not available for display, are shown in mixed upper and lower case.
At one time the project used a superscript of "t" to indicate time/year. Although it has mostly moved that to subscripts, it may sometimes still be found in project documentation. Superscripts other than "t" indicate exponentiation. Subscripts or superscripts with "t" indicate time, but will be omitted when a reference is contemporary to model year "t."
Subscripts show dimensionality and there are a number of standard ones in the model:
- r for region/country r = 1,2,... (e.g., United States, European Union, Japan, Brazil...)
- b (sometimes the project uses j) for age cohort c/j = 1,2,...,22 (infant, 0-4 years,...95-99 years, 100+ years; abbreviated set for World Value Survey variables)
- s for economic sector s = 1,2,3,4,5,6 (agriculture, energy, materials, manufactures, services, ICT)
- f for food types f = 1,2 (crops, meat/fish)
- l for land types l = 1,2,3,4,5 (crop, grazing, forest, unused, urban/industrial)
- e for energy types e = 1,2,3,4,5,6,7 (oil, gas, coal, hydroelectric, nuclear, other renewable, unconventional oil)
- g for govt spending g = 1,2,3,4,5,6 (military, health, education, R&D, other, foreign aid)
- p for population sex p=1,2 (male, female)
- ss for safe water and sanitation ladder categories
- d for cause of death (15 in total)
- dg for cause of death group dg=1,2,3 (communicable, non-communicable, injuries/accidents)
- h for household types h=1,2 (unskilled, skilled)
Individual equations specify a range of dimensionality only if it differs from that above.
Specialized Functions
AnalFunc and TablFunc
Throughout the IFs documentation there will also be references to analytic functions that have been added to the library of IFs functions. Because the user interface allows display and change of such functions, the form and parameters are not always elaborated in the written documentation. Some references to TablFunc persist in error from earlier versions of documentation when analytic functions were still represented as systems-dynamic like table functions, but an effort is being made to reserve TablFunc for the handful of functions that are still truly represented in such a manner. Occasionally an "F" creeps in, also referring to analytic functions in the library.
AMAX and AMIN
IFs often bounds a variables computation with upper or lower limits. This serves a number of functions, all related to assuring reasonable behavior of the model under extreme conditions. For instance, denominators that might approach 0 are bound with the AMAX function so that they take on at least some specified number – the AMAX function returns the larger of the computed value and the number specified. Other computations are subject to the AMIN function so as to avoid becoming unreasonably large (such as probabilities that exceed 1) – the AMIN function returns the smaller of the computed value and the number specified.
Converge Over Time Mechanism
In the development of IFs it has been found that there are many instances in which initial empirical conditions for values in specific countries vary considerably from what one might expect in the longer-term. In some instances, data may be faulty. In others, there may be disequilibria that appear unlikely to be maintained over time or cultural distinctiveness that appears likely to erode. Because immediate readjustment of such values would both violate the integrity of the data and, in many cases, create other discrepancies, such adjustment is rare in IFs. Instead, the modeling system uses a mechanism to facilitate convergence over time of the values to a target computation that appears a reasonable longer-term expectation. The mechanism is used with sufficient frequency that it is built into a function with the name ConvergeOverTime, and that name returns a value to the program when it is called with three parameters: a base value that comes from the empirical side (Base), a target value that comes from forecasting relationships (Target), and a number of years over which the model should interpolate between the base and the target, converging with the target over that period (Years to Converge).
where
Adjustment Mechanism
In many modules, especially the economic module and the two elaborated sectoral modules, IFs relies upon an adjustment function to alter key variables (e.g., demand, prices, trade, and investment) in the pursuit of equilibrium. The adjustment function compares the level of some stock type variable (most often either inventory levels or prices, but including other variables such as international indebtedness) with a desired level, and adjusts the dependent variable.
IFs computes a difference (DIFF1) between the actual and desired levels and scales that difference with a scaling base (SCALINGBASE) value (for instance, total production in an economic sector might be a reasonable scaling base value against which to gauge the importance of a deviation of inventories from desired levels). In addition, the adjustment mechanism uses a second-order difference (DIFF2) to compare the level of the stock-type driving variable with its value in the previous time cycle, relying upon the same scaling base.
Non-zero differences result in a multiplier value (MUL) that deviates from "1" depending on the magnitude of two elasticities (EL1 and EL2). Specifically, the formulation is
This mechanism is represented in a function called the adjuster (ADJSTR) that the model calls at numerous locations. The magnitude of the two parameters will, of course, differ depending on the model variable in which equilibrium is being pursued. Experience has shown, however, that EL1 normally takes absolute values between 0.2 and 0.4, while EL2 is most often two times the value of EL1 and thus varies most often between 0.4 and 0.8. The values of EL1 and EL2 have been determined experimentally, in order to be large enough to maintain approximate equilibrium and small enough to avoid unreasonably rapid or extreme oscillation. There will inevitably be some oscillation in equilibrium-seeking processes, and in some cases (such as inventory levels), the values could be set so as to provide an oscillation consistent with known cycles (such as business cycles). Because IFs is a long-term rather than a short-term model, however, we have generally devoted little attention in scaling to the oscillation cycle, focusing instead on long-term stability in the face of shocks introduced by scenarios of model users.
This kind of adjustment mechanism is sometimes called a PID controller, that is, an adjustment process that responds proportionately (the adjustment parameters) to the integral of the error (the stock discrepancy) and to the derivative of the error (the change in stock term). We shall see many PID controllers in IFs. For more information see the books by Chang (1961) and by Mishkin and Braun (1961) in the bibliography. An early version of this adjustment mechanism was developed by Thomas Shook for the Mesarovic-Pestel modeling project.
Standard Error Targeting
Especially for the purposes of policy analysis, we often want to force the result of an equation towards a particular value over time (e.g. to achieve the elimination of indoor use of solid fuels). Target variables are generally paired, one for the target level and one for the number of years to reach the target (from the initial year of the model forecast). Targets have different types:
Absolute Targets
In this case, the target value and year define to what absolute value the variable should move and in how many years after the first model year. Together they determine a path in which the value for the variable moves linearly from the value in first year to the target value in the target year. (In some cases, the model uses non-linear convergence, e.g. to accelerate movement in early years and then to slow it as the target is approached.) Trgtval and trgtyr are the parameter suffixes used for this parameter type. The first of these changes the target itself and the second of these alters the number of years to the target.
Relative (Standard Error) Targets
In this case, the target value and year def ine to what relative value the variable should move and in how many years after the first. The relative value is defined as the number of standard errors above or below the “expected” value of the variable of interest. (An expectation is usually based on the country's GDP per capita and a cross-sectional analysis of country values.) As with the absolute targets the value calculated using the targeting is compared to the value forecast in the model without targeting and the final forecast value gradually moves from that pre-targeting forecast value to the target value. Two different parameter suffixes are used in standard-error targeting: setar and seyrtar. The first of these changes the target itself and the second of these alters the number of years to the target.