Rolling t-test e F-test lungo una colonna<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ho dati di livello minuto da una nave di processo. I dati del livello contengono un po 'di rumore. Utilizzando i dati di livello, voglio determinare se la nave si sta riempiendo, svuotando o mantenendosi stabile.
Ho usato semplici una fila Dif (x, 1)> y e anche due punti (Lag (x, -1) - Lag (x, 1))> y per trovare i cambiamenti da uno stato all'altro. Anche con quest'ultimo ci sono falsi positivi. Da un minuto all'altro la nave può essere riempita. Alcuni dei riempimenti / svuotamenti durano circa 10 minuti.
Ho parlato con un collega di controllo di processo su questo e ha suggerito un metodo che viene utilizzato per trovare (un) stati stazionari:
- fai un test t per confrontare i mezzi di riga (1-10) con le righe (11-20) per vedere se i mezzi sono uguali / diversi per determinare il riempimento / svuota / trattieni
- fare un test F degli stessi dati per vedere le varianze sono diverse per determinare un / stato stazionario
- ripeti questo in ogni riga della colonna (ho 785k righe)
Lo ha fatto usando Excel usando le funzioni T.TEST () e F.TEST ().
Ho esaminato l'indice di scripting e non sono riuscito a trovare un modo ovvio per raggiungere questo obiettivo.
Eventuali suggerimenti?
Ri: Rolling t-test e F-test su una colonnaCiao Mark,
Un altro approccio che potrebbe raggiungere l'obiettivo sarebbe quello di fare un grafico Bivariato e quindi selezionare Flessibile-> Adatta spline-> 0.01, flessibile dal menu del triangolo rosso del rapporto bivariato. Usa il cursore per appianare la curva a tuo piacimento (potrebbe essere necessario ingrandire le varie parti del grafico a seconda della densità dei dati), quindi selezionare Salva previsioni dal menu di adattamento. Quindi vai alla colonna della formula che è stata creata e prendi la derivata rispetto alla tua variabile temporale. Il risultato sarà la pendenza della curva in ogni osservazione data. Da lì, si tratta solo di decidere un intervallo appropriato per ciò che si desidera considerare come 0 slope, ovvero "holding steady". Qualunque cosa in meno sarebbe "svuotare" e qualsiasi cosa di più sarebbe "riempire".
Solo una nota sui tempi di risposta: nella versione 12 ogni azione, aprendo l'editor di formule e ogni clic successivo, richiedeva ~ 20-30 secondi per una tabella dati con ~ 45K righe. I tempi di risposta nella versione 13 beta erano istantanei.
Spero che questo ti aiuti.
-Jerry
Ri: Rolling t-test e F-test su una colonnaCiao MarkSChahl
prima devo dirti che penso che questo violi diverse ipotesi del test t. altrimenti, prova il seguente script.
una volta eseguito, verrà fornito un report di connessione che è possibile ordinare in base ai livelli della colonna 2 per ottenere il riepilogo nell'ordine del tempo.
migliore,
ron
Nuova tabella ( "DATI" ,
Aggiungi righe ( 500 ) ,
Nuova colonna ( "Colonna 1" ,
Numerico ,
Continuo ,
Formato ( "Migliore" , 12 ) ,
Formula ( Peccato ( Riga () / 100 ) + Casuale normale () )
) ,
Nuova colonna ( "Colonna 2" ,
Numerico ,
Ordinale ,
Formato ( "Migliore" , 12 ) ,
Formula ( Pavimento ( Riga () / 10 ) )
)
) ;
produzione = Senso unico (
Y ( : Colonna 1 ) ,
X ( : Colonna 2 ) ,
Ogni paio ( 1 , Relazione sulle lettere di collegamento ( 1 ) ) ;
Nome ( "Mezzi / Anova" ) ( 0 ) ,
t Test ( 0 ) ,
Confronta le densità ( 0 ) ,
Box Plots ( 1 ) ,
Diamanti medi ( 1 ) ,
Punti nervosi ( 1 ) ,
) ;