Récupérer la formule de prédiction simplifiée par scriptBonjour, je suis assez nouveau dans le script JMP mais j'essaie d'obtenir les coefficients de la formule de prédiction à partir de modèles ajustés.
Il existe déjà de nombreux articles décrivant comment obtenir la formule de prédiction dans les scripts, mais ce que je veux, c'est la formule après avoir appliqué "Simplifier" dans l'interface JMP.
Enregistrer les colonnes ==> Formule de prédiction ==> Ouvrir la formule à partir du tableau de données ==> Dans le menu contextuel du triangle rouge de l'éditeur d'équation, choisissez simplifier

Mon image idéale est d'obtenir les coefficients de la formule simplifiée dans une nouvelle table de données, similaire au clic droit dans "Parameter Estimates" ==> "Make into (combined) Data Table"

J'ai le code pour construire le modèle ajusté, mais je ne sais pas comment inclure la fonction simplifiée et l'enregistrer dans une nouvelle table.
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
obj = dt << Fit Model(
Y( :ABRASION ),
Effects(
:SILICA & RS, :SILANE & RS, :SILICA * :SILICA, :SILICA * :SILANE,
:SILANE * :SILANE
),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Screening" ),
Run(
Profiler(
1,
Confidence Intervals( 1 ),
Desirability Functions( 1 ),
ABRASION << Response Limits(
{Lower( 100, 0.066 ), Middle( 150, 0.5 ),
Upper( 200, 0.9819 ), Goal( "Maximize" ), Importance( 0.25 )}
),
Term Value(
SILICA( 1.2, Lock( 0 ), Show( 1 ) ),
SILANE( 50, Lock( 0 ), Show( 1 ) )
)
),
:ABRASION << {Summary of Fit( 0 ), Analysis of Variance( 0 ),
Parameter Estimates( 1 ), Effect Details( 0 ), Sorted Estimates( 0 ),
Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 1 ), Plot Studentized Residuals( 1 ),
Plot Effect Leverage( 0 ), Plot Residual by Normal Quantiles( 0 ),
Box Cox Y Transformation( 1 )}
),
SendToReport(
Dispatch(
{"Response ABRASION"},
"Parameter Estimates",
OutlineBox,
{Close( 0 )}
)
)
);
Appréciez si quelqu'un avec des expériences peut aider!
Tableau de donnéesScriptRe : Récupérer la formule de prédiction simplifiée par scriptVous pouvez également analyser l'expression directement. Consultez l'aide JMP ou l'index des scripts pour en savoir plus sur les fonctions Head(), N Args() et Arg(). Vous parcourez l'expression sous la forme d'un arbre ou d'une liste chaînée.
Re : Récupérer la formule de prédiction simplifiée par scriptDans l'exemple que j'ai donné, il est laissé comme Expression. Je pense que vous devrez d'abord le convertir en chaîne avec:
simplified_formula_str = Char(simplified_formula);
Et à partir de là, commencez à l'analyser en listes. Pour l'analyse, les fonctions suivantes peuvent vous aider à démarrer : Words(), Substitute() (et Regex si vous savez comment l'utiliser). Plus de fonctions peuvent être trouvées dans Scripting Index :

Une fois que vous avez une liste de valeurs, vous pouvez utiliser Set Values pour ajouter des valeurs à datatable :
Names Default To Here(1);
intercept_list = {"Intercept", "SILICA"};
estimate_list = [123, 1];
New Table("Untitled",
Add Rows(2),
Compress File When Saved(1),
New Column("Term", Character, "Nominal", Set Values(intercept_list)),
New Column("Estimate",
Numeric,
"Continuous",
Format("Best", 12),
Set Values(estimate_list)
)
);
Re : Récupérer la formule de prédiction simplifiée par script@jthi
Merci!
Le premier est exactement ce que je veux.
Mais je veux créer un nouveau tableau qui montre les coefficients et les variables de la formule simplifiée comme le "Make Into Data Table".
Si vous utilisez la fonction originale Make Into Data Table, elle crée une table contenant les coefficients de ceux "non simplifiés".
Comme maintenant la formule_simplifiée a été enregistrée, existe-t-il un moyen de la transformer en table (pas la valeur de prédiction, juste les coefficients et les variables) ?
J'essayais de l'analyser ou de le changer en une matrice ou une table, mais aucun d'eux ne fonctionne jusqu'à présent.
(Je ne sais pas quel est le type de l'objet formule... texte ?)
Re : Récupérer la formule de prédiction simplifiée par scriptVous pouvez obtenir la formule simplifiée avec quelque chose comme ceci :
col_formula = Expr(Column(dt, "Pred Formula ABRASION") << Get Formula);<BR />simplified_formula = Expr(Simplify Expr(col_formula));
Et vous pouvez créer un script pour la table de données Make Into à partir du modèle Fit :
dt_new = ((obj << report)["Parameter Estimates"])[TableBox(1)]<< Make Into Data Table;
Consultez Scripting Index pour une excellente source de scripts JSL.