日本語 English
株式会社ヒューリンクス
TEL:03-5642-8384
営業時間:9:00-17:30

Analytica 7.0 の新しい機能

概要

  • Python との統合 (Python integration):強化された主要な強化は Python との統合です。これにより Python をとりまくエコシステムのライブラリ全体が統合されます。Python ライブラリの関数を簡単に呼び出したり、Python 変数にアクセスしたり、Analytica の変数や関数内で Python コードを記述したりすることも可能です。つまり、モデリングやコーディングのニーズに最適な言語に合わせて、Analytica と Python を組み合わせることができる訳です。
  • インデックスラベルの自動アップデート:インデックス内のテキストラベルを変更した際に、そのテキストラベルを参照する式の変更を忘れてしまうことが、エラーの原因となることがよくありました。新バージョンでは、ほとんどの場合、ラベルの変更は式内で自動的に更新されるようになりました。
  • Analytica の Enterprise エディションは、内容を適切に反映させるため、名称を Developer エディションに変更しました。
  • 新しいオブジェクトクラスが2つ導入されました。
    • Struct を使用すると、テキスト、数値、アトム、配列などの異なる種類の値を、配列として抽象化されない 1 つのオブジェクトにまとめることができます (他の言語の Records や Classes に似ています)。
    • Callable はユーザー定義関数に似ていますが、その Definition は Python クラスまたは Python 関数への handle にすることができます。
  • ParseJSONMakeJSON で、JSON の階層構造を表現するのに非常に便利な Structs を使用するようになりました。
  • スプレッドシートを Excel なしで読み書き: これはより高速かつ堅牢です。Excel をインストールする必要はありません。

Python との統合

Analytica の Definition に Python コードを記述できるようになりました!Analytica スタイルのインテリジェント配列を使えば、Python 関数を簡単に呼び出すことができます。これにより、Python ライブラリ(Python 用語ではモジュール)の広大なエコシステムにアクセスできます。膨大な数の可能性の中には、データ可視化、統計、機械学習など、様々な用途に特化したライブラリが含まれています。つまり、Analytica と Python を自由に組み合わせて使うことができるのです。Analytica で最も扱いやすい部分は Analytica で書き、Python で最も扱いやすい部分は Python で書く、といった具合です。

Analytica でモデリングを行っていたユーザーにとっては、これにより大量のリソースがすぐに利用できるようになります。

Python 開発者にとっても非常に便利です。Analytica は、特にインタラクティブなコード開発において、多くの独自の利点を備えたインタラクティブな新しい開発環境になります。

  • Analytica の依存関係メンテナンスは、インタラクティブな開発においては非常に便利です。Python に存在しない Python 関数、クラス、変数間の依存関係の自動メンテナンスを作成します。
  • 視覚的な影響ダイアグラムのレイアウトは、コードを整理して視覚化するのに非常に役立ちます。
  • 宣言型のコード実践が自然に促進され、保守性の高い優れたコーディングスタイルにつながります。
  • Analytica の編集テーブルの利点に加え、結果については Analytica の多次元結果テーブルとワンクリック、コード不要のグラフ作成を活用できます。
  • 既存の Python モデルをラップして、Analytica でモンテカルロ分析、パラメトリック分析、感度分析を簡単に実行できます。
  • 特定のタスクでは、どちらかの言語の方が便利な場合があります。その時々のタスクに最も適していると思われる言語を自由に切り替え、簡単に言語を混在させることができます。

Developer Edition (旧 Enterprise)

Analytica のミッドティア・エディションは、これまで Enterprise Edition と呼ばれていましたが、この名称を Analytica Developer Edition に改訂しました。この名称は、意思決定アプリケーションの開発者向けソフトウェアという Analytica の本質をよりよく反映しています。現在 Analytica Enterprise をご利用の場合は、ライセンスの更新や特別な操作は必要ありません。Analytica 7.0 をインストールすると、名称が変更されます。Analytica のドキュメントでは、リリースバー(リリース依存コンテンツのあるページの上部)で「7.0」を選択すると、すべてのドキュメントで新しいAnalytica Developer エディションの名称が自動的に使用されます。

Analytica 言語の拡張

インデックスラベルの自動更新

変数の識別子を変更すると、Analytica はすべての Definition を自動的に更新して新しい名称を使用します。しかし、インデックス内のテキストラベルを変更すると、従来はそのラベルを使用しているすべての Definition でエラーが発生していました。例えば、

Index Animal := ['Cat', 'Dog']
Variable Sound := IF Animal = 'Cat' THEN 'Miaow' ELSE 'Woof'

もし、Animal インデックスで ‘Cat’ (ネコ) を ‘Feline’ (ネコ科) に変更すると、Sound の Definition が以下のように自動的に更新されるようになりました。

IF Animal = 'Feline' THEN 'Miaow' ELSE 'Woof'

この処理は、Animal= ‘Cat'<label> という記述が見つかると必ず行われます。インデックスラベルを、通常インデックスが出現しないコンテキストで使用する場合は、新しい構文 Index-label dot syntax (Animal . ‘Cat’) を使用してください。ラベルをインデックスに関連付けることで、必要に応じてラベルが自動的に更新されます。これらの機能は、インデックス内のテキストラベルを更新する際のよくあるエラーを回避するのに役立ちます。

