Comment afficher un groupe d'ajustement avec des objets de modèle d'ajustement ?Bonjour la communauté JMP,
Je cherche à générer un rapport de modélisation par groupes pour une liste de variables de réponse, qui peuvent être présentes ou non dans les données. Lorsque j'exécute cette opération via l'interface graphique, JMP supprime automatiquement les variables de réponse absentes. Or, je dois effectuer cette opération dans un script, et lorsque j'exécute « Modèles par groupes » pour tous les modèles possibles, les spécifications du modèle s'affichent pour chaque variable de réponse manquante.
J'ai ensuite tenté d'ajuster des modèles pour les variables existantes dans une boucle, de les ajouter à une liste, puis de les afficher dans une fenêtre « Groupe d'ajustement » (voir le script ci-dessous). Cependant, les objets « Modèle d'ajustement » n'apparaissent pas dans la fenêtre « Groupe d'ajustement », que l'option « Invisible » soit activée ou non. Curieusement, je peux afficher les profils des différentes réponses dans cette même fenêtre.
Je vous serais reconnaissant de tout conseil sur ce que j'aurais pu oublier !
Merci!,
Joff
responseVars = {"Logit[%TFRC+]", "Logit[Confluence]", "Log[Nombre de cellules]"};
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 );
Automatisation et scriptageRe: Comment afficher un groupe d'ajustement avec des objets de modèle d'ajustement ?Salut @JoffJones ,
J'ai testé cela sur les données d'exemple de Tablet Production, car je ne dispose pas de vos données. Il semble que le problème vienne du fait que vous ne faites pas référence à « gRNA » comme à une colonne, alors qu'il faut utiliser « :gRNA » avec les deux-points. Voir l'exemple de script ci-dessous avec les données Tablet que j'ai utilisées.
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: Comment afficher un groupe d'ajustement avec des objets de modèle d'ajustement ?Je pense que vous pouvez encapsuler votre boucle avec 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: Comment afficher un groupe d'ajustement avec des objets de modèle d'ajustement ?Merci @jthi ! C’est une excellente solution. Savez-vous comment ajouter le Profiler et le Contour Profiler à l’ensemble Fit Group ? Mes premières tentatives ont échoué.
Re: Comment afficher un groupe d'ajustement avec des objets de modèle d'ajustement ?C'est une solution un peu forcée, mais l'ajout de modèles supplémentaires à Fit Group n'est pas documenté, c'est pourquoi j'ai opté pour cette solution. Créez une liste d'expressions de modèles, remplacez-la dans Fit Group et évaluez le résultat.
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);