JSL - Guardar mejor transformaciónHola,
Estoy ejecutando la secuencia de comandos a continuación y se detendrá después de la generación del cuadro de contorno caja-cox Lo que hago es luego 'Guardar mejor transformación' manualmente en el cuadro de esquema 'Transformación de Box Cox'. Mi pregunta: ¿Existe alguna forma de automatizar 'Guardar mejor transformación' a través de JSL para continuar con el script en más elementos para transformar? gracias por ayudar
-Rgsd, Joel
Borrar registro();
dtName = "Big Class";
dt = Abrir ("$ SAMPLE_DATA /" || dtName || ".jmp");
nwd = Nueva ventana ("Box Cox",
dt << Fit Model (
Y (: peso),
Efectos,
Personalidad ("mínimos cuadrados estándar"),
Énfasis ("efecto apalancamiento"),
Correr(
: peso << {Resumen de ajuste (1), Análisis de varianza (1), Estimaciones de parámetros (1), Falta de ajuste (0), Diagrama real por predicho (1),
Regresión de gráfico (0), Gráfico de residuo por predicción (1), Apalancamiento de efecto de gráfico (1), Transformación de caja Cox Y (1),
guardar mejor transformación (1)}
)
)
);
Re: JSL - Guardar mejor transformaciónPara su información, aquí hay una alternativa que no requiere que construya una cadena. De esta manera, se mantiene la comprobación de la sintaxis y el resaltado en el editor. Si comete tantos errores como yo, eso es útil.
NamesDefaultToHere(1);
dtName = "Big Class";
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
numericCols = dt << getColumnNames("String", "Numeric");
// Build a function to do what's needed . . .
getBestBoxCox =
Function({numCol}, {Default Local},
// Open the fit model lauch dialog
fmDialog = dt << Fit Model(
Y( Eval(numCol) ),
Effects,
Personality( "Standard Least Squares" ),
Emphasis( "Effect Leverage" )
);
// Run the desired model ('fmAnalysis' is a reference to the analysis layer of the report window)
fmAnalysis = fmDialog << runModel;
// Close the launch dialog
Report(fmDialog) << closeWindow;
// Ask for the transformations
fmAnalysis << Box Cox Y Transformation;
// Get a reference to the little red triangle for the transformations
lrt = Report(fmAnalysis)["Box-Cox Transformations"] << getScriptableObject;
// Save the best transformation
lrt << saveBestTransformation;
// Close the report window
Report(fmAnalysis) << closeWindow;
);
// Use the function on the required columns . . .
for(c=1, c<=NItems(numericCols), c++, getBestBoxCox(numericCols[c]));
Re: JSL - Guardar mejor transformaciónHola stephen_pearson,
Justo lo que necesito 'Box Cox Y Transformation (1, Save Best Transformation (1))'. Sí, estoy ejecutando varias selecciones para esta opción y ahora se está procesando sin intervención manual. GraciasRe: JSL - Guardar mejor transformaciónSi crea el código que compartió en JSL como una cadena y tiene todos los nombres de columna que desea transformar en una lista ( colListYBoxCox ) luego puede sustituir en los nombres de las columnas y recorrer todas las columnas en su lista (ejemplo a continuación).
Hice esto y luego verifiqué si la transformación de caja-cox marcó una gran diferencia, y eliminé automáticamente aquellos que eran una pérdida de tiempo.
Saludos,
Stephen
Para (i = 1, i <= N Items (colListYBoxCox), i ++,
boxcoxstring = "boxcoxwindow = Ajustar modelo (
Y (";
boxcoxstring = Concat (boxcoxstring, ": Name (\!" ", colListYBoxCox [i]," \! "),");
boxcoxstring = Concat (boxcoxstring, "),");
boxcoxstring = Concat (
cadena de caja,
"Efectos,
Personalidad (\! "Mínimos cuadrados estándar \!"),
Énfasis (\! "Effect Leverage \!"), "
);
boxcoxstring = Concat (
cadena de caja,
"Ejecutar (: Nombre (\!" ",
colListYBoxCox [i],
"\!") << {Falta de ajuste (0), Real del gráfico predicho (0),
Regresión de parcela (0), Parcela residual por predicción (0),
Apalancamiento de efecto de trazado (0), Transformación de Box Cox Y (1, Guardar mejor transformación (1)), Mostrar VIF (1)
), "
);
boxcoxstring = Concat (boxcoxstring, ");" );
Eval (Parse (boxcoxstring));
Espera (0);
boxcoxwindow << Cerrar ventana;
);