Comment enregistrer une colonne de formule de prédiction avec un nom spécifique via JSL ?Chers tous,
J'exécute un modèle linéaire généralisé via un script JSL.
Comment puis-je enregistrer la formule de prédiction dans une colonne avec un nom spécifique ?
Tout ce que j'ai réussi à trouver ( Automatiser l'enregistrement de la formule de prédiction à l'aide du script JMP ? ) était quelque chose comme :
GLM = Ajuster le modèle (...) ;
GLM << formule de prédiction ;
Cependant:
1) puis-je choisir le nom de la colonne qui stockera la formule de prédiction ? JMP l'enregistrera automatiquement dans : "Pred Formula 'Target Variable'"
2) Cette fonctionnalité est-elle documentée quelque part ? Je l'ai trouvé sur le forum ci-dessus, mais pas dans la documentation de JMP
3) La même syntaxe fonctionne-t-elle pour d'autres plates-formes (par exemple une partition) ?
Merci.
Re : Scripting JSL : comment sauvegarder les formules de prédiction ?La réponse d'Ian répond aux préoccupations n°1 et n°3, tandis que l'utilisateur ms répond à la question n°2 sur la documentation entourant le langage de script JMP (JSL).
@ian_jmp :
En règle générale, « Enregistrer la formule de prédiction » est cohérente sur toutes les plates-formes. Le(s) nom(s) des colonnes enregistrées sont en effet fixes, mais vous pouvez les renommer en utilisant des éléments comme :
dt <SPAN class="token operator">=</SPAN> <SPAN class="token function">Open</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token string">"$SAMPLE_DATA/Big Class.jmp"</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
cols <SPAN class="token operator">=</SPAN> dt <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN> GetColumnNames<SPAN class="token punctuation">(</SPAN><SPAN class="token string">"String"</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
<SPAN class="token function">For</SPAN><SPAN class="token punctuation">(</SPAN>c<SPAN class="token operator">=</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">,</SPAN> c<SPAN class="token operator"><=</SPAN><SPAN class="token function">NItems</SPAN><SPAN class="token punctuation">(</SPAN>cols<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> c<SPAN class="token operator">++</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token function">Column</SPAN><SPAN class="token punctuation">(</SPAN>dt<SPAN class="token punctuation">,</SPAN> cols<SPAN class="token punctuation">[</SPAN>c<SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">)</SPAN> <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN> SetName<SPAN class="token punctuation">(</SPAN><SPAN class="token string">"New "</SPAN><SPAN class="token operator">||</SPAN>cols<SPAN class="token punctuation">[</SPAN>c<SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
En de rares occasions, il peut être utile d'utiliser « Obtenir les noms de colonnes » avant et après la création des colonnes, en comparant les deux listes pour déduire les noms des nouvelles colonnes.
@MS :
Concernant la documentation pour JSL, je pense que le Index des scripts (Menu Aide) est une excellente ressource, remplie d'exemples prêts à l'emploi. Et oui, << Formule de prédiction y a-t-il.
Re : Comment enregistrer une colonne de formule de prédiction avec un nom spécifique via JSL ?Pour continuer votre exemple :
GLM = Fit Model (......);
pf = GLM << prediction formula;
pf << Set Name( "my name" );
Oui, cette approche devrait fonctionner avec n’importe quelle plateforme de modélisation.
Re : Scripting JSL : comment sauvegarder les formules de prédiction ?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />J'ai supprimé les guillemets doubles de :Ma prédiction enregistrée et maintenant tout fonctionne bien.
Merci de m'avoir indiqué l'index des scripts - très utile !
Re : Scripting JSL : comment sauvegarder les formules de prédiction ?La case vide peut indiquer que la colonne : Ma prédiction enregistrée (ne doit pas être entre guillemets doubles) n'existe pas dans le tableau de données actuel. Vérifier l'orthographe.
Concernant la documentation pour JSL, je pense que le Index des scripts (Menu Aide) est une excellente ressource, remplie d'exemples prêts à l'emploi. Et oui, << Formule de prédiction y a-t-il.
Re : Scripting JSL : comment sauvegarder les formules de prédiction ?Mmm, ça semble très compliqué. Ce que j'ai trouvé, c'est que si ma variable cible s'appelle "Ma cible", la colonne s'appellera "Pred Formula My Target", j'utilise donc :
GLM = Fit Model (......);
GLM << prediction formula;
Column("Pred Formula My Target") << Set Name("New Column Name");
Et les documents ? Est-ce correctement documenté quelque part dans la documentation JSL ? Je n'ai pas réussi à le trouver. Je suis nouveau dans les scripts JMP, mais les premières impressions sont qu'il s'agit d'un langage puissant avec une syntaxe alambiquée et une documentation médiocre, un peu comme R en quelque sorte - mais je m'attendrais à une meilleure documentation d'un logiciel commercial !
Enfin, je crée une autre colonne qui multiplie la prédiction par autre chose :
New Column("My new calculation", Numeric, Formula( :"My saved Prediction" * :another_field ));
où "Ma prédiction enregistrée" comporte des espaces dans le nom, ce n'est pas le cas de another_field. La formule est calculée correctement, mais si je fais un clic droit sur l'en-tête et que je vais à la formule, je vois une case vide multipliée par un autre_champ. Est-ce un bug dans JMP ? Aurais-je dû préciser la formule différemment ?
Merci.
Re : Scripting JSL : comment sauvegarder les formules de prédiction ?En règle générale, « Enregistrer la formule de prédiction » est cohérente sur toutes les plates-formes. Le(s) nom(s) des colonnes enregistrées sont en effet fixes, mais vous pouvez les renommer en utilisant des éléments comme :
dt = Open("$SAMPLE_DATA/Big Class.jmp");
cols = dt << GetColumnNames("String");
For(c=1, c<=NItems(cols), c++,
Column(dt, cols[c]) << SetName("New "||cols[c]);
);
En de rares occasions, il peut être utile d'utiliser « Obtenir les noms de colonnes » avant et après la création des colonnes, en comparant les deux listes pour déduire les noms des nouvelles colonnes.