Highlights of Analytica 4.0

Revision as of 07:03, 31 January 2007 by Max (talk | contribs)

The forthcoming new 4.0 release of Analytica has dozens of major new features and hundreds of smaller

enhancements. See the new Analytica logo and cube icon. This is a sample of the highlights:

Output formats

Graphs and Charts

We have completely rewritten Analytica's charting and graphing engine, adding a wide range of new styles and

options, smarter default behavior, and the flexibility to create much more elegant charts.

  • Chart styles: New styles include stacked bars (cylinders), filled areas, symbol sizes and colors to indicate

extra dimensions, and more. You can flip x and y axes -- e.g. for horizontal bars for tornado diagrams.

  • Axes: Log scales and reversed scales. Date formats. Intelligent label resizing and rotation to avoid overlaps.

These scale properties apply to the index shown along that axis. If you set them as the default, those

properties will apply to that index in any graph that uses it.

  • Appearance: Select color and pattern to backgrounds, including color gradient. Line widths. Font face, size,

and color for titles, axis labels, and key. 3-D bars - cylinders or cuboids. Appearance of tick marks,

  • Chart style -- e.g. continuous or categorical -- is attached to the dimensions and indexes, so switches

appropriately when you pivot or change uncertainty views. You can save the range and other properties of an

axis as the default for the underlying index variable, so it will apply to all graphs using that index.

  • You can export a graph as a
  • While viewing a graph result, you can select File->Export... and export the graph as a JPEG, etc.

For more, see Graph settings

Tables

  • You can include dropdown menus in cells of an Edit table, letting users select from a predefined set of

options, by using the Choice() function.

  • Select Find... from Object menu or control-F to search for text in a table.
  • Dozens of new mouse and keyboard shortcuts let you navigate and

select regions from tables. They all are identical to Excel where relevant. For example, the mouse wheel lets

you scroll. Drag the mouse from one cell to another to select the rectangular region between them.

  • When you reopen a table or graph, Analytica remembers all settings from the last time you looked at it,

including pivoting (index chosen for horizontal and vertical dimensions), slicers (values to show for other

dimensions).

  • Copy from a table uses full precision. You can control the order of indexes in a multidimensional table by

reordering its slicer indexes (shown above the table).

  • Exported table data includes any external variable columns or coordinate index columns.
  • With Analytica Enterprise, you can now scroll through Huge index dimensions with over 32,000 elements.
  • The Subtable function lets you define a variable as part of another Edit table. Any change to an element of a

Subtable is reflected in its parent table, and vice versa.


Influence Diagrams

  • Help for creating neat diagrams: New options in Diagram menu let you align nodes to top, left, bottom, or

center vertically or horizontally; make nodes the same height, width, or both; space nodes evenly horizontally

or vertically.

  • URLs in a text node appear as hyperlinks in the diagram.
  • Optional flag in node shows which objects have descriptions.
  • When you've selected a Button object, CONTROL-e now opens its Script. As before, for a Variable or

Function, CONTROL-e opens its Definition.

  • The mouse wheel scrolls a diagram vertically. If you hold the Control key, it scrolls horizontally.

Non-US text and numbers

Recognizing that nearly half Analytica users are outside the US -- Analytica is finally getting a bit less

US-centric:

  • Date and currency formats: The Number format dialog now lets you select a much wider variety of formats,

including non-US dates, currency symbols, and negative numbers. Date formats respond to the Windows

region setting.

  • You can now paste text containing accents, symbols, and characters from non-English languages (for

ascii>127) into Object windows and diagram nodes.

  • We know we still have some distance to go towards full internationalization, but this is a start.

The Application

  • Auto save: Analytica automatically saves each model change to a backup file. So you can no longer lose

changes after a software or hardware crash. Next time you start the model after an unplanned exit, it asks if

you want to continue using the changes from the backup or revert to the previously saved version.

  • Analytica now shares CPU nicely with other applications. Earlier versions hogged 100% of CPU cycles

