Hola comunidad,
Soy relativamente nuevo en jmp y tengo una pregunta sobre el diagrama de contorno.
He realizado 20 experimentos cuyo diseño era compuesto central. Ajusté un modelo de superficie de respuesta a mis datos.
Luego usé el modelo para generar predicciones sobre todo mi espacio de diseño. Luego hice un diagrama de contorno de las predicciones.
¿Hay alguna manera de que pueda agregar mis puntos de datos experimentales, digamos marcados con una x, a la gráfica de contorno? ¿Hay alguna forma de etiquetar estos puntos de datos con el valor de la variable dependiente que encontré en mis experimentos?
Se adjunta una imagen que dibujé en pintura para ilustrar lo que quiero hacer. No sé cómo programar, por lo que una respuesta con selecciones de menú y/o capturas de pantalla sería de gran ayuda. Muchísimas gracias
Gracias por su respuesta. No fui capaz de entender el guión. Pero encontré una manera de hacerlo. Creé mis gráficos de contorno con gráfico de contorno desde el menú gráfico. También creé diagramas de dispersión de mis variables independientes. Copié el contenido del marco del diagrama de dispersión en los diagramas de contorno. Luego etiqueté manualmente los puntos con anotaciones de texto.
Hola @AlexandruS ,
¡Bienvenido a la comunidad! Este es un poco extraño para un nuevo usuario de JMP porque vamos a tener que hacer muchas secuencias de comandos de JMP, pero aquí vamos:
Supongo que está viendo el perfilador de contornos en Fit Model y no en un perfilador personalizado separado.De cualquier manera, se aplican los mismos pasos generales.Estoy usando el conjunto de datos de ejemplo de RSM personalizado de la biblioteca de datos de ejemplo.
Comience abriendo un nuevo script y cree una referencia variable a su tabla de datos.Aquí, solo estoy abriendo la tabla RSM personalizada.
dt = Open("$Sample_Data\Design Experiment\Custom RSM.jmp");Debe obtener el script para el informe que contiene su generador de perfiles.Si es de Fit Model, el script será algo así como Fit Model(Y(:Y), Effects(...),...); Necesitamos obtener una referencia a la ventana del informe para que podamos personalizar el contenido del generador de perfiles.Así es como lo hice con el ejemplo de RSM personalizado:
rpt = (
dt << Fit Model(
Y( :Y ),
Effects(
:X1 & RS,
:X2 & RS,
:X3 & RS,
:X1 * :X1,
:X1 * :X2,
:X2 * :X2,
:X1 * :X3,
:X2 * :X3,
:X3 * :X3
),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Screening" ),
Run(
Contour Profiler(
1,
Term Value(
X1( 0, Lock( 0 ), Show( 1 ) ),
X2( 0, Lock( 0 ), Show( 1 ) ),
X3( 0, Lock( 0 ), Show( 1 ) )
),
Contour Value( Y( 62.703, Min( 52.5 ), Max( 75 ) ) ),
Grid Density( "40 x 40" ),
Contour Grid( 50, 80, 5, Y ),
Horizontal Factor( :X1 ),
Vertical Factor( :X2 ),
Y Colors( 21 ),
Up Dots( 0 )
),
:Y << {Summary of Fit( 1 ), Analysis of Variance( 1 ),
Parameter Estimates( 1 ), Effect Details( 0 ), Sorted Estimates( 0 ),
Scaled Estimates( 0 ), Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 1 ), Plot Residual by Row( 1 ),
Plot Studentized Residuals( 0 ), Plot Effect Leverage( 0 ),
Box Cox Y Transformation( 1 ), Show VIF( 1 )}
)
)
) << Report;Observe que precedí el script Fit Model con "rpt = (dt <<" y luego puse esto en el back-end: ") << Report;".La variable "rpt" ahora contiene una referencia a la ventana de informe para Ajustar modelo.
A continuación, necesitamos obtener los valores de las variables que está trazando en Contour Profiler.En mi ejemplo, las 2 variables son x1 y x2.También necesito los valores de Y para mis etiquetas de puntos.
//plotted points
x1_vals = :x1 << Get Values;
x2_vals = :x2 << Get Values;
//values used in labels
y_vals = :y << Get Values;
Ahora, puedo agregar una secuencia de comandos de gráficos para trazar los puntos y el texto dentro del generador de perfiles de la siguiente manera:
rpt["Contour Profiler"][FrameBox(1)] << Add Graphics Script(
Marker(x1_vals, x2_vals);
for(i=1,i<=N Row(dt),i++,
text(eval list({x1_vals[i],x2_vals[i]+0.05}),char(y_vals[i]));
)
);
Las cosas entre paréntesis me ayudan a navegar por el árbol de visualización para llegar al marco que contiene la trama.Uso Marker() para agregar los puntos.Uso el bucle para agregar las etiquetas.
El resultado final se ve así:
Observe que tengo algunos puntos y etiquetas trazados uno encima del otro porque tengo un tercer factor, X3.Podríamos personalizar aún más esto para evitar que las etiquetas estén una encima de la otra, pero probablemente también desee agregar el valor de x3 a todas estas etiquetas.Básicamente, esta solución no escala muy bien para más de 2 factores, pero si solo tiene 2, debería funcionar muy bien.