JSL(JMPスクリプト言語)に慣れていない場合は、まずJMPで分析を対話的に実行し、そこからスクリプトを保存するとよいでしょう。JMPがスクリプトを生成してくれます。必要に応じてプラットフォームオブジェクトを作成したり、そのオブジェクトにメッセージを送ったりするなど、そのスクリプトに対して追加や変更を行ってください。
この例は、次のステップで構成されています。
2. プラットフォーム参照オブジェクトを追加してメッセージを送る
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つの引数YとXは、起動時に指定しなければならなかったものです。指定されている列名が英語になっているのは、サンプルデータでは、日本語の列名と同時に、英語の列名も定義されているからです。
– 次の3つの引数は、オプションです。Each Pair、Means、Mean 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. [スクリプトの実行]をクリックします。
これで一元配置オブジェクトが作成され、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が指定されている行を強調表示し、[スクリプトの実行]をクリックします。
ヒント: 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( :"身長(インチ)"n),
X( :年齢),
Each Pair( 1 ),
Means( 1 ),
Mean Diamonds( 1 )
);
oneObj << Unequal Variances( 1 );
rep = Report( oneObj );
rep["一元配置の分散分析"] << Close( 1 );
rep["平均の比較"] << Close( 1 );
スクリプトが完成したら、今後このスクリプトにアクセスできるように保存します。
2. スクリプトウィンドウから[ファイル]>[名前を付けて保存]を選択します。スクリプトの名前を入力し、任意のディレクトリに保存します。