Tau di Kendall da FormulaCiao
Ho avuto alcune domande in un thread diverso sulla necessità di ottenere pendenze di adattamento lineare da una formula anziché da uno script.
Questa domanda è simile. C'è un modo per estrarre il Tau di Kendall per un dato parametro della serie temporale usando una formula (e non usando l'analisi multivariata o uno script)?
Il mio obiettivo è testare la tendenza non parametrica per diverse lunghezze di tempo da cui vengono prodotti i dati (ad es. vorrei impostare finestre mobili e quindi testare Tau di Kendall) . Grazie ....
Re: Tau di Kendall da FormulaJim
Questo ha funzionato alla grande.
L'unico piccolo problema è un avviso con l'uso della "Tabella dei dati correnti" all'interno di una formula.
JMP genera un avviso che indica di utilizzare invece una funzione Eval o Expr Eval.
Probabilmente attiverei e quindi disattiverei questa funzione al termine del calcolo.
Questo è stato di grande aiuto. Grazie mille.
Re: Tau di Kendall da FormulaQuando si utilizzano le piattaforme JMP in una formula, proprio come quando le si utilizza in modo interattivo o in uno script, l'input per la piattaforma deve essere costituito da colonne di una tabella di dati.Pertanto, non è possibile fare riferimento all'input creando una matrice di input.Quindi quello che ho fatto per far funzionare la tua formula è sfruttare la possibilità di escludere le righe dalla tabella dei dati e quando la piattaforma viene eseguita, ignorerà quelle righe.Ecco la formula e l'output che crea:
dt = Current Data Table();
If( Row() >= 10,
currentRow = Row();
dt << clear rowstates;
dt << select where( Row() <= currentRow - 10 | Row() > currentRow );
excludeRows = dt << get selected rows;
dt << hide and exclude;
mv = dt << Multivariate(
invisible,
Y( :TimeStep, :F ),
Estimation Method( "Row-wise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( Density Ellipses( 0 ), Shaded Ellipses( 0 ) ),
Kendall's τ( 1 )
);
tau = (Report( mv )["Nonparametric: Kendall's τ"][Number Col Box( 1 )] << get)[1];
mv << close window;
If( Row() == N Rows( dt ),
dt << clear rowstates
);
tau;
);
La tabella dei dati

Suggerisco che una volta creata la colonna e dopo aver eseguito la formula, vai alla finestra di dialogo Informazioni sulla colonna e rimuovi la formula.Lascerà i valori statici, ma non continuerà a ripetere la formula più e più volte... non è il più veloce
Re: Tau di Kendall da FormulaVedendo la tua altra risposta sui pendii lineari, ho avuto un'altra idea di dove mettere l'indice per MK ma non ha funzionato neanche.
allegato nel mio ultimo con quel 5° tentativo
Re: Tau di Kendall da Formulaciao
Grazie per questa ottima risposta. Questa è stata in realtà una rivelazione per me perché questo ha mostrato che una formula può contenere strutture simili a script, che mi erano sconosciute.
Ho accettato la tua soluzione ma ho bisogno del tuo aiuto ancora una volta.
Caricamento di un set di dati di esempio.
Il mio bisogno di MK tau è sulle righe per una singola colonna. In realtà è stato fatto correttamente (il mio adattamento dal tuo precedente aiuto) in col Tau_WholeData.
Quello che sto veramente cercando di fare è ottenere una tendenza di un singolo parametro in timestep (tendenza temporale se vuoi).
Quindi sto cercando di impostare una finestra mobile (rotolante) di dimensione 10, avviare la finestra alla riga 10 e quindi spostarla di un record (riga), calcolando ogni volta MK Tau delle 10 righe precedenti.
Ho fatto cose simili con la funzione Index (ad esempio Index( Row() - 9, Row() )) per 10 righe e ho provato 3-4 diverse opzioni per inserirlo nella formula Tau_WholeData - finora senza successo.
Apprezzo se potessi farmi sapere come dovrei cambiare questo.
Grazie ...
Re: Tau di Kendall da FormulaEcco il calcolo su tutte le colonne di analisi nella tabella dei dati e posizionato nelle righe della colonna della formula calcolata.La tabella dei dati è allegata, la formula è sotto
