NewsConsultingCompanyContact Us
What's new in Analytica 4.0?

What is Analytica?
Free trial of 4.0
Order 4.0

Here's an overview of the features introduced in Analytica release 4.0 added since release 3.1.

Order upgrade to 4.0,


User Interface  
Graphs and charts

We completely rewrote the graphing and charting engine, adding a wide range of new styles and options. The Graph setup dialog now has six tabs:

Chart type tab includes stacked bars, filled areas with transparency, using symbol shape and size to indicate extra dimensions, 3D effects on bar charts, cylinders or boxes, and changing line width. It lets you swap horizontal (X) and vertical (Y) axes, e.g., to create horizontal bars for tornado diagrams.

Axis tab offers log scales, reversed scales, and categorical scale. You can save axis settings as defaults associated with corresponding index variables. Graphing is much smarter in choosing which dates to display along an axis-by week, month, quarter, or year.

Style tab lets you change colors of grid and frame-in addition to style of the grid, frame, tick marks, and key.
Text tab lets you change the font type, size, style, and color for titles and labels. You can also rotate labels for axis tick marks to prevent overlaps, say for long text values.

Background tab now lets you set a color or color gradient for the background of the entire chart, plot area, or key.

Preview tab lets you look at the effects of the options you have selected before you decide to accept it (see image below). You can apply new graph settings to the current graph, or as defaults for all graphs.

Graph Style Templates Graph Style Templates let you apply and reuse a collection of graph settings, for a consistent style for a model or your entire organization.
Graphing associates settings with the view so that it changes appropriately when you pivot or change the uncertainty view.
XY comparison XY comparison now lets you plot one slice against another slice of an array variable over the Comparison index, as well as one variable against another.
Tables In graphs or tables, you can reorder slicer indexes (any graph indexes not shown on horizontal axis or key) simply by dragging them.

You can create smarter end-user interfaces by putting dropdown menus in cells of an edit table, using Choice() to let end users select from a list of options. When viewing a table, using Find from the Object menu (Control-F) lets you search for selected text.

The new SubTable function lets you define a variable as a subset of another edit table-any edit to a subtable makes the same change to its parent table, and vice versa.

Smart table splicing controls how an edit table changes if its indexes change, e.g., editing a label or adding an item or index. You can specify default values for new cells created by expanding and index.
Number, currency, dates, and languages Analytica is less US-centric: Number formats offer multiple currency symbols and flexible date formats, with format and language of days and months depending on Windows regional settings. You can paste text containing accents and non-English characters (Ascii>127) into Object attributes and diagram nodes. The date functions DateAdd, DatePart, and Today add flexibility for computing dates.
Scroll wheel and keyboard shortcuts The scroll wheel on your mouse scrolls windows (Diagrams, Tables, and Objects), vertically, or horizontally when you pressControl. Dozens of new keyboard shortcuts let you navigate and select cells and regions from tables (like Microsoft Excel). When editing a diagram, shortcuts Control-1, Control-2, etc., add a new Decision node, Variable node, etc. Control-e now opens the script of a button, just like it opens the definition for a variable or function.
Influence diagrams To make diagrams neater, use the new Align, Make same size, and Space evenly options from the Diagram menu. You can now add web links to a diagram as URLs in a text node. An optional red flag in node shows which objects have descriptions.

Here's an alternative to drawing arrows: When you're editing a definition in the Attribute pane below a Diagram window, Alt-click another node in the diagram to insert its identifier into the definition.

The Application  
Auto Save Analytica writes each change to an auto save file, so you won't lose any work after a software or hardware crash. Next time you start the model, it asks if you want to use the backup or revert to the previously saved version.
CPU Sharing It shares CPU nicely with other applications, and doesn't hog the CPU when it is active.
Multiple Screens Analytica now supports editing diagrams across multiple screens for a larger desktop.

