Correlazione dei set di dati con timestamp non identiciSono nuovo di zecca per JMP. Sono sicuro che il mio problema è abbastanza comune, ma non conoscevo i termini giusti per cercare aiuto.
Ho eseguito un esperimento in cui i dati sono stati raccolti manualmente in base a punti temporali casuali.
Per illustrare meglio il tipo di dati che ho, ho creato una tabella di esempio qui sotto. Diciamo che vedo un problema con il risultato 2, quindi voglio vedere se c'è una correlazione tra il risultato 2 e il risultato 1 e anche tra il risultato 2 e il risultato 3.
I numeri sono completamente inventati, ma vedrai che, in generale, i dati non vengono raccolti nello stesso momento (ma a volte lo sono). I set di dati non hanno le stesse dimensioni.
| Tempo | Risultato 1 | Risultato 2 | Risultato 3 |
01:00 | 2000 | | |
| 02:00 | 5200 | | |
| 03:14 | 5000 | | |
| 04:00 | 5100 | | |
05:23 | 5200 | | |
| 06:00 | 5300 | | |
| 07:52 | 5000 | | |
| 01:15 | | 12 | |
| 04:23 | | 16 | |
| 06:00 | | 22 | |
| 01:17 | | | 345 |
| 02:34 | | | 345 |
| 02:50 | | | 347 |
| 04:23 | | | 347 |
| 05:53 | | | 342 |
| 08:23 | | | 235 |
| | | | |
Sono stato in grado di convertire l'ora in una data perché i miei dati si estende su più giorni (non mostrati nella tabella di esempio). Non conosco il modo migliore per farlo. Se i miei set di dati fossero piccoli, proverei ad abbinare i risultati 2 e 3 con il set di dati più vicino di Risultato 1. Dire, corrisponde 1:00 del risultato 1 e 1:15 del risultato 2 e 1:17 del risultato 3.
Ma ho molti dati (poche migliaia di punti dati o giù di lì). Ho solo bisogno di avere un senso generale di ciò che è correlato e cosa no. Non ho bisogno di mantenere i dati nel suo formato originale e non ho bisogno di agognare per piccole differenze (quindi, ok alla correlazione 1:00 con 1:15 con 1:17). Devo solo essere in grado di scorrere molte variabili diverse e determinare ... sì c'è una correlazione, o no non c'è.
Grazie!
Ri: Correlazione Set di dati con timestamp non identiciGrazie mille!Ri: Correlazione Set di dati con timestamp non identiciEcco un semplice esempio di un modo per risolvere la domanda che hai posto
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colNamesList = dt << get column names( numeric, continuous );
dtSum = dt << Summary(
Mean( Eval( colNamesList ) ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 )
);
La documentazione sul metodo e le funzioni si trovano nella Guida allo scripting e nell'Indice di scripting
Guida ==> Libri ==> Guida di scripting
Aiuto ==> Indice di scripting
Ri: Correlazione Set di dati con timestamp non identiciÈ fantastico. È esattamente ciò di cui avevo bisogno. Grazie mille.
Ho ancora una domanda ... perché lo script faccia la tabella riassuntiva, posso digitare i nomi delle colonne (es. "Risultato 2") se ho solo poche colonne. Cosa faccio se ho 100 colonne con vari nomi che devono essere uniti nella tabella dati?
Grazie!Ri: Correlazione Set di dati con timestamp non identiciPer "abbinare" i dati dovrebbe esserci un contesto per la corrispondenza. Dalla tua descrizione, sembrava che tu volessi abbinare per l'ora più vicina. Se così fosse, potresti creare una nuova colonna, la chiamerò Ora arrotondata.
Round( :Time / (60 * 60), 0 ) * (60 * 60)
Quindi puoi utilizzare Table Summary per i tuoi risultati, richiedendo la media, o min o max, poiché dovrebbe essercene solo uno,
Data Table( "Example" ) << Summary(
Group( :Round Hour ),
Mean( :Result 1 ),
Mean( :Result 2 ),
Mean( :Result 3 ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
Link to original data table( 0 )
)
Tuttavia, dati i tuoi dati inventati, ci sarebbe un problema con questo. Per il risultato 3 si ha una lettura alle 2:34, che si arrotonderebbe alle 3:00 e un'altra alle 2:50 che si arrotonderebbe alle 3:00. Cosa succederebbe qui? Come risolveresti questo problema?
Se richiede più logica, ad esempio "se 2 risultati alla stessa ora arrotondata, assegna il più vicino a quell'ora e se nessuno è assegnato all'ora precedente, assegna l'altro all'ora precedente" e regole simili, allora uno script essere richiesto.