Callable

新しいオブジェクトクラス Callable は変数のようなオブジェクトです。つまり、Definition と計算値を持ちますが、計算値自体が呼び出し可能なものである場合、たとえば、ローカル関数 (別名ラムダ関数)、グローバル関数へのハンドル、Python クラス、Python 関数などである場合に、利便性とドキュメント化のために使用できます。

通常の Variable インスタンスでは、変数 X の内部にある呼び出し可能なデータアイテムの ID を「計算」する場合、構文 X->(a,b,c) を使用して呼び出すことができます。影響ダイアグラムでは、このオブジェクトは角の丸い四角形になり、その結果が呼び出し可能なものであることが分かりません。このクラスを Callable に変更すると、構文 X(a,b,c) を使用して呼び出しを実行できるようになり、そのノードの形状は Function の形状に変化します。これにより、このオブジェクトが呼び出し可能なものを保持していることが分かるようになります。

Callable オブジェクトを作成するには、まず Variable ノードを作成し、次にオブジェクトウィンドウまたは属性ペインの Class ドロップダウンを使用してそのクラスを Callable オブジェクトに変更します。

Struct

Struct を使えば、アトム的で不変な新しいデータ型を定義します。種類の異なる複数のアイテムを束ねる必要があり、それらの次元が相互作用しないようにしたい場合に使用します。Struct のインスタンスは、配列の抽象化では、単一のセル(アトム)として扱われます。

Expression と Lazy 修飾子

関数のパラメータに渡す式を Expression 修飾子付きで宣言すると、ローカル変数の識別子が含まれるようになりました。このローカル変数は(Local function でキャプチャされる場合と同様に)キャプチャされます。

関数パラメータに新しい修飾子 Function_parameter_qualifiers#Lazy を追加しました。これは、渡された式を遅延評価するものです。関数の Definition では、式を通常の値パラメータであるかのように使用できますが、その評価は、関数の呼び出し時ではなく、値が使用される際に行われます。なお、評価コンテキスト(evaluation mode を含む)では、値は呼び出し時のコンテキストで使用されます。

Excess パラメータ修飾子

新しい関数宣言 (…) により、関数の Parameters 宣言でパラメータ名として宣言されていないパラメータを、名前付きの超過パラメータとして呼び出し時に許容またはキャプチャすることが可能になりました。これは Struct 宣言でも使用できます。

関数

ParseJSON

Analytica 式で JSON を使用する際の利便性が、Structs として構文解析されるように変更されたことで大幅に向上しました。

スキーマを使用して構文解析する場合、Struct 宣言がスキーマとして機能します。これは、スキーマを指定するための従来のスキームよりもはるかに簡単で、Analytica ユーザーにとって馴染み深いものになります。

また、JSON をあらわすのに最も便利な表現 MakeJSON は、Struct (またはネストされた Struct) から JSON を生成できます。

SpreadsheetOpen

SpreadsheetOpen に新しいパラメータ «backend» と新しいオプション ‘LibXl’ を追加しました。これにより、Excel をインストールしていなくてもスプレッドシートの読み込みと操作が可能になります。ただし、Excel バックエンドとは異なり、LibXl オプションには計算エンジンがありません(そのため、セルを変更した後にセルの数式を再計算できません)。このオプションは、*.xlsx ファイル形式のデータを読み書きしたい場合に適しています。

サンプルモデルとライブラリ

  • Example Models / Risk Analysis フォルダーに “Auto insurance claim risk analysis.ana” を新たに追加しました。
  • Mutables library を更新しました。従来の表現よりも優れた新しい Mutable Struct を提供し、結果テーブルのセルに実際の値を表示し、アトム的に利用できです。ます。従来の関数(MutableNew, MutableSetMutableGet)は下位互換性のために引き続き提供されていますが、新しいMutable をラップするだけに変更されました。

結果テーブルとグラフ

  • 比較インデックスのプルダウン (comparison index pulldown) に blank (none) 項目を追加しました。これにより、XY_comparison ダイアログを再度開かずに比較インデックスの設定を素早く解除できます。また、このプルダウンはブラウズモードでも表示され、有効になりました。
  • 比較変数の値にスライサーインデックスが含まれていない場合、スライサーインデックスが Totals に設定されている比較変数はスライサーインデックス上で合計されなくなりました。なお、これにより、テーブル本体のセルに表示される内容とグラフの軸のスケールに若干の変更が生じることにご注意ください。

Assista

  • Expression ブロックの右上隅にある小さな Copy アイコンを使用して、Assista の応答内の Expression ブロックからコピー&ペーストできるようになりました。

試験的な機能

  • デスクトップ Analytica で実行されている Analytica モデルを、大規模言語モデル (LLM) で使用するための Model Context Protocol (MCP) サーバーとして機能する方法。

ADE

  • 新しいサンプル「Mcp_server」を追加しました。これは ADE をラップする MCP サーバーです。Claude Code のような AI エージェントに Analytica モデルの構築、探索、使用といった機能を提供することができます。