スクリプトにRun Modelメッセージを含める。
RunメッセージとKeep Dialog Open(1)メッセージの両方を含める。
データテーブルに「モデル」スクリプトが含まれており、「モデルのあてはめ」プラットフォームを起動して対話的に操作する場合は、テーブルスクリプトによって割り当てられている役割に基づいて、「モデルのあてはめ」起動ウィンドウに予め情報が入力されます。
1つのプロファイルで複数のモデルを表示したい場合は、Fit Group関数を使用します。最小2乗、非線形、ニューラル、Gauss過程、および混合モデルといったモデルのあてはめを1つのウィンドウにまとめ、結果を1つにまとめたプロファイルを表示できます。次の例は、標準最小2乗モデルとGauss過程モデルの両方を作成します。
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
obj = dt << Fit Group(
Fit Model(
Y( :摩擦 ),
Effects(
:シリカ & RS,
:シラン & RS,
:硫黄 & RS,
:シリカ * :シリカ,
:シリカ * :シラン,
:シラン * :シラン,
:シリカ * :硫黄,
:シラン * :硫黄,
:硫黄 * :硫黄
),
Personality( "Standard Least Squares" ),
Emphasis( Minimal Report ),
Run()
),
Gaussian Process(
Y( :硬度 ),
X( :シリカ, :シラン, :硫黄 ),
Set Correlation Function( "Cubic" )
)
);
レポートで「あてはめのグループ」の赤い三角ボタンをクリックし、[プロファイル]を選択します。そして、下方向にスクロールして「予測プロファイル」を表示します。同じプロファイル内に、最小2乗モデルの「摩擦」行、そしてGauss過程モデルの「硬度」行が表示されているのがわかります。
Effect( 効果のリスト、効果のマクロのリスト、またはその両方のリスト);
1つの列名、複数の列の交差にはアスタリスク(*)、枝分かれする列には添え字の括弧[ ]を使って効果を指定します。追加の効果オプションは、アンパーサンド(&)文字の後に指定できます。例をいくつか示します。
A,                  // 1つの列名単独で1つの主効果
A*B,                // 交差効果、交互作用、または多項式
A[B],               // 枝分かれ
A*B[C D],           // 交差および枝分かれ
effect&Random,      // 変量効果
effect&LogVariance, // 対数分散効果
effect&RS,          // 応答曲面の項
effect&Mixture,     // 配合の効果
effect&Excluded,    // モデル引数を持たない効果
effect&Knotted,     // 節点スプライン効果
Factorial( columns ),   // 完全実施要因
Factorial2( columns ),  // 最大2次までの交互作用のみ
Polynomial( columns ),  // 2次の多項式のみ
manovaObj << ( Response[ 1 ] << {応答オプション} );
manovaObj << ( Response[ "対比" ] << {応答オプション} );
各応答関数でそれぞれCustom Testメッセージを使用できます。
Custom Test( matrix, <Power Analysis( ... )>, <Label( "..." )> )
行列(matrix)の各行は、モデル内のすべての引数の係数を示します。
manovaObj << ( Response[1] << ( Effect["モデル全体"] << {効果オプション} ) );
manovaObj << ( Response[1] << ( Effect[i] << {効果オプション} ) );
「モデル全体」の検定にはn+1(nは切片を含まない効果の数)
各応答関数の各効果で、次のメッセージを使用できます。行列(matrix)の各行には、効果のすべての水準に対する係数があります。
Test Details( 1 ),
Centroid Plot( 1 ),
Save Canonical Scores,
Contrast( matrix, <Power Analysis(...)> );
dt = Open( "$SAMPLE_DATA/Dogs.jmp" );
manObj = dt << Fit Model(
Y(Name("log(ヒスタミン0)"),Name("log(ヒスタミン1)"),Name("log(ヒスタミン3)"),Name("log(ヒスタミン5)")),
Effects(ヒスタミンの消耗 y or n,薬剤,薬剤*ヒスタミンの消耗 y or n),
Personality( "MANOVA" ),
Run Model
);
manObj << Response Function( "Contrast" );
manObj << (Response["対比"] << (Effect["モデル全体"] <<
Test Details( 1 )));
// Test Detailsメッセージを、レポートウィンドウの「対比」の下の「モデル全体」に送る
manObj << (Response[1] << (Effect[3] << Test Details( 1 )));
// Test Detailsを応答1(対比)と効果3(薬剤*ヒスタミンの消耗 y or n)に送る
ヒント: <<演算子はSend()関数と同じ結果をもたらします。
fitObj << ( responseName << {オプション, ...});
2つ目のSend()関数は指定された応答を見つけ、その応答にメッセージのリストを送ります。
メモ: 1つのSend()関数でメッセージを直接fitObjに送ると、そのメッセージはすべての応答に送られます。
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
fitObj = dt << Fit Model(
Y( :摩擦, :引張応力, :伸び, :硬度 ),
Effects(
:シリカ & RS,
:シラン & RS,
:硫黄 & RS,
:シリカ * :シリカ,
:シラン * :シリカ,
:シラン * :シラン,
:硫黄 * :シリカ,
:硫黄 * :シラン,
:硫黄 * :硫黄
),
Personality( "Standard Least Squares" ),
Run
);
fitObj << (:摩擦 << {AICc( 1 )}); // Box-Cox変換プロットの下に表示される
fitObj << ( responseName << ((effectName) << effectOption ));
Run( "Fit Separately" )オプションを使用すると、このモデルは各Yを、そのYが欠測値でないすべての行を使ってあてはめます。たとえば、ある行に1つまたは複数のYの欠測値があっても、その行はモデルに含まれる可能性があります。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Fit Model(
Y( :Name("身長(インチ)"), :Name("体重(ポンド)") ),
Effects( :性別 ),
Personality( "Standard Least Squares" ),
Emphasis( "Minimal Report" ),
Run // またはRun( "Fit Together" )
);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Fit Model(
Y( :Name("身長(インチ)"), :Name("体重(ポンド)") ),
Effects( :性別 ),
Personality( "Standard Least Squares" ),
Emphasis( "Minimal Report" ),
Run( "Fit Separately" )
);