Come salvare una colonna della formula di previsione con un nome specifico tramite JSL?Carissimi,
Sto eseguendo un modello lineare generalizzato tramite uno script JSL.
Come posso salvare la formula di previsione in una colonna con un nome specifico?
Tutto quello che sono riuscito a trovare ( Automatizzare il salvataggio della formula di previsione utilizzando lo script JMP? ) era qualcosa del tipo:
GLM = Fit Model (......);
GLM << formula di previsione;
Tuttavia:
1) posso scegliere il nome della colonna che memorizzerà la formula di previsione? JMP lo salverà automaticamente in: "Pred Formula 'Target Variable'"
2) Questa funzionalità è documentata da qualche parte? L'ho trovato sul forum sopra, ma non nella documentazione di JMP
3) La stessa sintassi funziona per altre piattaforme (es. partizione)?
Grazie.
Ri: JSL scripting: come salvare le formule di previsione?La risposta di Ian riguarda le risposte n. 1 e n. 3, mentre l'utente ms risponde alla domanda n. 2 sulla documentazione relativa al linguaggio di scripting di JMP (JSL).
@ian_jmp :
Generalmente la "formula di previsione del salvataggio" è coerente su tutte le piattaforme. I nomi delle colonne salvate sono effettivamente fissi, ma puoi rinominarli usando cose come:
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>
In rare occasioni può essere utile utilizzare "Ottieni nomi colonne" prima e dopo la creazione delle colonne, confrontando i due elenchi per dedurre i nomi delle nuove colonne.
@SM :
Per quanto riguarda la documentazione per JSL, penso che il file Indice degli script (Menu Aiuto) è un'ottima risorsa, ricca di esempi pronti all'uso. E sì, < è lì.
Ri: Come salvare una colonna formula di previsione con un nome specifico tramite JSL?Continuando il tuo esempio:
GLM = Fit Model (......);
pf = GLM << prediction formula;
pf << Set Name( "my name" );
Sì, questo approccio dovrebbe funzionare con qualsiasi piattaforma di modellazione.
Ri: JSL scripting: come salvare le formule di previsione?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ho rimosso le doppie virgolette da :La mia previsione salvata e ora funziona tutto bene.
Grazie per avermi indicato lo Scripting Index - molto utile!
Ri: JSL scripting: come salvare le formule di previsione?La casella vuota può indicare che la colonna :La mia previsione salvata (non deve essere racchiusa tra virgolette) non esiste nella tabella dati corrente. Controllo ortografico.
Per quanto riguarda la documentazione per JSL, penso che il file Indice degli script (Menu Aiuto) è un'ottima risorsa, ricca di esempi pronti all'uso. E sì, < è lì.
Ri: JSL scripting: come salvare le formule di previsione?Mmm, sembra molto contorto. Quello che ho scoperto è che se la mia variabile target si chiama "My Target", la colonna si chiamerà "Pred Formula My Target", quindi utilizzo:
GLM = Fit Model (......);
GLM << prediction formula;
Column("Pred Formula My Target") << Set Name("New Column Name");
E la documentazione? Questo è adeguatamente documentato da qualche parte nella documentazione JSL? non sono riuscito a trovarlo. Sono nuovo nello scripting JMP, ma la prima impressione è che sia un linguaggio potente con una sintassi contorta e una documentazione scadente, un po' come R in un certo senso, ma mi aspetterei una documentazione migliore da un software commerciale!
Infine, creo un'altra colonna che moltiplica la previsione per qualcos'altro:
New Column("My new calculation", Numeric, Formula( :"My saved Prediction" * :another_field ));
dove "La mia previsione salvata" ha spazi nel nome, another_field no. La formula è calcolata correttamente, ma se clicco con il tasto destro sull'intestazione e vado alla formula, vedo una casella vuota moltiplicata per un altro_campo. È un bug in JMP? Avrei dovuto specificare la formula in modo diverso?
Grazie.
Ri: JSL scripting: come salvare le formule di previsione?Generalmente la "formula di previsione del salvataggio" è coerente su tutte le piattaforme. I nomi delle colonne salvate sono effettivamente fissi, ma puoi rinominarli usando cose come:
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]);
);
In rare occasioni può essere utile utilizzare "Ottieni nomi colonne" prima e dopo la creazione delle colonne, confrontando i due elenchi per dedurre i nomi delle nuove colonne.