Scienziati e ingegneri utilizzano sensori e dispositivi di misurazione online per monitorare una gamma quasi infinita di attributi di processo. Quando si analizzano i dati delle serie temporali acquisiti da storici e registratori di dati, vengono poste regolarmente due domande: "Come posso calcolare una media mobile?" e una domanda correlata: "Come contrassegnare le righe dopo che si è verificato un gap nei dati delle mie serie temporali?"
JMP può fare entrambe le cose facilmente, ma la risposta richiede una piccola conoscenza di una funzione di formula di colonna utilizzata meno frequentemente.
È spesso conveniente calcolare una media mobile per i dati campionati nel tempo. Ciò attenua il rumore nel flusso di dati e ci consente di avere un valore di misurazione medio in un determinato momento. Ad esempio, nella tabella dei dati in Figura 4, ho un pHmetro in linea che registra una misurazione ogni secondo, ma il mio torbidità può registrare solo una misurazione ogni 10 secondi. Potrei semplicemente abbinare la lettura di torbidità di 10 secondi con la corrispondente misurazione del pH, ma la lettura di torbidità rappresenta in realtà i 10 secondi precedenti di ciò che lo strumento ha visto e vorrei confrontarlo con una risoluzione temporale di 10 secondi simile del pH. Per fare questo, dovrò calcolare la media mobile degli ultimi 10 secondi delle misurazioni del pH. La risoluzione di 1 secondo e le medie mobili di 10 secondi vengono confrontate nel grafico di Graph Builder sotto la tabella in Figura 5.
La seconda domanda sorge quando si utilizzano le medie mobili. Un presupposto che abbiamo con una media mobile è che ogni misurazione è equamente spaziata. Ciò rende la media mobile ponderata uniformemente su tutti gli intervalli. Ma periodicamente (nella vita reale), ci sono brevi lacune nel flusso di dati e devono essere identificate lacune più lunghe di un periodo di tempo significativo per avvisarci che il presupposto si è rotto. Queste lacune sono causate da una varietà di problemi, come cortocircuiti, interruzioni intermittenti o solo la mancanza di dati dai dispositivi collegati in rete.
Una media mobile può essere calcolata in un solo passaggio utilizzando la funzione di somma nell'editor delle formule di colonna.
Come testo, la formula in Figura 1 è Somma (i = 0, 9, Lag (: pH, i)) / 10
La funzione di somma (Figura 1) funziona come un ciclo iterativo. In questo caso, mentre "i" è compreso tra 0 e 9, calcola la somma dei valori che ottiene dall'argomento a destra. L'argomento a destra viene valutato come Lag (: pH, 0), Lag (: pH, 1), Lag (: pH, 2), Lag (: pH, 3) ... Lag (: pH, 9). In questo caso, Lag (: pH, 0) è il valore nella riga corrente della colonna pH e Lag (: pH, 9) è il valore 9 righe sopra la riga corrente (per un totale di 10 righe).
Il secondo problema è un po 'complicato e sarà più semplice suddividerlo in due passaggi. Nel primo passaggio, creeremo una colonna formula per contrassegnare i grandi intervalli di tempo, quindi nel secondo passaggio, aggiungeremo una seconda formula che contrassegnerà un intervallo di righe dopo l'intervallo di tempo.
Il primo passo è creare una nuova colonna denominata "Time Gap" e quindi aggiungere una formula per contrassegnare i gap quando sono più lunghi di 5 secondi in questo modo:
: Time Stamp - Lag (: Time Stamp, 1)> 5
O se volessi intensificarlo un po ', potresti usare la funzione Differenza data in questo modo:
Differenza data (Ritardo (: Timestamp, 1),: Timestamp, "secondo")> 5
In questo caso specifico, volevo sapere quando si sono verificati intervalli di tempo di 5 secondi o più; in altri progetti, avevo solo bisogno di sapere quando si sono verificate lacune più lunghe.
La funzione Differenza data calcola la differenza tra due valori di data e restituisce il risultato in unità che possono essere specificate (ad es. Ora, minuto, giorno, settimana, anno). In entrambi i casi, se la differenza è maggiore di 30, la formula viene valutata come "1" per vero e "0" per falso.
Nel secondo passaggio, creiamo un altro nuovo nome di colonna "Flag di gap" e aggiungiamo una formula per contrassegnare 10 righe che seguono il gap rilevato nella colonna time gap.
Come testo la formula in Figura 2 è Somma (i = 0, 9, Lag (: Time Gap, i))> 0
Ancora una volta, la funzione di somma (Figura 2) funziona come un ciclo iterativo. Questa volta, è combinato con un argomento condizionale. Mentre "i" è compreso tra 0 e 9, se la somma dei valori nella colonna Time Gap è maggiore di 0, la formula viene valutata come "1" per true o "0" per false. Se è presente almeno un "1" nella colonna Tempo gap per le 30 righe precedenti, anche il valore in questa colonna flag è 1.
Con solo un paio di piccole modifiche, possiamo avere questa formula anche per impostare il colore del creatore di righe. Per utilizzare questa formula, crea una nuova colonna e imposta il tipo di dati su "Stato riga".
If (Somma (i = 0, 9, Lag (: Time Gap, i))> 0,
Row State () = Color State ("red"),
Row State () = Color State ("blue")
);
La funzione di sommatoria è uno strumento importante nella casella degli strumenti di JMP e può risparmiare molto tempo e fatica. Per ulteriori informazioni sulla sintassi e sull'uso della funzione di sommatoria, consultare Utilizzo di JMP, le guide alla Guida agli script e l'indice degli script, tutti disponibili nel menu Guida in JMP.