こんにちは。Colleen McKendryです。JMPのシニア統計ライターを務めています。JMPの統計プラットフォームに関する多くのドキュメントを作成しています。JMPで働き始める9年前までは、JMPを一度も使ったことがありませんでした。キャリアを通して、JMPを使いながら学び続け、記事を書けるほどの知識を身につけてきました。JMPを学んでいた頃、特に便利だと感じたものの一つがJMPスクリプトインデックスでした。当時は、少し物足りないと感じていたこともあり、JMPには大きな可能性があると思っていましたが、情報が十分に網羅されていないなど、問題点もありました。
数年前、JMP 16の頃から、同僚のマイケル・クロッティと私は、JMPスクリプトインデックスの統計的側面を刷新するプロジェクトに着手しました。これは基本的に、情報の完全性、堅牢性、そして可能な限りの有用性を確保することを目的としました。
最近、検討していたすべての統計プラットフォームの最初のフルパスを終えたばかりで、Scripting Index は今非常に良い状態にあると感じています。そこで、このプレゼンテーションで Scripting Index についてより詳しく知っていただく良い機会だと思いました。Scripting Index を初めて知った方も、上級ユーザーも、どんなレベルの方でも、この講演から少しでも何かを得ていただければ幸いです。
スクリプティングインデックスが何なのかご存じない方のために説明すると、これはJSL(JMPスクリプト言語)を学習するための重要なツールです。JSLはJMPのネイティブコード言語です。スクリプトウィンドウを開いて何かを入力し始めると、JSLでコーディングしていることになります。スクリプティングインデックスは、JSL関数、オブジェクト、表示ボックスに関する情報を集めたものです。これらについては後ほど詳しく説明します。各エントリには簡単な説明と、インデックス内で実行できるサンプルスクリプトが埋め込まれています。
また、検索機能もあり、カスタマイズ可能なフィルタリング オプションが用意されています。これらのオプションの一部は最近更新されており、顧客エクスペリエンスの向上が期待されています。 JMP スクリプト索引はどこにありますか? 製品では、スクリプト索引にアクセスするさまざまな方法があります。 1 つ目は、ヘルプ メニューからアクセスする方法です。ヘルプ メニューをクリックすると、実際のスクリプト索引オプションが表示されるので、それを使用して開くことも、実際にスクリプトを操作しているときにアクセスすることもできます。 スクリプト ウィンドウでコーディング中に、特定の関数またはオブジェクトについてもう少し情報が必要な場合は、Alt キーを押しながらその関数またはオブジェクトをダブルクリックすると、スクリプト索引が開き、目的のエントリが表示されます。
同様に、スクリプト内で関数またはオブジェクトを右クリックすると、「ヘルプ スクリプト索引」というオプションが表示され、同じように動作します。そしてごく最近、jsl.jmp.com でスクリプト索引のオンライン版が利用可能になりました。スクリプト索引の情報がオンラインで提供されるのはこれが初めてです。これは製品内の索引と一対一で連携しており、ユーザーがスクリプト索引の情報にアクセス、共有、または使用するための新たな方法となります。
早速見ていきましょう。Scripting Index を開いた時の画面です。これから説明する Scripting Index の各領域を四角で囲みました。まずは左上の隅から見ていきましょう。ここにはナビゲーション系のコントロールがいくつか配置されています。まず、小さなトグルボタンがあります。これは Scripting Index の表示レイアウトを変更したい場合に使用します。次に、ナビゲーションボタンがあります。「戻る」と「進む」です。検索やクリック操作をしているときに、これらのボタンを使うと、再入力することなく前後に移動できます。
次に、すべてのカテゴリのドロップダウンリストがあります。左側の選択リストには、これらがすべて表示されています。関数、オブジェクト、Python、表示ボックスがあり、これらのいずれかを選択すると、リスト内の関数またはオブジェクトのみが表示されます。関数カテゴリには、JMPが提供する組み込み関数があります。これらはコードベースであるため、関数の結果はUIではなくログに出力されます。これらの例としては、数値関数、行列関数、文字関数、あらゆる種類の確率関数などがあります。これらはすべてここにあります。
一方、オブジェクトはUIベースです。JMPの動的な構成要素であり、メッセージを介して指示を受け取り、特定のアクションを実行します。データテーブル、データ列、プラットフォーム、結果ウィンドウなど、UIに表示されるものがオブジェクトであり、このカテゴリのエントリはそれらに関連しています。データ列の変更、結果ウィンドウへのオプションの追加などがこれにあたります。
Pythonカテゴリには、Python統合に特化した機能が含まれていますが、今回の講演では一切触れません。最後に、ディスプレイボックスがあります。これは、JMPでレポートや新規ウィンドウを作成するために使用される、さまざまな種類の長方形のボックスです。レポート内のこれらのディスプレイボックス間の関係は、ディスプレイツリーによって表されます。このカテゴリ内のすべてのエントリは、ディスプレイボックスへのデータ入力、例えば起動ウィンドウのようなオプションの追加、ラジオボタンオプションやチェックボックスなどに関するものです。
次に、これら2つの選択リストについて説明します。左側のリストにはカテゴリ名が、右側のリストには項目名が含まれています。これらのリストは階層的に関連しており、右側の項目は左側で選択されたカテゴリ名に含まれています。この画像では、左側で「管理図ビルダー」が選択されていることがわかります。右側の項目名はすべて、「管理図ビルダー」オブジェクトに関連付けられています。右側のリストで選択した項目名が、スクリプトインデックスの残りの情報に入力されます。
これから詳しく説明します。スクリプトインデックスウィンドウの残りの部分には、探している便利な情報など、すべての情報が含まれています。上部に項目名があり、その下に構文またはプロトタイプがあります。これは、エントリに含まれるオプションを含め、エントリをどのようにコーディングすべきかを示す基本的なコード構造です。
簡単な説明も表示されており、基本的にはエントリの機能、場合によってはプラットフォームに関する情報が表示されます。また、スクリプトウィンドウとログウィンドウが埋め込まれており、サンプルが既に入力されているので、Scripting Index内でこのサンプルを実行するだけでコードが実行され、ログまたはUIに出力されます。これにより、実際にコードを書かなくてもサンプルコードを確認することができます。
例のエリアに小さなドロップダウンアイコンが表示されている場合は、そのエントリに複数の例があることを意味します。これをクリックして様々な例を表示し、他に興味のあるものがあるかどうかを確認できます。最後に、追加のヘルプオプションがあります。「関連項目」をクリックするとドロップダウンメニューが表示され、この例のスクリプト内で使用されている他のスクリプトインデックスエントリの一覧が表示されます。この場合は変数です。変数はスクリプトインデックスの別のエントリなので、これをクリックすると表示されます。そして、スクリプトインデックスの変数エントリに移動して、詳細情報を取得できます。
「トピックヘルプ」ボタンも用意されており、これをクリックすると、現在ご覧になっている分野のオンラインドキュメントにアクセスできます。このボタンをクリックすると、「管理図ビルダー」のオンラインドキュメントが表示されます。次に、フィルタリング機能と検索バーがあります。これらを使用すると、スクリプトインデックス全体で、興味のある用語やフレーズを検索できます。ドロップダウンリストには、検索範囲を絞り込んだり、探しているものをより具体的に絞り込んだりするためのオプションがいくつかあります。
デフォルトでは、何かを検索すると、スクリプティングインデックス内のすべてが検索されます。名前、プロトタイプ、説明、例がすべて検索されます。これを変更したい場合は、下部のセクションにいくつかのオプションがあり、例のみを検索するか、カテゴリとアイテム名のみを検索するかを選択できます。
これらのオプションの上部セクションは単一選択のため、一度に選択できるのは1つだけです。これは、これらの条件に基づいて検索を絞り込むのに役立ちます。また、検索を行うと、結果はアルファベット順に表示されるだけで、順位付けや報告の順序は特に決まっていないことにもご注意ください。
では、短いデモをやってみましょう。そろそろ終わりにしましょう。JMPを開いてください。先ほども言ったように、ヘルプメニューからスクリプトインデックスにアクセスできます。あるいは、例えばスクリプトを開いている場合、例えばレスポンススクリーニングに関するスクリプトを開いているとします。Altキーを押して「レスポンススクリーニング」をダブルクリックします。スクリプトインデックスが開き、検索フィールドにダブルクリックした項目が表示されます。レスポンススクリーニングに関連する様々な結果が表示され、そこからさらに詳しい情報を得ることができます。
最初からやり直すために、この画面を終了しましょう。先ほど触れたトグルボタンでビューを切り替えることができます。次にナビゲーションコントロールがあります。先ほど検索を実行したので、入力せずにレスポンススクリーニングの結果に戻ったり、クリアした時点まで戻ったりできます。
これらはカテゴリーです。関数だけ、オブジェクトだけ、Python、ディスプレイボックスだけを表示できます。PowerPointでは触れていませんでしたが、「バージョン」ボタンもあります。また、JMPのバージョンに基づいてリストを絞り込むこともできます。JMP 18以降に追加されたエントリだけを表示したい場合は、新しいものを探すことができます。
これで選択リストができました。左側にある「管理図ビルダー」に戻って、もし見つかったらクリックします。できました。右側を見ると、これらはすべて「管理図ビルダー」に関連するオブジェクトです。これらをクリックすると、クリックした項目名に関する情報が「スクリプトインデックス」に動的に更新されます。
こちらがPowerPointでも紹介した「管理図ビルダー」のエントリです。ここには自動的に入力されたスクリプトがあります。この実行例を使って実行すると、管理図ビルダーのスクリプトが自動的に実行されます。それでは見てみましょう。説明と照らし合わせて、何かを見つけ出せるか確認してみようと思います。ドロップダウンメニューがあるので、管理図ビルダーの例が複数あることがわかります。今回の場合は、管理図ビルダーの例が複数あります。
ここまでスクロールして「Rare Event Chart」をクリックすると、そのサンプルスクリプトを実行できます。Gチャートが表示されます。ここに「関連項目」があります。先ほども言ったように、このサンプルスクリプトでは他にも多くのスクリプトインデックスのエントリが使用されています。例えば、シグマの指定方法について詳しく知りたい場合は、ここをクリックします。シグマのエントリに直接移動して、標準偏差を指定する方法を読むことができます。デフォルトについて読んで、さらに知識を深めることができます。その後、「戻る」ボタンを使って、最初に見ていたサンプルスクリプトに戻ることができます。この「TopicHelp」ボタンをクリックすると、管理図ビルダーのドキュメントが読み込まれます。これを最小化してください。
他のカテゴリーの例をいくつか挙げたいと思います。関数についてですが、デモ用に非常に簡単な例をいくつか挙げます。数値については、ここで実行できる単純な絶対値関数があります。一番下にはログの出力があります。[inaudible 00:15:41] 少し上に上がっています。
また、これらの例に埋め込まれたスクリプトは完全に編集可能なので、必要に応じて新しい行を追加できます。そして、それを実行すれば結果を得ることができます。編集した内容、追加した内容、削除した内容は、どこをクリックしてもこのスクリプトウィンドウに残ります。ここをクリックして、別のカテゴリ名に移動できます。数値と絶対値に戻っても、そこに残っています。これらはすべて、スクリプトインデックスウィンドウを閉じるまで、または編集を開始したときに表示された追加のボタンに気づいたかもしれませんが、それをクリックすると例がデフォルトにリセットされ、編集した内容がすべて削除されます。
さて、ディスプレイボックスの例ですが、先ほども申し上げたように、JMPウィンドウにデータを追加したり、既存のJMPウィンドウに新しいデータを追加したりするものです。これはチェックボックス付きの新しいウィンドウを作成する基本的な例です。ここで確認できます。既存のウィンドウに追加することもできます。これはフレームボックスです。フレームボックスとは、JMPウィンドウに表示される大きな長方形のことです。このスクリプトの最初の部分、つまり二変量スクリプトを実行できます。これは通常のJMP二変量レポートです。
次に、追加のコードを使って実行すると、二変量レポートの上にポリゴンが追加されます。これはScripting Indexと直接関係するわけではありませんが、PowerPointで触れたように、表示ツリーへのアクセス方法も紹介しておきます。この展開アイコンを右クリックし、「編集」→「ツリー構造の表示」を選択してください。これらは基本的にすべて表示ボックス項目なので、Scripting Index内にエントリが作成されます。境界線ボックスとフレームボックスの連携方法、追加できるもの、グラフにマーカーを追加する方法、グラフ内のマーカーに関する情報を取得する方法など、細かい詳細を確認できます。簡単に説明しておきたいので、これらはすべて削除してください。
デモで最後にやりたかったのは、検索をいくつか実行して、検索を絞り込むのに役立つオプションを確認することでした。すべてデフォルト設定のままにして、管理図に戻りたいので、管理図を検索してみたいと思います。最初に表示されるヒットは、実は「Fit Model」のどこかにある「Compare with Control Decision Chart」です。これは、私が管理図を探していたときに興味を持ったものではありませんでした。これは、検索が用語自体を検索しているため、control と chart を含みますが、必ずしも一緒に含まれていないためです。そこで、「フレーズを含む」オプションを使用して、すべての検索結果に「control chart」がフレーズとして全体的に含まれていることを確認できます。これは、関心のある例を確実に取得するのに役立ちます。これをクリアして、デフォルトに戻します。
検索バーの使用は、実は初心者にとっては非常に便利だと思います。スクリプトの書き方を学びたい人に必ずしも役立つとは限りませんが。例えば、私がJMPの初心者で、分散分析を実行したいとします。JMPの分析名は必ずしも標準的な文献で使われている名前と一致するとは限りません。私はJMPで働いており、JMPのことはよく知っています。Onewayプラットフォームで分散分析が見つかることは知っています。しかし、初心者にとって、UIだけでそれを見つけるのは非常に難しいかもしれません。
検索バーで「ANOVA」を検索すると、最初のヒットでANOVAレポートの表示/非表示を切り替えることができました。これは非常に有望そうです。これを実行してみましょう。この一元配置分析に関連していることがわかります。再起動して起動ウィンドウがどのように表示されるかを確認すれば、ANOVA分析の実行方法を調べたい場合にUIで何をすればいいのかを実際に把握できるでしょう。
もっと例が欲しい場合は、さらに下へスクロールしていきます。そして、この3番目の結果にたどり着くと、これが実際には多変量分散分析に関するものであることがわかります。私は必ずしもその分析には興味がありません。ANOVAだけが欲しいので、これを絞り込み、他の検索結果にANOVAのエントリが含まれていないことを確認するために、「単語全体を検索」を使用します。これにより、ANOVAと他のいくつかの結果が除外され、ANOVAが他の単語に含まれているかどうかに関係なく、ANOVAを単語単体で検索できるようになります。これは、あなたが探しているものを見つけるのに役立つかもしれません。
デフォルトに戻ります。さて、最後の検索例として、コーディングに興味があるとします。必ずしも初心者というわけではありませんが、自分でコーディングする方法を知りたい、特に何らかの理由で行列を使っていて、自分で特異値分解を行いたいとします。「JSLでどうやってやるの?」と疑問に思うでしょう。
「特異値分解」で検索できます。いくつかヒットしますが、最初のいくつかは、プラットフォーム内で特異値分解を実行しているようで、必ずしも自分で書いたコードだけで実行しているわけではないようです。検索バーでは、フィルタリングされたカテゴリも表示されます。これを関数のみを表示するように変更することもできます。これで、JSLで独自の特異値分解を実行できるJMPの4つの関数が表示されます。これらを確認して、自分に最適なものを選び、SVDの開発を進めてください。
デモはこれで終わりです。少しだけプレゼンテーションに戻りたいと思います。フルスクリーンのデッキです。最後に、Scripting Indexの私のお気に入りの使い方をいくつかご紹介したいと思います。これは上級スクリプターだけでなく、初心者にも非常に役立つ機能だと改めて強調したいと思います。まず1つ目は、デモでも触れましたが、検索機能を活用することです。JMPで別の呼び方をしているもの、例えば分散分析と一元配置分散分析などを検索するのに最適です。
特定の統計手法がどのプラットフォームでサポートされているかを調べるのに便利です。興味のある手法があるけれど、それがどのプラットフォームに当てはまるか正確にわからない場合、スクリプトインデックスを使えばすぐに見つけることができます。また、特定のプラットフォームの例やデータテーブルを探すのにもスクリプトインデックスを利用できます。もちろん、基本的なスクリプトの学習にも役立ちます。それだけでなく、今でもスクリプトを作成するときはいつでも、スクリプトインデックスを開いて参照しています。
私にとって特に役に立ったのは、アドインを作成していた時です。私たちのアドインには、カスタムの起動ウィンドウやその他のダイアログがあり、既存のJMPレポートに様々な機能を追加していました。そのため、スクリプトインデックスの表示ボックスカテゴリは、起動ウィンドウにチェックボックスなどのオプションを追加する方法や、既存のJMPレポートに様々な機能を追加する方法を学ぶのに非常に役立ちました。
最後に、これは製品を離れずに基本的なドキュメントを入手できる良い方法だと思います。作業中であれば、ブラウザを開いてドキュメントを検索するまでもなく、この方法を使えば製品画面から操作を続けながら、役立つであろう基本的な情報を得ることができます。もし役に立たない場合は、「TopicHelp」ボタンを使って、より詳しい情報が記載されているドキュメントのページやセクションに直接移動できます。
私からのメッセージは以上です。これは録画してありますが、皆さんがこれを見ている間もチャットに参加していますので、ご質問があればお気軽にお送りください。