スクリプトガイド > プラットフォームのスクリプト > プラットフォームのスクリプト例
公開日: 11/25/2021

プラットフォームのスクリプト例

JSL(JMPスクリプト言語)に慣れていない場合は、まずJMPで分析を対話的に実行し、そこからスクリプトを保存するとよいでしょう。JMPがスクリプトを生成してくれます。必要に応じてプラットフォームオブジェクトを作成したり、そのオブジェクトにメッセージを送ったりするなど、そのスクリプトに対して追加や変更を行ってください。

概要

この例は、次のステップで構成されています。

1. 分析を起動し、そのスクリプトをウィンドウに保存する

2. プラットフォーム参照オブジェクトを追加してメッセージを送る

3. データテーブル参照を追加し、スクリプトを保存する

分析を起動し、そのスクリプトをウィンドウに保存する

1. [ヘルプ]>[サンプルデータライブラリ]を選択し、「Big Class.jmp」を開きます。

この架空のデータセットには、40人の学生に関する名前・年齢・性別・身長(インチ)・体重(ポンド)が含まれています。

2. [分析]>[二変量の関係]を選択します。

3. 「身長(インチ)」を選択し、[Y, 目的変数]をクリックします。

4. 「年齢」を選択し、[X, 説明変数]をクリックします。

5. [OK]をクリックします。

学生の年齢と身長の関係を示す一元配置プロットが表示されます。

6. この一元配置分析の赤い三角ボタンをクリックし、次のオプションを選択します。

平均/ANOVA

[平均の比較]>[各ペア,Studentのt検定]

7. 一元配置分析の赤い三角ボタンをクリックし、[スクリプトの保存]>[スクリプトウィンドウへ]を選択します。

スクリプトは次のようになります。

Oneway(
	Y( :height ), X( :age ),
	Each Pair( 1 ),
	Means( 1 ),
	Mean Diamonds( 1 )
);

次の点に注意してください。

このスクリプトは、一元配置オブジェクトを戻すOneway()関数の呼び出しで始まっています。

Oneway()関数の括弧の中には、オブジェクトの作成方法をOneway関数に指示するための引数が含まれています。

最初の2つの引数YXは、起動時に指定しなければならなかったものです。指定されている列名が英語になっているのは、サンプルデータでは、日本語の列名と同時に、英語の列名も定義されているからです。

次の3つの引数は、オプションです。Each PairMeansMean Diamonds

[各ペア,Studentのt検定]を選択したときに、Each Pairの機能が有効になりました。

[平均/ANOVA]オプションを選択したときに、MeansとMean Diamondsの機能が有効になりました。

スクリプト内では、オプションの有効と無効がブール値の引数0(無効)と1(有効)で表されます。

プラットフォーム参照オブジェクトを追加してメッセージを送る

1. (オプション)スクリプト内を右クリックし、[ウィンドウ内にログを表示]を選択します。

これで、ログへの出力がスクリプトの下に表示され、見やすくなります。

2. 一元配置プラットフォームオブジェクトへの参照を格納するJSL変数を指定します。

この例では、oneObjという名前を使用します。以下では日本語の列名を指定していますが、英語の列名(:age, :height)を指定しても構いません。

oneObj = Oneway(
	Y( :"身長(インチ)"n),
	X( :年齢),
	Each Pair( 1 ),
	Means( 1 ),
	Mean Diamonds( 1 )
);

これでプラットフォームオブジェクトを参照し、そのオブジェクトにメッセージを送れるようになりました。

3. [スクリプトの実行]Image shown hereをクリックします。

これで一元配置オブジェクトが作成され、oneObj変数が設定されます。それでは、「分散が等しいことを調べる検定」レポートを有効にするようプラットフォームに指示するメッセージを送ってみましょう。

4. スクリプトの末尾に、oneObj << Unequal Variances(1)という行を追加します。スクリプトは次のようになります。

oneObj = Oneway(
	Y( :"身長(インチ)"n),
	X( :年齢),
	Each Pair( 1 ),
	Means( 1 ),
	Mean Diamonds( 1 )
);
oneObj << Unequal Variances( 1 );

5. JSLのUnequal Variancesが指定されている行を強調表示し、[スクリプトの実行]Image shown hereをクリックします。

ヒント: CtrlキーとRキーを押して、強調表示されたJSLの行を実行することもできます。

レポートウィンドウの下部に、「分散が等しいことを調べる検定」レポートが表示されます。ここで、「分散が等しいことを調べる検定」レポート(およびグラフ)だけを表示したまま、レポートの残りの部分を閉じたいとします。

6. 以下の行をスクリプトに追加します。

rep = Report( oneObj );
rep["一元配置の分散分析"] << Close( 1 );
rep["平均の比較"] << Close( 1 );

Report()関数は「一元配置」プラットフォームのレポートオブジェクトを戻し、repというJSL変数にそのレポートへの参照を保存します。このレポートオブジェクトには、メッセージを送ったり、特定のレポートアウトラインを閉じたり、といったアクションを実行することができます。

7. スクリプト内のこれらの3行を強調表示し、[スクリプトの実行]Image shown hereをクリックします。

レポートウィンドウで、「一元配置の分散分析」レポートと「平均の比較」レポートが閉じます。つまり、表示されているのは最初のグラフと「分散が等しいことを調べる検定」レポート(「Welchの検定」レポートを含む)だけです。

この時点で「Big Class.jmp」サンプルデータテーブルを閉じ、その後スクリプトを実行しようとすると、データテーブルを開くよう促すウィンドウが表示されます。一連の処理を一度に実行するもっとも良い方法は、Open()関数により使用するデータテーブルを開いてから、「一元配置」プラットォームを呼び出すことです。

データテーブル参照を追加し、スクリプトを保存する

1. 次の行をスクリプトの最初の行として追加します。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );

この指定により、スクリプトの実行時に該当のデータテーブルが開いていない場合は開くようになります。

完成したスクリプトは次のようになります。

dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
oneObj = Oneway(
	Y( :"身長(インチ)"n),
	X( :年齢),
	Each Pair( 1 ),
	Means( 1 ),
	Mean Diamonds( 1 )
);
oneObj << Unequal Variances( 1 );
rep = Report( oneObj );
rep["一元配置の分散分析"] << Close( 1 );
rep["平均の比較"] << Close( 1 );

スクリプトが完成したら、今後このスクリプトにアクセスできるように保存します。

2. スクリプトウィンドウから[ファイル]>[名前を付けて保存]を選択します。スクリプトの名前を入力し、任意のディレクトリに保存します。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).