when the Analytica was in focus -- i.e. its application window is on top.

  • It can now read model files that use LF (linefeed) as the end-of-line character, instead of CR (carriage

return). This convention is standard for Unix and Linux, and sometimes happens to files that are stored or

emailed from a Unix server.

  • If your computer had multiple screens to show a larger desktop, you can now edit Analytica diagrams on

any screen or across multiple screens.

  • Analytica is stops more gracefully when a calculation causes it to run out of memory.
  • Analytica 4.0 can handle up to 32,000 objects -- variables, modules, functions, etc. --- double that in

previous releases.

New and Enhanced Functions

  • [[Date Functions|Date functions] provide much more flexibility for computing with dates, to go along with the

much greater flexibility in displaying dates from the Number format dialog (from Result menu).

  • MdxQuery( ) supports the standard MDX language for querying and writing

to multidimensional OLAP or hyercube databases, such as Microsoft SQL Server Analysis Services.

(Analytica Enterprise only).

Probability distributions

probability density (or mass) function or cumulative distribution function as arrays, so the model can work with

them. Previously, they were only available to view as a graph or table.

from few Monte Carlo (or Latin hypercube) samples. Instead of treating all samples as equally likely, you can

set a weighting vector. For example, in a risk analysis with a low probability of extremely bad outcomes, you

may want to increase the number of samples that lead to bad outcomes to get more detail in that region with

correspondingly smaller weight to keep the distributions unbiased. You can also modify the weights to reflect

different input distributions and rapidly see the effects on the resulting distributions without having to rerun the

simulation. Every probability distribution and statistical function uses the importance weights. The default

uses equal weights, as before, so you don't have to worry about importance sampling unless you want to use

it.

  • To create an array of independent probability distributions over an index I, you can use Normal(0, 1, Over:

I). This works for all probability distributions.

  • Random( ): Generates random sample from selected distribution.
  • Shuffle( ): Randomly shuffles a sample.

System Functions

  • RunConsoleProcess lets you run another application from Analytica. It can pass data via a parameter or a

file. It can run the process in parallel or wait for result to be returned as a file.

  • GetRegistryValue( )
  • ShowPdfFile( ) shows an Adobe PDF file -- for example, to open documentation for a model.
Array functions
  • Argmin(X,I)


  • The new position operator @J returns an integer from 1 to n correspondning to each element of index J. You

can also use it in a subscript: A[@J = 2] is equivalent to Slice(A, J, 2).

  • You can specify a [[Function Lognormal | Lognormal] using optional parameters mean and stddev (standard

deviation), instead of the default median and gsdev (geometric standard deviation).

  • The subscript syntax now lets you to subscript an expression -- e.g., (A+B)[I=x].
  • You can assign to a slice of a local variable L, e.g. L[I=x] := b, letting you implement some algorithms much

more efficiently.

Special Functions
  • ArgMax, ArgMin, PositionInIndex, SubIndex, LinearInterp, StepInterp and CubicInterp have been moved to

the Array library (formerly in Special).

it has Educational, Beta status, or supports the Optimizer.

  • [[Trig_Functions] add inverse functions ArcCos, ArcSin, ArcTan, and hyperbolic functions CosH, SinH, and

TanH to the standard Sin, Cos, and Tan. All use degrees, not radians.

Enhanced Functions

Many functions have been extended, in some cases accepting additional parameters, and in others, increased

scope.

Statistical Functions
You can now compute statistics --

such as Mean, Variance, Frequency, Correlation, and many others -- over any index, not just Run (the Monte

Carlo sample index).

Array Functions

Allows selection of mid, lower, or upper rank (i.e., rank number in the event of a tie)

Optional fifth index parameter: Area(R,I,X1,X2,J)

Allows selection of the value column. Abstracting over that parameter allows "fact-tables" (as they are called

in the OLAP community) to be transformed.

Operators#ArgMin_and_ArgMax|ArgMax]]: Can now perform the min/max over multiple indexes, and can

return either index value or index position.

Distribution Functions
  • Truncate(x,min,max) : Now accepts min and/or max thresholds parameters (both optional, but at least one

required), and preserves sample ordering, and so rank correlation.

  • Uniform( ): optional integer parameter, over parameter, and singleSampMethod parameter.
  • Over parameter added to many of the distribution functions, used to specify dimensions over which

independent samples should be returned.

New Language Features

User-Defined Function Extensions
  • "..." means the parameter may be repeated multiple times.
  • NonNegative qualifier
  • ContextSamp qualifier
  • Optional indexes
  • Default values for optional parameters
  • A parameter declared as IndexType evaluates to its index values in a value context (relevant when a variable

with a self-index is passed as an index parameter).

Domain attribute extensions
  • Automatic, discrete, and continuous domain types. This is then picked up PDF computations to determine

whether a PDF or ProbMass graph (or cum versions) are appropriate for numeric-valued samples.

  • Index-valued domain. The domain can obtain its values from a different index. The evaluated index values

become the index values for the variable.

Importance Weighting

Although this remains a bit of a hidden feature, it is possible to assign a different weight to each sample (e.g.,

weight indexed by Run), which is then utilized transparently by statistics functions and views. Two important

uses of this are sampling from distribution other than the target distribution, and a poor-man's version of

posterior conditioning. The system variable SampleWeight specifies the weighting.

Support for new SQL Server 2005 data types (DbTable, etc)
Function improvements
  • Hierarchical beta, geometric and hypergeometric distributions are much faster.
  • Range of parameter for Gamma, Binomial distributions extended, as well as for the GammaIInv function.
  • MdTable. Can be used to transform a fact table (in which the first N

columns specify coordinates, and the remaining M columns specify "measures"). Also, the conglomeration

parameter has been generalized -- it is possible to conglomerate using a user-defined function.

  • Uniform() with an optional integer:true parameter generates uniformly distributed

integers.

System Variable Additions
  • AnalyticaEdition
  • SampleWeight
  • IsSampleEvalMode


  • 0*NaN and 0*INF issue a warning and return NaN, consistent with IEEE standard 754. Earlier releases of

Analytica returned 0

Libraries

New distributions in "Multivariate Distributions.ana"
  • MultiUniform
  • Uniform_Spherical
Distribution variations

(Note: these distributions can also be used within the Random function for single variate generation)

  • Smooth_fractile
  • Warp_dist
  • Erlang
  • Pareto
  • Rayleigh
  • Lorenzian
  • NegBinomial
  • InverseGaussian
  • Wald
Functions in the new "Generalized Regression.ana" library
  • Logistic_Regression
  • Probit_Regression

(These require Analytica Optimizer to use)

The Optimizer

  • Analytica Optimizer 4.0 uses the new 7.0 release of Frontline Systems Solver, which offers significant

improvements in performance and functionality.

  • The new Grouped integer variable type lets you define a set of N integer decision variables, where a

solution must assign a different integer from 1 to N to each of the variables in the group.

  • QpDefine now supports quadratic constraints.
  • The new frontline comes with some licensing restrictions that were not present previously. These are

detailed at Analytica Optimizer Licensing.

  • If your optimization problems are really large, you can use yet more powerful [[Using a Solver Add-on Engine

|add-on solver engines]], including OptQuest, Knitro NLP, Mosek SOCP and NLP, and Xpress LP, QP and

MIP (priced separately).

  • Function SolverInfo provides information about any installed solver engine, including engine type, all

parameters, search-control settings, and their allowed ranges.

  • ObjNl and LhsNl parameters add the 'Q' option to specify quadratic dependence.
  • Function LpFindIIS lets you relax variable bounds (not just constraints, as before). Two new parameters

control this, and whether a subset of constraints is returned or a new LP.

and diagnose solver formulation and behavior.

  • Tracefile helps debug NLP optimizations.

optimization array abstracts properly -- for example, for probabilistic or WhatIf analysis with NLP.

  • Almost all parameters to NlpDefine are now optional, making it simpler to define an optimization problem

with a scalar decision variable, only zero or one constraints, or to find feasible solutions only.

  • To speed up NLP, you can give NlpDefine an explicit expression to compute the Hessian -- second

derivatives of the objective and LHS.

Comments


You are not allowed to post comments.