Script per salvare i residui dell'adattamento della splineCiao,
Qualcuno sa come scrivere uno script per salvare i residui (o i predetti) come una nuova colonna per l'adattamento della spline? È facile se lo faccio manualmente, basta selezionare Salva residui nel triangolo rosso a discesa. So come scrivere script per salvare i residui come una nuova colonna per l'adattamento del rivestimento utilizzando Fit Model. Tuttavia, spesso ho bisogno di adattare i dati di tendenza temporale utilizzando l'adattamento x spline standardizzato e non sono sicuro che esista un modo più semplice per farlo. Il mio obiettivo finale è acquisire residui o previsioni per diverse variabili in un ciclo, quindi un semplice script sarà di grande aiuto.
Grazie!!

Ri: Script per salvare i residui dell'adattamento della splineCiao Jim
Qualche risoluzione/correzione in modo da poter salvare i residui nella v14?
grazie per l'aiuto
Ri: Script per salvare i residui dell'adattamento della splinePeng,
Sì, questo sembra incoerente, tuttavia, immagino che sia stato fatto apposta per confrontare le previsioni (ad esempio, i maschi sono un set di protezione per le previsioni basate sulle femmine e viceversa.
Per creare una singola colonna di previsioni basate sul modello Raggruppa per, creare una nuova colonna con una formula o impostare ciascuna espressione di valore
If( :sex=="M", colonna per i predetti maschili, :sex=="F", colonna per i predetti maschili);
Se vuoi una colonna che assomigli alle colonne residue, crea una colonna per i maschi e usa un'espressione simile
If( :sex=="M", colonna per i predetti maschili, empty() );
Quindi fai lo stesso per le femmine.
Ri: Script per salvare i residui dell'adattamento della splineFantastico, questo è fantastico!!
Solo un'altra domanda:
Quando io faccio ogg<SPAN class="token operator"> <</SPAN><SPAN class="token operator"> <</SPAN><SPAN class="token punctuation"> (</SPAN> Curva<SPAN class="token punctuation"> [</SPAN> io<SPAN class="token punctuation"> ]</SPAN><SPAN class="token operator"> <</SPAN><SPAN class="token operator"> <</SPAN><SPAN class="token messages"> Salva residui</SPAN><SPAN class="token punctuation"> )</SPAN> e raggruppa per (:sex), JMP ha calcolato i residui per "M" e "F" e li ha salvati in colonne diverse con alcune celle vuote. Ecco perché è necessario "trasporre" per ottenere tutti i residui in una colonna. Tuttavia, se eseguo <
Grazie
Ri: Script per salvare i residui dell'adattamento della splineMi piace molto il nuovo riferimento al sottoinsieme di tabelle di JMP 13. Tuttavia, esiste ancora un metodo semplice per ottenere i valori con il messaggio Ottieni come matrice. La sintassi chiave è dt << get as matrix( lista | index ).Non esiste una funzione massima per riga, ma esiste una funzione VMax che è un massimo per colonna.Ho provato questo in JMP 12.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = Bivariate(
Y( :Weight ),
X( :Height ), GroupBy( :sex),
Fit Spline( 0.1, Standardized )
);
//Find how many in a group. We know it is 2 for Big Class
summarize(_by = By(:sex));
//Find out how many columns before adding residuals
ncpre = ncol(dt);
_nby = nitems(_by);
for(i=1, i<=_nby, i++,
obj << (Curve[i] << Save Residuals);
wait(0);
);
idx = ncpre+1::(ncpre+_nby);
cmat = Transpose(VMax(Transpose(dt << get as matrix(idx)))); //matrix _nby x nrow(dt)
/*the previous line of code is performing these tasks
- get the columns of residuals into a matrix of size nrow(dt) x _nby
- create the transpose: coloumns are rows and rows are columns, size _nby x nrow(dt)
- Vmax is a vertical maximum, it finds the max of each column (previously rows)
returns a 1 x nrow(dt) vector, a row vector
- transpose again so it is a column vector
*/
//create a single column of residuals
resids = dt << New Column("Weight v Height Spline Residuals",
Numeric, Continuous, Values( cmat )
);
Ri: Script per salvare i residui dell'adattamento della splineGrazie a tutti per le soluzioni!! IL la sintassi per più sottosezioni di una tabella di dati non funziona in JMP12. Ho letto un'altra discussione sulla restituzione del valore massimo di più righe, un metodo simile è stato applicato anche per JMP13. Esiste un modo migliore per acquisire valori massimi su più righe in JMP12? Scrivere una formula per confrontare i valori di riga per un numero sconosciuto di righe non sembra essere efficiente. Grazie!
Ri: Script per salvare i residui dell'adattamento della splineJim,
Ho notato lo stesso problema per JMP 14. Il supporto JMP afferma che è stato risolto in JMP 14.1 (agosto?).
Ecco una piccola modifica della sceneggiatura di Jim. Crea una singola colonna di residui. Utilizza la nuova sintassi (in JMP 13) per più sottosezioni di una tabella di dati. Questo sta ottenendo le colonne residue per riga e trovando il massimo (in realtà ottiene l'unico valore non vuoto).
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = Bivariate(
Y( :Weight ),
X( :Height ), GroupBy( :sex),
Fit Spline( 0.1, Standardized )
);
//Find how many in a group. We know it is 2 for Big Class
summarize(_by = By(:sex));
//Find out how many columns before adding residuals
ncpre = ncol(dt);
_nby = nitems(_by);
for(i=1, i<=_nby, i++,
obj << (Curve[i] << Save Residuals);
wait(0);
);
idx = ncpre+1::(ncpre+_nby);
//create a single column of residuals
resids = dt << New Column("Weight v Height Spline Residuals",
Numeric, Continuous,
<< Set Each Value( max(dt[row(),idx]) )
);
Ri: Script per salvare i residui dell'adattamento della splineOgni "Fit" separato specificato deve avere i propri residui salvati separatamente.La sottostriscia sul riferimento "Curve[]" è ciò che gestisce questo.L'esempio seguente ha un GroupBy(:Sex) che produrrà un Fit per le femmine, "F" e uno per i maschi, "M".Pertanto, devono essere emessi 2 "Save Residuals".
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = Bivariate(
Y( :Weight ),
X( :Height ),
GroupBy( :sex),
Fit Spline( 0.1, Standardized )
);
obj << (Curve[1] << Save Residuals);
obj << (Curve[2] << Save Residuals);
Mentre stavo testando questo codice per il tuo esempio.Ho scoperto che JMP 14 non funziona per Salva residui per un adattamento spline.Lo trasmetterò al supporto JMP come bug.
Ri: Script per salvare i residui dell'adattamento della splineGrazie Jim! Funziona. Se devo aggiungere "GroupBy" in Bivariate è possibile salvare tutti i residui? Sembra che JMP mantenga solo l'ultima linea di adattamento. Grazie!
<SPAN class="token function">Names Default To Here</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token number">1</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
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>
obj <SPAN class="token operator">=</SPAN> Bivariate<SPAN class="token punctuation">(</SPAN>
Y<SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Weight <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN>
X<SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">:</SPAN>Height <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,<BR /></SPAN> GroupBy( :Team),
Fit Spline<SPAN class="token punctuation">(</SPAN> 0.1, Standardized <SPAN class="token punctuation">)</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
obj <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN> <SPAN class="token punctuation">(</SPAN>Curve<SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN> <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token messages"> Save Residuals</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
Ri: Script per salvare i residui dell'adattamento della splineÈ possibile trovare questi tipi di sintassi nell'indice degli script
Aiuto==>Indice scripting==>Bivariata==>Curva bivariata
Ecco l'esempio di indice di scripting da quella voce
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = Bivariate(
Y( :Weight ),
X( :Height ),
Fit Polynomial( 3 )
);
obj << (Curve[1] << Save Residuals);