Analytica
From Wikipedia, the free encyclopedia
Analytica ® is a visual software package developed by Lumina Decision Systems, Inc. for creating, analyzing and communicating quantitative decision models. Analytica includes hierarchical influence diagrams for visual creation and view of models, intelligent arrays for management of multidimensional data, Monte Carlo simulation for analyzing risk and uncertainty, and a general modeling language. It is designed to enable the creation of models that are transparent, interpretable, extensible, and flexible. The design of Analytica is based on key ideas from the field of Decision analysis.
Analytica is widely used for policy analysis, business modeling, and risk analysis, with application areas that include energy, health, pharmaceuticals, environmental risk, wildlife management, defense, R&D planning, financial services, aerospace, and manufacturing.
Contents |
[edit] History
Analytica's predecessor, called Demos, grew from the research on tools for policy analysis by Max Henrion as a PhD student and later professor at Carnegie Mellon University between 1979 and 1990. Dr. Henrion founded Lumina Decision Systems in 1991, which continued to develop the software and apply it to environmental and public policy analysis applications. Lumina first released Analytica as a product in 1996.
Analytica is a registered trademark of Lumina Decision Systems
[edit] Hierarchical Influence Diagrams
Analytica models are organized as influence diagrams. Variables (and other objects) appear as nodes of various shapes on a diagram, connected by arrows that provide a visual representation of dependencies. Analytica influence diagrams may be hierarchical, in which a single module node on a diagram represents an entire submodel.
Hierarchical influence diagrams in Analytica serve as a key organizational tool. People find it natural to conceptualize the structure of models both spatially and hierarchically. Because the visual layout of an influence diagram matches these natural human abilities both spatially and in the level of abstraction, people are able to take in far more information about a model's structure and organization at a glance than is possible with less visual paradigms, such as spreadsheets and mathematical expressions. Managing the structure and organization of a large model can be a significant part of the modeling process, but is substantially aided by the visualization of influence diagrams.
Influence diagrams also serve as a tool for communication. Once a quantitative model has been created and its final results computed, it is often the case that an understanding of how the results are obtained, and how various assumptions impact the results, is far more important than the specific numbers computed. The ability of a target audience to understand these aspects is critical to the modeling enterprise. The visual representation of an influence diagram quickly communicates an understanding at a level of abstraction that is normally more appropriate than detailed representations such as mathematical expressions or cell formulae. When more detail is desired, users can drill down to increasing levels details, speeded by the visual depiction of the model's structure.
The existence of an easily understandable and transparent model supports communication and debate within an organization, and this effect is one of the primary benefits of investing in quantitative model building. When all interested parties are able to understand a common model structure, debates and discussions will often focus more directly on specific assumptions, can cut down on "cross-talk", and therefore lead to more productive interactions within the organization. The influence diagram serves as a graphical representation that can help to make models accessible to people at different levels.
[edit] Intelligent Multidimensional Arrays
The Analytica engine represents and operates upon multidimensional arrays. For an Analytica modeler, these multiple dimensions provide yet an additional source of abstraction, as well as a source of flexibility. New dimensions can be often be introduced or removed easily from an existing model, without requiring changes to the model structure or changes to variable definitions.
For example, while creating a model, the model builder might assume a particular variable, for example discount_rate, contains a single number. Later, after constructing a model, a user might replace the single number with a table of numbers, perhaps discount_rate broken down by Country and by Economic_scenario. These new divisions may reflect the fact that the effective discount rate is not the same for international division of a company, and that different rates are applicable to different hypothetical scenarios. Analytica automatically propagates these new dimensions to any results that depend upon discount_rate, so for example, the result for Net_present_value will become multidimensional and contain these new dimensions. In essence, Analytica repeats the same calculation using the discount rate for each possible combination of Country and Economic_scenario.
The ability to readily adjust dimensionality without having to perform major reorganization, recoding, or general surgery on a model is a hallmark of the Analytica modeling environment. Adjustments to dimensionality are common and natural late in the modeling process, when one is often exploring computation tradeoffs between the level of detail, computation time, available data, and overall size or dimensionality of parametric spaces. Also it is common after models have been fully constructed as a way of exploring What-If scenarios and overall relationships between variables.
The dimensions of a multidimensional array in Analytica are defined by Index objects. An index object has a name and a list of elements. When two multidimensional values are combined, such as in an expression such as
Revenue - Expenses
where Revenue and Expenses are each broken down across multiple dimensions, Analytica repeats the computation, iterating over each dimension, but recognizing when the same dimension occurs in both values and treating it as the same dimension during the iteration. Unlike many programming languages, there is no inherent ordering to the dimensions in a multidimensional array -- they are identified by name (or more precisely, by the index used to define the dimension). This ability to intelligently correspond and iterate over extra dimensions is termed intelligent array abstraction (a term trademarked by Lumina Decision Systems). A consequence of this facility is that duplicated formulas and explicit FOR loops, both common sources of modeling errors, are rare in Analytica models. Expressions are simplified, further increasing the accessibility, interpretability and transparency of models.
[edit] Uncertainty Analysis
In any modeling project, many input quantities can only be estimated, and thus have an inherent degree of uncertainty. Models that explicitly specify the range of uncertainty in their inputs often provide much more realistic and informative projections.
Quantities in Analytica can be specified using a distribution function. When evaluated, distributions are sampled using either Latin hypercube or Monte Carlo sampling, and the samples are propagated through the computations to the results. The sampled result distribution can then be viewed directly, or in various statistical views such as mean, fractile bands, PDF, CDF, or standard statistics, each providing a different way of visualizing the range of uncertainty in the output result.
[edit] Analytica as a computer language
Analytica includes a general language of operators and functions for expressing mathematical relationships among variables. Users can define functions and libraries to extend the language.
Analytica has several features as a computer language designed to make it easy to use for quantitative modeling: It is a visual programming languages, where users view programs (or "models") as influence diagrams, which they create and edit visually by adding and linking nodes. It is a declarative language, meaning that a model declares a definition for each variable, without specifying execution sequence as required by conventional imperative languages. Analytica determines a correct and efficient execution sequence using the dependency graph. It is a purely functional language, in that execution of functions and variables have no side effects, changing other variables. As described above under "intelligent arrays, Analytica is an array programming language, where operations and functions generalize to work on multidimensional arrays.
[edit] Editions
The Analytica software runs on Microsoft Windows operating systems. Three editions, each with increasing functionality and cost, are purchased by users interested in building models. A free Analytica-Player edition lets users view models, change inputs, and compute results, to enable free sharing of models for review.