Script de modèle à ajustement variable possible ?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut à tous, je suis nouveau sur ce forum et j'espère m'entendre avec vous tous
Je suis un étudiant utilisant JMP mais je suis confronté à quelques difficultés en matière de script concernant la partie du modèle d'ajustement. Ce qui suit illustre le code du modèle d'ajustement que je n'arrive pas à faire fonctionner :
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 )};);J'ai 10 variables dans une liste et j'aimerais toutes les utiliser pour effectuer une série d'analyses des moindres carrés via fitmodelling, mais je n'arrive pas à le faire fonctionner. le code ci-dessus était initialement prévu pour être inséré dans un boucle for pour boucler 10 fois (cela peut varier selon le nombre de variables peut être plus ou moins) mais le fait est que j'aimerais utiliser une boucle pour commander à jmp d'effectuer l'analyse souhaitée dans la liste ci-dessus... également, est-il possible de placer liste_rs dans la fonction de surface de réponse ci-dessus ? (je n'arrive pas à faire fonctionner la liste aussi)... toute idée ou conseil est grandement apprécié ! merci d'avance et bonne journée à venir ! 
Script de modèle à ajustement variable possible ?Merci beaucoup pour les conseils MS, j'apprécie ! 
Script de modèle à ajustement variable possible ?Ok, mon code fonctionne ici lorsqu'il est appliqué à l'exemple de table que j'ai utilisé. Lorsqu'il est appliqué à un tableau plus grand, je constate également que le tracé réel par prévu manquait pour certaines itérations. Je suppose que cela peut résulter d'un ajustement lent des souhaits et du fait que JMP continue d'exécuter le code en avance même si les calculs en cours ne sont pas terminés. Parfois, cela peut être résolu en insérant des commandes Wait() aux bons endroits (pas évident ici où elles peuvent se trouver).
Re : Script de modèle à ajustement variable possible ?MS, j'ai essayé votre code, il semble que je regarde quelques bugs ?... ce que je vois, c'est que parfois l'intrigue réelle n'apparaît pas dans la fenêtre de prédiction dans les rapports alors que les autres les ont, par exemple : Le rapport de drvros n'a pas l'intrigue réelle alors que l'intrigue de drvrus a l'intrigue réelle... j'ai également essayé de maximiser et de minimiser selon une séquence, par exemple maximiser d'abord, puis minimiser mais cela semble fonctionner aussi... n'importe lequel des idées ? merci d'avance ! 
PS : Merci beaucoup pour vos conseils d'expert, j'ai tellement appris de vos deux réponses, JSL peut vraiment s'énerver haha, auparavant, je ne trouvais pas la fonction surface de réponse() dans le guide de script (c'est non répertorié dans le guide de script JMP9.0.3) et a utilisé d'autres méthodes telles que :
effets(
var1 et RS,
var2 et RS,
polynôme (var1,var2),
factorielle(var1,var2),
)
qui peut être simplifié en utilisant la fonction surface de réponse (var1,var2)... je viens de décider de l'essayer et ça marche LOL...
Re : Script de modèle à ajustement variable possible ?Désolé, j'ai raté la partie surface de réponse. Et comme vous l'avez également constaté, il existe une autre fonction qui ne semble pas bien résoudre les listes. JSL est assez ennuyeux à cet égard car il est souvent difficile de déterminer à l'avance les exigences de l'argument.
Nous devons donc faire la même chose également pour l'obj Fit Model, c'est-à-dire utiliser une expression et un substitut. Par exemple:
dt = Ouvrir ( "$ENGLISH_SAMPLE_DATA/Tiretread.jmp" ) ;
un = 0 ;
liste_objectifs = { Minimiser , Maximiser } ; // liste d'options
liste_var = { : ABRASION , : DURETÉ } ;
liste_rs = { : SILICE , : SILANE , : SOUFRE } ;
obj_expr = expression ( obj = dt << Fit Model (
Oui ( var_list [ je ] ) ,
Effets ,
Personnalité ( Standard Least Squares ) ,
Accent ( Dépistage des effets ) ,
Manque d'ajustement ( 0 ) ,
Estimations triées ( 1 ) ,
Tracer le réel par prévu ( 1 ) ,
Régression du tracé ( 0 ) ,
Tracer le résidu par prévision ( 0 ) ,
Effet de levier de l'effet de tracé ( 0 ) ,
Courir ()
)) ;
objsettings_expr = Expr (
obj << Profileur (
1 ,
Intervalles de confiance ( 1 ) ,
var << Limites de réponse ( { But ( maximum minimum ) , Importance ( 1 )} ) ,
maximiser la désirabilité ( 1 ) ,
Fonctions de désirabilité ( 1 )
)
) ;
rs_cols = Expression régulière ( Carboniser ( liste_rs ) , "\{(.+)\}" , "\1" ) ; // Supprime la liste des accolades
Remplacer par ( obj_expr , Expr ( Effets ) , Analyser ( "Effets( surface de réponse(" || rs_cols || "))" ) ) ; // insère les effets sous forme d'analyse (chaîne)
Remplacer par ( objsettings_expr , Expr ( maximum minimum ) , liste_objectifs [ un + 1 ] ) ; // fixer un objectif
Pour ( je = 1 , je <= N articles ( liste_var ) , je ++,
obj_expr ;
Évaluer ( Remplaçant ( Nom Expr ( objsettings_expr ) , Expr ( var ) , liste_var [ je ] ) ) ; // appliquer les paramètres du profileur
) ;
Re : Script de modèle à ajustement variable possible ?Tout d'abord, merci mpb et ms pour les conseils, j'apprécie vraiment votre aide ! Tout d'abord, en référence à la réponse de mpb, je dois utiliser le surface de réponse() pour mon analyse et il semble que je fasse ceci :
response surface(eval(rs_list))
ne fonctionne pas. J'ai déjà essayé la méthode suggérée par mpb à plusieurs reprises, mais en vain. Le code suivant a été utilisé :
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);
Existe-t-il un moyen d'implémenter une surface de réponse ou d'autres méthodes alternatives ?
Quant à la réponse de MS, je me demandais, pouvez-vous lire dans mes pensées hahaha... ouais, le principal problème auquel je suis confronté est la partie limite de réponse ! il ne semble pas maximiser ou minimiser correctement selon les besoins... je vais essayer votre exemple ci-dessus
... mais merci beaucoup pour votre aide, j'apprécie sincèrement toute cette aide pendant que j'essayais cela pendant des semaines:)
Script de modèle à ajustement variable possible ?Comme indiqué ci-dessus par mpb, Y() et Effects() comprennent les variables et les listes de variables évaluées. Cependant, le message du profileur « << Limites de réponse ({}) » ne semble pas évaluer une variable de colonne, du moins non représentée par un élément de liste. Faire une boucle sur une liste de variables n'est donc pas très simple.
Une façon de contourner ce problème consiste à utiliser des expressions et à remplacer les entrées critiques dans la boucle.
Voici un exemple (en utilisant l'un des exemples de fichiers de données JMP) :
dt = Ouvrir ( "$ENGLISH_SAMPLE_DATA/Tiretread.jmp" ) ;
un = 0 ;
liste_objectifs = { Minimiser , Maximiser } ; // liste d'options
liste_var = { : ABRASION , : DURETÉ } ;
liste_rs = { : SILICE , : SILANE , : SOUFRE } ;
objsettings_expr = Expr (
obj << Profileur (
1 ,
Intervalles de confiance ( 1 ) ,
var << Limites de réponse ( { But ( maximum minimum ) , Importance ( 1 )} ) ,
maximiser la désirabilité ( 1 ) ,
Fonctions de désirabilité ( 1 )
)
) ;
Remplacer par ( objsettings_expr , Expr ( maximum minimum ) , liste_objectifs [ un + 1 ] ) ; // fixer un objectif
Pour ( je = 1 , je <= N articles ( liste_var ) , je ++,
obj = dt << Modèle adapté (
Oui ( liste_var [ je ] ) ,
Effets ( Évaluer ( liste_rs ) ) ,
Personnalité ( Moindres carrés standards ) ,
Accent ( Dépistage des effets ) ,
Manque d'ajustement ( 0 ) ,
Estimations triées ( 1 ) ,
Tracer le réel par prévu ( 1 ) ,
Régression du tracé ( 0 ) ,
Tracer le résidu par prévision ( 0 ) ,
Effet de levier de l'effet de tracé ( 0 ) ,
Courir ()
) ;
Évaluer ( Remplaçant ( Nom Expr ( objsettings_expr ) , Expr ( var ) , liste_var [ je ] ) ) ; // appliquer les paramètres du profileur
) ;
Script de modèle à ajustement variable possible ?Cela peut être utile :
var_list={:DrvrOS,:DrvrUS} ;
rs_list={:SKEW,:PKGIMP,:MBIMP,:XT,:MBLEN};
fm = Ajuster le modèle (
Y(eval(var_list)),
Effets( eval(rs_list)),
Personnalité (moindres carrés standard),
Accent mis sur le dépistage des effets,
Courir()
);