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 de la table 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 un nouveau tableau de données, similaire au clic droit dans "Estimations des paramètres" ==> "Transformer en tableau de données (combiné)"

J'ai le code pour construire le modèle ajusté, mais je ne sais pas comment inclure la fonction simplifiée et la sauvegarder 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 )}
)
)
);
Merci si quelqu'un ayant de l'expérience peut vous aider !
Accès aux donnéesRe : Récupérer une 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 forme d’arborescence ou de liste chaînée.
Re : Récupérer une formule de prédiction simplifiée par scriptDans l'exemple que j'ai donné, il reste sous la forme 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 la liste des valeurs, vous pouvez utiliser Set Values pour ajouter des valeurs au 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 une formule de prédiction simplifiée par script@jthi
Merci!
Le premier est exactement ce que je veux.
Mais je souhaite 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 un tableau contenant les coefficients des coefficients "non simplifiés".
Comme la formule_simplifiée a maintenant été enregistrée, existe-t-il un moyen de la transformer en tableau (pas la valeur de prédiction, juste les coefficients et les variables) ?
J'essayais de l'analyser ou de le changer en matrice ou en tableau, mais aucun d'entre eux ne fonctionne jusqu'à présent.
(Je ne sais pas quel est le type de l'objet formule... texte ?)
Re : Récupérer une 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.