¿Es posible realizar secuencias de comandos de modelo de ajuste variable?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola a todos, soy nuevo en este foro y espero llevarme bien con todos ustedes
Soy un estudiante que usa JMP pero tengo algunas dificultades con las secuencias de comandos relacionadas con la parte del modelo de ajuste. A continuación se ilustra el código del modelo de ajuste que parece que no puedo hacer que funcione:
a=0;var_list={:param1,:param2};rs_list={:test1,:test2,:test3,:test4,:test5};obj=Fit Model( Y(var_list[1]), Effects( response surface(:test1,:test2,:test3,:test4,:test5) ), Personality( Standard Least Squares ), Emphasis( Effect Screening ), Run());if(a==1, obj< var_list[1]< maximize desirability(1), ); obj << {Lack of Fit( 0 ), Sorted Estimates( 1 ), Plot Actual by Predicted( 1 ), Plot Regression( 0 ), Plot Residual by Predicted( 0 ), Plot Effect Leverage( 0 )}; );if(a==0, obj< var_list[1]< maximize desirability(1), ); obj << {Lack of Fit( 0 ), Sorted Estimates( 1 ), Plot Actual by Predicted( 1 ), Plot Regression( 0 ), Plot Residual by Predicted( 0 ), Plot Effect Leverage( 0 )};);Tengo 10 variables en una lista y me gustaría usarlas todas para realizar una serie de análisis de mínimos cuadrados mediante modelado de ajuste, pero parece que no puedo hacerlo funcionar. Inicialmente se planeó insertar el código anterior en un para bucle en bucle 10 veces (esto puede variar ya que el número de variables puede ser mayor o menor) pero la cuestión es que me gustaría usar un bucle para ordenarle a jmp que realice el análisis deseado de la lista anterior... además, ¿es posible colocar lista_rs en la función de superficie de respuesta anterior? (parece que tampoco puedo hacer que la lista funcione)... ¡cualquier idea o consejo es muy apreciado! ¡Gracias de antemano y que tengas un buen día por delante! 
¿Es posible realizar secuencias de comandos de modelo de ajuste variable?Muchas gracias por la orientación MS, ¡se lo agradezco! 
¿Es posible realizar secuencias de comandos de modelo de ajuste variable?Ok, mi código funciona aquí cuando se aplica a la tabla de ejemplo que utilicé. Cuando lo aplico a una tabla más grande, también experimento que faltaba el gráfico real por predicho en algunas iteraciones. Supongo que puede ser el resultado de un ajuste lento de las conveniencias y de que JMP sigue ejecutando código con anticipación a pesar de que los cálculos actuales no están terminados. A veces esto se puede resolver insertando comandos Wait() en los lugares correctos (aquí no es obvio dónde pueden estar).
Re: ¿Es posible realizar secuencias de comandos de modelo de ajuste variable?MS, probé su código, ¿parece que estoy viendo algunos errores?... lo que veo es que a veces el gráfico real no aparece en la ventana de predicción de los informes, mientras que los demás los tienen, por ejemplo: El informe de drvros no tiene la trama real, mientras que la trama de drvrus tiene la trama real... También intenté maximizar y minimizar según una secuencia, por ejemplo, maximizar primero, luego minimizar, pero parece funcionar también... cualquier ideas? ¡Gracias de antemano! 
PD: Muchas gracias por tu guía experta, he aprendido mucho de tus dos respuestas, JSL realmente puede ponerte de los nervios jaja, anteriormente, no podía encontrar la función de superficie de respuesta() en la guía de secuencias de comandos (es no figura en la guía de secuencias de comandos JMP9.0.3) y utilizó otros métodos como:
efectos(
var1 y RS,
var2 y RS,
polinomio (var1,var2),
factorial(var1,var2),
)
que se puede simplificar usando la función de superficie de respuesta (var1, var2)... simplemente decidí probarlo y funciona LOL...
Re: ¿Es posible realizar secuencias de comandos de modelo de ajuste variable?Lo siento, me perdí la parte de la superficie de respuesta. Y como también habrás experimentado, hay otra función que no parece resolver bien las listas. JSL es bastante molesto a este respecto, ya que a menudo es difícil saber de antemano los requisitos del argumento.
Así que tenemos que hacer el mismo truco también con el objeto Ajustar modelo, es decir, usar una expresión y sustituirla. Por ejemplo:
dt = Abierto ( "$ENGLISH_SAMPLE_DATA/Tiretread.jmp" ) ;
a = 0 ;
lista_objetivos = { Minimizar , Maximizar } ; // lista de opciones
lista_var = { : ABRASIÓN , : DUREZA } ;
lista_rs = { : SÍLICE , : SILANO , : AZUFRE } ;
obj_expr = exprés ( objeto = dt << Modelo de ajuste (
Y ( lista_var [ i ] ) ,
Efectos ,
Personalidad ( Standard Least Squares ) ,
Énfasis ( Effect Screening ) ,
Falta de ajuste ( 0 ) ,
Sorted Estimates ( 1 ) ,
Gráfico real por previsto ( 1 ) ,
Plot Regression ( 0 ) ,
Plot Residual by Predicted ( 0 ) ,
Apalancamiento del efecto de la trama ( 0 ) ,
Correr ()
)) ;
objsettings_expr = Expr. (
objeto << Perfilador (
1 ,
Intervalos de confianza ( 1 ) ,
var << Límites de respuesta ( { Meta ( máximo minimo ) , Importancia ( 1 )} ) ,
maximizar la deseabilidad ( 1 ) ,
Funciones de deseabilidad ( 1 )
)
) ;
rs_cols = expresión regular ( Carbonizarse ( lista_rs ) , "\{(.+)\}" , "\1" ) ; // Elimina la lista de llaves
sustituir en ( obj_expr , Expr. ( Efectos ) , Analizar gramaticalmente ( "Efectos( superficie de respuesta(" || rs_cols || "))" ) ) ; // inserta los efectos como Parse(string)
sustituir en ( objsettings_expr , Expr. ( máximo minimo ) , lista_objetivos [ a + 1 ] ) ; // establecer una meta
Para ( i = 1 , i <= N artículos ( lista_var ) , i ++,
obj_expr ;
evaluar ( Sustituto ( Nombre Expr ( objsettings_expr ) , Expr. ( var ) , lista_var [ i ] ) ) ; // aplicar la configuración del perfilador
) ;
Re: ¿Es posible realizar secuencias de comandos de modelo de ajuste variable?En primer lugar, gracias mpb y ms por el consejo. ¡Realmente aprecio su ayuda! En primer lugar, refiriéndose a la respuesta de mpb, necesito usar el superficie de respuesta() para mi análisis y parece hacer esto:
response surface(eval(rs_list))
No funciona. He probado el método sugerido por mpb anteriormente muchas veces, pero fue en vano. Se utilizó el siguiente código:
Cannot find specified column in access or evaluation of 'Eval' , Eval( rs_list )In the following script, error marked by /*###*/obj=Fit Model( Y( var_list ), //this part works perfectly fine if the response list is listed out below Effects( response surface( Eval/*###*/(rs_list) ) ), Personality( Standard Least Squares ), Emphasis( Effect Screening ), Run, invisible);
¿Alguna forma de implementar una superficie de respuesta u otros métodos alternativos?
En cuanto a la respuesta de MS, me preguntaba: ¿puedes leerme la mente? Jajaja... Sí, ¡el principal problema al que me enfrento es la parte del límite de respuesta! no parece maximizar o minimizar correctamente según sea necesario... probaré tu ejemplo anterior
... pero muchas gracias por tu ayuda, aprecio sinceramente toda esta ayuda ya que he estado intentando esto por semanas:)
¿Es posible realizar secuencias de comandos de modelo de ajuste variable?Como señaló anteriormente mpb, Y() y Effects() comprenden las variables y las listas de variables evaluadas. Sin embargo, el mensaje de Profiler "<< Límites de respuesta ({})" parece no evaluar una variable de columna, al menos no representada por un elemento de lista. Por lo tanto, recorrer esto sobre una lista de variables no es muy sencillo.
Una forma de evitarlo es utilizar expresiones y sustituir las entradas críticas dentro del bucle.
Aquí hay un ejemplo (usando uno de los archivos de datos de muestra de JMP):
dt = Abierto ( "$ENGLISH_SAMPLE_DATA/Tiretread.jmp" ) ;
a = 0 ;
lista_objetivos = { Minimizar , Maximizar } ; // lista de opciones
lista_var = { : ABRASIÓN , : DUREZA } ;
lista_rs = { : SÍLICE , : SILANO , : AZUFRE } ;
objsettings_expr = Expr. (
objeto << Perfilador (
1 ,
Intervalos de confianza ( 1 ) ,
var << Límites de respuesta ( { Meta ( máximo minimo ) , Importancia ( 1 )} ) ,
maximizar la deseabilidad ( 1 ) ,
Funciones de deseabilidad ( 1 )
)
) ;
sustituir en ( objsettings_expr , Expr. ( máximo minimo ) , lista_objetivos [ a + 1 ] ) ; // establecer una meta
Para ( i = 1 , i <= N artículos ( lista_var ) , i ++,
objeto = dt << Modelo de ajuste (
Y ( lista_var [ i ] ) ,
Efectos ( evaluar ( lista_rs ) ) ,
Personalidad ( Mínimos cuadrados estándar ) ,
Énfasis ( Detección de efectos ) ,
Falta de ajuste ( 0 ) ,
Estimaciones ordenadas ( 1 ) ,
Gráfico real por previsto ( 1 ) ,
Trazar regresión ( 0 ) ,
Trazar residual según lo previsto ( 0 ) ,
Apalancamiento del efecto de la trama ( 0 ) ,
Correr ()
) ;
evaluar ( Sustituto ( Nombre Expr ( objsettings_expr ) , Expr. ( var ) , lista_var [ i ] ) ) ; // aplicar la configuración del perfilador
) ;
¿Es posible realizar secuencias de comandos de modelo de ajuste variable?Esto puede resultar útil:
var_list={:DrvrOS,:DrvrUS};
rs_list={:SKEW,:PKGIMP,:MBIMP,:XT,:MBLEN};
fm = Ajustar modelo(
Y(eval(var_list)),
Efectos (eval(rs_list)),
Personalidad (mínimos cuadrados estándar),
Énfasis (detección de efectos),
Correr()
);