JSLに慣れていない場合は、まずJMPで分析を対話的に実行し、そこからスクリプトを保存するとよいでしょう。JMPがスクリプトを生成してくれます。必要に応じてプラットフォームオブジェクトを作成したり、そのオブジェクトにメッセージを送ったりするなど、そのスクリプトに対して追加や変更を行ってください。
この例は、次のステップで構成されています。
2. プラットフォーム参照オブジェクトを追加してメッセージを送る
1. [ヘルプ]>[サンプルデータライブラリ]を選択し、「Big Class.jmp」を開きます。
この架空のデータセットには、40人の学生に関する名前、年齢、性別、身長(インチ)、および体重(ポンド)が含まれています。
2. [分析]>[二変量の関係]を選択します。
3. 「身長(インチ)」を選択し、[Y, 目的変数]をクリックします。
4. 「年齢」を選択し、[X, 説明変数]をクリックします。
5. [OK]をクリックします。
学生の年齢と身長の関係を示す一元配置プロットが表示されます。
6. この一元配置分析の赤い三角ボタンをクリックし、次のオプションを選択します。
– [平均/ANOVA]
– [平均の比較]>[各ペア,Studentのt検定]
7. 一元配置分析の赤い三角ボタンをクリックし、[スクリプトの保存]>[スクリプトウィンドウへ]を選択します。
その結果、次のスクリプトが表示されます。
Oneway(
Y( :Name("身長(インチ)")), X( :年齢),
Each Pair( 1 ),
Means( 1 ),
Mean Diamonds( 1 )
);
次の点に注意してください。
• このスクリプトは、一元配置オブジェクトを戻すOneway()関数の呼び出しで始まっています。
• Oneway()関数の括弧の中には、オブジェクトの作成方法をOneway関数に指示するための引数が含まれています。
– 最初の2つの引数YとXは起動時に指定しなければならなかったものです。
– 次の3つの引数はオプションです。Each Pair(ペアごと)、Means(平均)、Mean Diamonds(平均のひし形)。
– [各ペア,Studentのt検定]を選択したときに、Each Pairの機能が有効になりました。
– [平均/ANOVA]オプションを選択したときに、MeansとMean Diamondsの機能が有効になりました。
• スクリプト内では、オプションの有効と無効がブール値の引数0(無効)と1(有効)で表されます。
1. (オプション)スクリプト内を右クリックし、[ウィンドウ内にログを表示]を選択します。
これで、ログへの出力がスクリプトの下に表示され、見やすくなります。
2. 一元配置プラットフォームオブジェクトへの参照を格納するJSL変数を指定します。
この例では、oneObjという名前を使用します。
oneObj = Oneway(
Y( :Name("身長(インチ)")),
X( :年齢));
Each Pair( 1 ),
Means( 1 ),
Mean Diamonds( 1 )
);
これでプラットフォームオブジェクトを参照し、そのオブジェクトにメッセージを送れるようになりました。
3. [スクリプトの実行]をクリックします。
これで一元配置オブジェクトが作成され、oneObj変数が設定されます。それでは、「分散が等しいことを調べる検定」レポートを有効にするようプラットフォームに指示するメッセージを送ってみましょう。
4. スクリプトの末尾に、oneObj << Unequal Variances(1)という行を追加します。スクリプトは次のようになります。
oneObj = Oneway(
Y( :Name("身長(インチ)")),
X( :年齢));
Each Pair( 1 ),
Means( 1 ),
Mean Diamonds( 1 )
);
oneObj << Unequal Variances( 1 );
5. JSLのUnequal Variances行を強調表示し、[スクリプトの実行]をクリックします。
ヒント: Ctrlキーを押しながらRキーを押しても、JSLの強調表示した行を実行できます。
レポートウィンドウの下部に、「分散が等しいことを調べる検定」レポートが表示されます。ここで、そのレポート(およびグラフ)だけを表示したまま、レポートの残りの部分を閉じたいとします。
6. 以下の行をスクリプトに追加します。
rep = Report( oneObj );
rep["一元配置の分散分析"] << Close( 1 );
rep["平均の比較"] << Close( 1 );
Report()関数は「一元配置」プラットフォームのレポートオブジェクトを戻し、repというJSL変数にそのレポートへの参照を保存します。このレポートオブジェクトには、メッセージを送ったり、特定のレポートアウトラインを閉じるといったアクションを実行することができます。
7. スクリプト内のこれらの3行を強調表示し、[スクリプトの実行]をクリックします。
レポートウィンドウで、「一元配置の分散分析」レポートと「平均の比較」レポートが閉じます。つまり、表示されているのは最初のグラフと「分散が等しいことを調べる検定」レポート(「Welchの検定」レポートを含む)だけです。
この時点で「Big Class.jmp」サンプルデータテーブルを閉じ、その後スクリプトを実行しようとすると、データテーブルを開くよう促すウィンドウが表示されます。もっとも良い方法は、Open()関数により使用するデータテーブルを開いてから、「一元配置」プラットォームを呼び出すことです。
1. 次の行をスクリプトの最初の行として追加します。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
この指定により、スクリプトの実行時に該当のデータテーブルが開いていない場合は開くようになります。
完成したスクリプトは次のようになります。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
oneObj = Oneway(
Y( :Name("身長(インチ)")),
X( :年齢));
Each Pair( 1 ),
Means( 1 ),
Mean Diamonds( 1 )
);
oneObj << Unequal Variances( 1 );
rep = Report( oneObj );
rep["一元配置の分散分析"] << Close( 1 );
rep["平均の比較"] << Close( 1 );
スクリプトが完成したら、今後このスクリプトにアクセスできるように保存します。
2. スクリプトウィンドウから[ファイル]>[名前を付けて保存]を選択します。スクリプトの名前を入力し、任意のディレクトリに保存します。