先日、JMPジャパン事業部では「JMP情報局」というセミナーの中で、「Excelプロファイル」に関する説明を行いました。これまであまり紹介してこなかった機能でしたが、多くの方にご参加頂き、いくつかの質問もいただきました。
Excelプロファイルは、Microsoft Excelで作成した数式をJMPの「プロファイル」を使って視覚化する機能です。JMPをインストールする際にExcelアドインを選択すると、このアドインがインストールされます。
JMPのドキュメンテーションには、Excelアドインを使用した例として、サンプルデータ(Demand.xlsx)を用いた総支出(Overall Cost)を在庫(Amount Stocked)や需要(Demand)から算出する数式をもとに、JMPのプロファイルを起動して数式を視覚化する例が示されています。
JMPヘルプの該当箇所(日本語)
Excelモデルの例 (jmp.com)
![nao_masukawa_0-1711331455070.png nao_masukawa_0-1711331455070.png](https://community.jmp.com/t5/image/serverpage/image-id/62581i731738391C93CF37/image-size/large?v=v2&px=999)
※Excelアドインは、Windows版JMPでのみ利用可能です。Macintosh版のJMPでは利用できません。
この機能は、Excelでの数式作成に慣れている方にとって、数式を視覚化する手段として有効です。しかし、JMPのデータテーブルや計算式を利用しても同様のことが行え、応用範囲が広がります。
そこで、本ブログではExcelプロファイルの例をJMPだけで実施する方法をご紹介します。
JMPで作成した計算式をプロファイルで可視化する手順
上記のExcelプロファイルの例に相当することをJMPだけで実施するには、以下の手順(1,2,3)を実施します。
(※上記の一連の手順は、本ブログに添付のデータテーブル「Demand_ex1.jmp」で確認できます。)
ステップ1. 各変数に対する最小値と最大値を設定
次のようなデータテーブルを作成します。
1行目は、各変数(Amount Stocked~Expiration Cost)の最小値を設定します。
2行目は、各変数(Amount Stocked~Expiration Cost)の最大値を設定します。
3行目にはDemand.xlsxのInputに相当する値を設定していますが、便宜的に設定しただけでこの行はなくても構いません。
![nao_masukawa_0-1711345105599.png nao_masukawa_0-1711345105599.png](https://community.jmp.com/t5/image/serverpage/image-id/62582i99F989BC6177DF74/image-dimensions/797x294?v=v2)
ステップ2. 計算式の設定
最後の列「Overall Cost」については、Demand.xlsxのB8セル(Output)に相当する計算式を作成します。
![nao_masukawa_1-1711345289509.png nao_masukawa_1-1711345289509.png](https://community.jmp.com/t5/image/serverpage/image-id/62583iC3D75C53B81E7211/image-dimensions/598x230?v=v2)
ステップ3. プロファイルの実行
ステップ2で作成した計算式をプロファイルで可視化するには、[グラフ] > [プロファイル] を選択し、計算式を設定した列「Overall Cost」を[Y,予測式]に指定します。すると、Excelプロファイルで作成したプロファイルと同様のプロファイルが出力されます。
![nao_masukawa_2-1711345665744.png nao_masukawa_2-1711345665744.png](https://community.jmp.com/t5/image/serverpage/image-id/62584i9C0E46BC227B3502/image-dimensions/853x206?v=v2)
プロファイルにある「中間式の展開」という機能
Excelでセルの依存関係がある場合(例えば、A1のセルがA2とA3を使って計算され、A5のセルがA1とA4を使って計算される場合)では、Excelプロファイルでは対応することができません。しかし、上記で示したJMPでデータテーブルを作成してプロファイルを実行する方法なら可能です。
例として、先ほどの例を改良した次のデータテーブルを提示します。先ほどとの違いは、Amount Stocked - Demand を計算した列「dif(S-D)」があり、プロファイルで用いる列である「Overall Cost」は、この「dif(S-D)」 を使って計算式が作成されています。
(※本ブログに添付している「Demand_ex2.jmp」でご確認ください。)
![nao_masukawa_3-1711347890008.png nao_masukawa_3-1711347890008.png](https://community.jmp.com/t5/image/serverpage/image-id/62587i29FCB3A0397C8D03/image-dimensions/754x255?v=v2)
![nao_masukawa_5-1711348198185.png nao_masukawa_5-1711348198185.png](https://community.jmp.com/t5/image/serverpage/image-id/62589i0F6E2AB8E124831D/image-size/large?v=v2&px=999)
このデータテーブルを使用して、同様の手順でプロファイルを出力すると次のようになります。
![nao_masukawa_6-1711348405129.png nao_masukawa_6-1711348405129.png](https://community.jmp.com/t5/image/serverpage/image-id/62590i5FA654673895FB43/image-size/medium?v=v2&px=400)
この例では「Overall Cost」の計算式として、3つの列「dif(S-D)」、「Air Freight」、「Experiation Cost」を使用してるため、横軸はこれら3つの列に対するプロファイルが表示されます。
しかし、「dif(S-D)」は、「AmoutStocked」と「Demand」から計算しているので、これら2つをプロファイルの軸として使用したい場合も考えられます。その際は、プロファイルにある「中間計算式の展開」オプションを利用します。
このオプションは「プロファイル」設定の左下にあり、チェックをいれて実行すると、「dif(S-D)」の計算式に使用されている列が展開され、「Amount Stocked」、「Demand」がプロファイルの軸として表示されるようになります。
![nao_masukawa_7-1711348687987.png nao_masukawa_7-1711348687987.png](https://community.jmp.com/t5/image/serverpage/image-id/62591i448454189D93ED95/image-dimensions/954x247?v=v2)
「ロジスティックのあてはめ」などJMPのレポートから予測式を保存する際、いくつかの列にわたって計算式が保存されるケースがあります。このようなときに、今回の「中間計算式の展開」を覚えておくと便利です。
※本ブログでは、ブログ作成時点での最新版「JMP 18」を用いています。
by 増川 直裕(JMP Japan)
Naohiro Masukawa - JMP User Community
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.