Probability distributions and statistical functions  
Discrete or continuous When graphing a probability distribution, it is smarter about displaying a probability mass functions for a discrete variable or density function for a continuous variable. If needed, you can override this, by specifying Continuous or Discrete in the Domain attribute, or checking Categorical in the Axis scale tab in Graph set up.
New functions Random( ) generates single random sample from any distribution. Shuffle(x, i) randomly shuffles an array. Pdf(x) and Cdf(x) return the estimated probability density or cumulative probability functions as arrays. The system variable IsSampleMode returns true in Prob mode, false in Mid mode, so you can tell the evaluation mode within a function.
Over parameter You can create an array of independent probability distributions over one or more indexes by adding optional Over parameter to a univariate probability distribution, e.g., Normal(0, 1, Over: I, J).
Extended functions Lognormal uses mean and stddev (standard deviation) as an alternative to median and gsdev (geometric standard deviation). Truncate(x, min, max) accepts min and/ or max threshold parameters and preserves sample ordering, and hence rank correlations. Uniform(min, max, integer) adds the optional parameter integer to specify that values be integers in the range. CumDist(p, r, i, smooth) adds an optional Smooth parameter to control interpolation.
Uncertain parameters Many distribution functions are much faster, especially when their parameters are uncertain (hierarchical distributions). Gamma, Binomial, GammaIInv are more accurate for extremely large or small parameter values.
Multivariate distributions library New distributions include MultiUniform and Uniform_Spherical, generalized Reshape_dist, functions for creating time series with serial correlations, and uncertainty about regression coefficients.
Distribution variations library New distributions include Smooth_fractile, Warp_dist, Erlang, Pareto, Rayleigh, Lorenzian, NegBinomial, InverseGaussian, Wald.
Running index for statistics By default, the running index defining which dimension statistical functions operate over is Run, the index over random samples. You may specify a different running index as the last parameter to any statistical function if you want something other than Run, e.g., Variance(X, I) computes the variance over index I, even if X is not uncertain. This renders obsolete the Data Statistics Library.ana, previously included with Analytica.
Importance weighting Importance weighting is a powerful enhancement to Monte Carlo simulation that lets you get more information from fewer samples; this is especially valuable for risky situations with a small probability of an especially good or bad outcome. Instead of treating all samples as equally likely, you can set SampleWeighting, for each sample, generating more samples in the most important areas of sample space. Graphs of probability distributions and statistical functions downweight sample values with SampleWeighting so that their results are unbiased. You can modify SampleWeighting interactively to reflect different input distributions and so rapidly see the effects the effects on results without having to rerun the simulation. In the default mode, it uses equal weights, as before, so you don't have to worry about importance sampling unless you want to use it.
Weights for statistics By default, statistics functions use SampleWeighting when you are using importance sampling. You may also provide an optional parameter W to a statistical function to specify a nondefault set of weights. For example, Mean(X, W: X > 0) gives the mean of X conditional on X being positive.

