¿Cómo mostrar un grupo de ajuste con objetos de modelo de ajuste?Hola, comunidad de JMP,
Estoy intentando generar un informe de ajuste de grupo a partir de una lista de variables de respuesta, que pueden estar presentes o no en los datos. Al ejecutarlo en la interfaz gráfica, JMP elimina automáticamente las variables de respuesta que no están presentes. Sin embargo, necesito hacerlo mediante un script, y al seleccionar "Ajustar grupo" para todos los modelos posibles, se muestran las especificaciones del modelo para cada variable de respuesta faltante.
Intenté ajustar modelos para las variables existentes en un bucle, agregarlos a una lista y luego mostrarlos en una ventana de Grupo de Ajuste (ver el script a continuación). Sin embargo, los objetos del Modelo de Ajuste no se muestran en la ventana de Grupo de Ajuste, independientemente de si uso la opción Invisible o no. Curiosamente, sí puedo mostrar los perfiles de todas las respuestas en la ventana de Grupo de Ajuste.
¡Agradecería cualquier consejo sobre lo que me pueda estar perdiendo!
¡Gracias!,
Joff
responseVars = {"Logit[%TFRC+]", "Logit[Confluencia]", "Log[Recuento de celdas]"};
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 );
Automatización y scriptingRe: ¿Cómo mostrar un grupo de ajuste con objetos de modelo de ajuste?Hola @JoffJones ,
Probé esto con los datos de muestra de producción de Tablet, ya que no tengo tu ejemplo de datos, pero parece que el problema radica en que no te refieres a 'gRNA' como una columna, sino que debería ser ":gRNA" incluyendo los ":". Consulta el script de ejemplo a continuación con los datos de Tablet que probé.
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: ¿Cómo mostrar un grupo de ajuste con objetos de modelo de ajuste?Creo que puedes envolver tu bucle con 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: ¿Cómo mostrar un grupo de ajuste con objetos de modelo de ajuste?¡Gracias, @jthi ! Es una buena solución. ¿Sabes cómo puedo agregar el Profiler y el Contour Profiler al Fit Group? Mis primeros intentos no han tenido éxito.
Re: ¿Cómo mostrar un grupo de ajuste con objetos de modelo de ajuste?Esta es una solución un tanto forzada, pero añadir más modelos a Fit Group no está documentado, y por eso opté por esta opción. Crea una lista de expresiones de modelo, sustituye la lista en Fit Group y evalúala.
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);