What's new in Analytica 7.0?

(Redirected from Analytica 7.0)


Analytica 7.0 will be the next major Analytica release. The current official release is Analytica 6.5 and the next planned release is Analytica 6.6. However, we have the Python integration largely complete already and are looking for volunteers to test the Python Integration today, prior to a public 7.0 beta. If you are interested in participating, send us an email to support@analytica.com.

Developer Edition

Analytica's middle-tier edition is changing its name! Formerly known as the Enterprise Edition, it is now called the Analytica Developer edition.

For existing Enterprise users, you don't have to update your license or do anything special. The name will just change.

When viewing the Analytica docs, the new Analytica Developer edition name will be used through the docs when you have selected "7.0" on the release bar. The release bar appears at the top of pages that contain release-contigent content.

Python integration

You can now benefit from the large ecosystem of Python libraries from the Analytica Developer edition or better (i.e., Analytica Optimizer edition or ADE). Use Python libraries (called modules in Python lingo) or Python code directly from your Analytica model, and it is super easy and convenient to do so! Among the gazillion possibilities are specialized data visualizations, using machine learning libraries, third party libraries, etc.

See: Using Python from Analytica

For the Analytica modeler, this puts a ton of resources at your fingertips.

For the Python developer, this is also pretty cool. Analytica is like a new interactive development environment in which there are a lot of unique advantages, especially during interactive code development, including these:

  • Analytica's dependency maintenance can be really convenient during interactive development, creating automatic dependency maintenance between your python functions, classes and variables that don't exist in Python.
  • The visual influence diagram layout can be a super useful to way organize and visualize your code.
  • It naturally encourages declarative code practices, which leads to better and more maintainable coding style.
  • You get the benefits of Analytica's edit tables, plus for results, Analytica's multi-D result tables and one-click, no-code, graphing.
  • It is easy to wrap existing Python models to get Monte Carlo, parametric analysis and sensitivity analysis with Analytica ease.
  • Sometimes one or the other language is more convenient for a particular task. You can freely switch between whichever language feels better suited to the immediate task, and intermix languages easily.

Engine extensions

Callable

There is a new object Class called a Callable. A callable is a variable-like object, meaning it has a Definition and a computed value, but can be used for convenience and documentation when the computed value itself is something that can be called, such as a Local function (aka lambda function), a handle to an global function, a Python class or a Python function.

If you "compute" the identity of a callable data item inside a normal Variable instance, X, you could call it using the syntax X->(a,b,c). On your influence diagram the object would have a rounded rectangle and thus would not communicate that the result is something that can be called. When you change its class to be a Callable, you can then invoke the call using the syntax X(a,b,c) and the shape of the node changes to something that resembles a function shape, thus communicating that this holds something that is callable.

To create a callable, first create a Variable node, then use the Class dropdown from the Object window or Attribute pane to change the class to Callable.

Struct

A Struct defines a new atomic, immutable data type. For use when you need to bundle multiple heterogeneous items and don't want their dimensionalities to interact. Array abstract treats an instance of a Struct as a single cell (an atom).

Functions

ParseJSON

Changed to parse to Structs, thus greatly simplifying and improving the convenience of using JSON in Analytica expressions.

For parsing with a schema, a Struct's declaration serves as the schema, which is far easier and more familiar for an Analytica user than the former scheme for specifying a schema.

MakeJSON is able to generate JSON from a Struct (or nested structs) as well, which is the most convenient representation for JSON representations.

Example models and libraries

  • There is a new "Auto insurance claim risk analysis.ana" in the Example Models / Risk Analysis folder.
  • The Mutables library has been updated. It provides a new Mutable Struct which is superior to the older representation, which displays the actual value in result table cells and is atomic. The legacy functions (MutableNew, MutableSet and MutableGet) are still there for backward compatibility, but have been changed to just wrap the new Mutable.
Comments


You are not allowed to post comments.