New functions and language extensions  
List of variables If you define a variable as a list of variables, e.g., X := [A, B], it creates the list variables as the Index value of X. This is very convenient for comparing several variables. In a Table view, it usually shows the Title of each variable in the index. If you double-click a variable title, it opens its Object window. You can add another variable C to the list simply by drawing an arrow from C to X, or remove it by redrawing the arrow.
IndexVals If you define X as a list of variables, as above, it saves the list of variables as its index in its IndexVals attribute. You can get these with the IndexVals(X) function. If you pass X to a function as an Index parameter, it uses indexVals.
FOR iteration index In FOR j := x DO e, x can now be any expression that evaluates to an array. It evaluates e with j set successively to each cell (atom) of x. The value of the For expression is an array with the same index(es) as x.
You can now subscript an expression, as in (A+B)[I=x].
Position operator @ @J returns the position (an integer from 1 to n) of each element of index J. X[@J = 2] is equivalent to Slice(A, J, 2). PositionInIndex(a, u, i) gives the position n in index i for which a[i=n] = u.
Slice assignment x[I=y] := b, now lets you assign to a cell or slice of a local variable x, allowing you to write some algorithms much more efficiently.
Argmin and Argmax The new Argmin(x, i) and existing ArgMax(x, i) can both now work over multiple indexes, and return the value or position of the indexes containing the minimum or maximum value.
Trig functions We have added the inverse trigonometric functions ArcCos, ArcSin, ArcTan, and hyperbolic functions CosH, SinH, and TanH. They use or return degrees, not radians.
XREFRank Lets you specify mid, lower, or upper rank in the event of a tie.
RunConsoleProcess Lets you run another application from Analytica. It can pass data as function parameters or via data files. It can run a process concurrently with Analytica or wait for its result to be computed.
System functions GetRegistryValue( ) returns selected values from the computer registry, such as the default directory for model or datafiles. ShowPdfFile( ) shows an Adobe PDF file, for example, to open PDF documentation for a model. AnalyticaLicenseInfo returns information about the license, such as its edition, beta status, expiration date, or user ID.
TypeOf(X) Returns the type of each atom in X as a text value, incuding "Number", "Text", "Reference", or "Null". If X is a handle, it returns the class of the object pointed to by X.
Handles A pointer to an object, such as a variable or module. The Inputs, Outputs, or Contains attributes create a list of handles to objects. With handles, you can write functions that navigate around a model, e.g., to get a list of the inputs or all ancestors of a variable. The new function Handle(X) gives a handle to X (instead of its value). HandleFromIdentifier(T), as you might expect, gives a handle if T is the text identifier of an object. IndexesOf(A) returns a list of handles of the indexes of array A.
Optional and repeated parameters The qualifier Optional in the parameters of a function specifies that the parameter is optional. You can also supply a default for when the parameter is omitted. The repeat qualifier "…" lets you define a function that takes one or more parameters of the given type.
Mutiply by zero 0*NaN and 0*INF now give a warning and return NaN, consistent with the IEEE 754 and SANE arithmetic standards. Earlier releases simply returned 0.

Analytica Enterprise Edition These features are available in the Enterprise edition, and may be used from the Power Player edition:
Database functions DbQuery, which returns a list of rows from a relational database, can now assign its result to a local index variable. This lets you create a single variable or function to return a relational table with its rows and columns as local indexes, so you no longer need to define auxiliary global indexes.
MDX hypercube access The new MDXQuery function supports the standard MDX language for querying and writing to multidimensional OLAP hypercube databases, such as offered by Microsoft SQL Server Analysis Services. It greatly expands ways to integrate Analytica with business intelligence and related applications.
MdTable Now lets you specify the first N columns of X as coordinates and the rest as measures, as used in a fact table, the format used to specify OLAP hypercubes. It also lets you pass it a conglomeration function.

Analytica Optimizer Edition The Analytica Optimizer uses the new 7.0 release of the Premium Solver from Frontline Systems.
New Optimizer Features New features include: Grouped Integer variable type, where a solution must assign a different integer from 1 to n to each variable in the group. The quadratic programming solver, QpDefine, now supports quadratic constraints in additional to linear constraints. SolverInfo function returns information about the current solver. The solvers offer a more flexible option for passing all parameters as a single array of parameters, labeled by parameter name in the index.
New Solvers Available You can add yet more powerful solvers, including OptQuest, Knitro NLP, Mosek SOCP and NLP, and Xpress LP, QP and MIP (priced separately). See the Optimizer Guide or What's New in Optimizer 4.0 for more.
Generalized Regression library Offers Logistic_Regression and Probit_Regression, using the Optimizer.
For more...

For more details, dowload the Analytica 4.0 User Guide from the Lumina Download Center. For earlier releases, see What's new in Analytica 3.1.



Copyright 2008, Lumina Decision Systems, Inc.