Analytica
4344667
208151007
2008-04-25T17:40:43Z
Chowbok
54304
clean up, Replaced: ® → using [[Project:AutoWikiBrowser|AWB]]
'''Analytica''' is a visual software package developed by [http://www.lumina.com Lumina Decision Systems, Inc.] for creating, analyzing and communicating quantitative decision models. Analytica includes hierarchical [[influence diagram]]s 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 Analysis|business modeling]], and [[risk analysis]], with application areas that include energy, [[Health care|health]], pharmaceuticals, environmental risk, [[wildlife management]], defense, R&D planning, [[financial services]], [[aerospace]], and manufacturing.
== 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 with Brian Arnold, 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 [http://lumina.com Lumina Decision Systems]
== Hierarchical Influence Diagrams ==
[[Image:InflDiag.jpg|frame|An Analytica Influence Diagram]]
Analytica models are organized as [[influence diagram]]s. 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 [[spreadsheet]]s and [[mathematical expression]]s. 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.
== 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.
== 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 simulation|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|fractile bands]], [[Probability density function|PDF]], [[Cumulative distribution function|CDF]], or standard statistics, each providing a different way of visualizing the range of uncertainty in the output result.
== 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|visual programming language]], where users view programs (or "models") as [[influence diagrams]], which they create and edit visually by adding and linking nodes. It is a [[declarative programming language|declarative language]], meaning that a model declares a definition for each variable without specifying an execution sequence as required by conventional [[imperative programming language|imperative languages]]. Analytica determines a correct and efficient execution sequence using the dependency graph. It is a [[referential transparency|referentially transparent]] [[functional programming language|functional language]], in that execution of functions and variables have no side effects i.e. 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.
== Editions ==
The Analytica software runs on [[Microsoft Windows]] operating systems. Three editions (Profession, Enterprise, and Optimizer 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.
The most recent release of Analytica is version 4.0, released 31 Oct 2007.
==External links==
*[http://www.lumina.com Lumina Homepage]
*[http://lumina.com/ana/usesofanalytica.htm Applications of Analytica]
*[http://www.novix.com/ NOVIX - Intelligent Planning Systems with Analytica]
[[Category:Computer languages]]
[[Category:Declarative programming languages]]
[[Category:Array programming languages]]
[[Category:Functional languages]]
[[Category:Numerical programming languages]]
[[Category:Statistical software]]
[[Category:Visual programming languages]]
[[de:Analytica]]