フィットモデル オブジェクトを使用してフィット グループを表示するにはどうすればよいでしょうか?JMPコミュニティの皆様、こんにちは。
データに存在するかどうかわからない応答変数のリストを対象に、グループモデル近似レポートを生成しようとしています。GUIで実行すると、JMPは存在しない応答変数を自動的に削除します。しかし、この処理はスクリプトで行う必要があり、すべての可能な近似モデルに対してグループ近似を実行すると、欠落している応答変数ごとにモデル仕様が表示されます。
ループ内で既存の変数にモデルをフィッティングし、リストに追加して「Fit Group」ウィンドウに表示しようとしました(以下のスクリプトを参照)。しかし、「Invisible」オプションの有無にかかわらず、「Fit Model」オブジェクトは「Fit Group」ウィンドウに表示されません。不思議なことに、「Fit Group」ウィンドウ内では、複数のレスポンスに渡ってプロファイラーを表示できます。
何が見逃されているのかアドバイスをいただければ幸いです。
ありがとう!、
ジョフ
responseVars = {"Logit[%TFRC+]", "Logit[Confluency]", "Log[細胞数]"};
fitList = {};
// Loop over the response variables to create individual fits
For( i = 1, i <= N Items( responseVars ), i++,
If( Contains(dt << Get Column Names( "String" ), responseVars[i]),
fit = Fit Model(
Y( Column( responseVars[i] ) ),
Effects( gRNA ),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Screening" ),
Run (1),
Invisible // Prevent the window from showing
);
// Add the fit object to the list
Insert Into( fitList, fit );
);
);
// Create the Fit Group using the list of fits
fitGroup = Fit Group( fitList );
自動化とスクリプトRe: フィットモデル オブジェクトでフィット グループを表示するにはどうすればよいでしょうか?こんにちは@ジョフ・ジョーンズ 、
あなたのデータサンプルがないので、タブレット製造のサンプルデータでテストしてみましたが、どうやら「gRNA」を列として参照していないことが原因のようです。「:gRNA」と「:」を含めて参照するべきです。私が試したタブレットデータを使ったサンプルスクリプトを以下に掲載しています。
dt=current data table();
responseVars = {"Dissolution", "Logit[Confluency]", "Log[Cell Count]"};
fitList = {};
// Loop over the response variables to create individual fits
For( i = 1, i <= N Items( responseVars ), i++,
If( Contains(dt << Get Column Names( "String" ), responseVars[i]),
fit = Fit Model(
Y( Column( responseVars[i] ) ),
Effects( :Atomizer Pressure ), //<<<<
<THIS bit="" here="" doesnt="" work="" when="" its="" effects=""></THIS>
Re: フィットモデル オブジェクトでフィット グループを表示するにはどうすればよいでしょうか?ループをFit Group()でラップできると思います
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
cols = {"NPN1", "IVP1", "PNP2"};
fg = Fit Group(
For Each({colname}, cols,
fit = dt << Fit Model(
Y(Eval(colname)),
Effects(:SITE),
Personality("Standard Least Squares"),
Emphasis("Effect Screening"),
Run (1)
);
);
);
Re: フィットモデル オブジェクトでフィット グループを表示するにはどうすればよいでしょうか?@jthiさん、ありがとうございます!素晴らしい解決策ですね。フィットグループ全体にプロファイラーとコンタープロファイラーを追加する方法をご存知ですか?最初の試みはうまくいきませんでした。
Re: フィットモデル オブジェクトでフィット グループを表示するにはどうすればよいでしょうか?これは少し強引な解決策ですが、Fit Groupにモデルを追加する方法は文書化されていないため、この方法を選択しました。モデル式のリストを作成し、リストをFit Groupに置き換えて評価します。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
cols = {"NPN1", "IVP1", "PNP2"};
fits = {};
For Each({colname}, cols,
fit_expr = EvalExpr(
dt << Fit Model(
Y(Expr(NameExpr(AsColumn(dt, colname)))),
Effects(:SITE),
Personality("Standard Least Squares"),
Emphasis("Effect Screening"),
Run(1)
);
);
Insert Into(fits, Name Expr(fit_expr));
);
fg = Eval(Substitute(fits, Expr(List), Expr(Fit Group)));
fg << Profiler(1);
fg << Contour Profiler(1);