Les scientifiques et les ingénieurs utilisent des capteurs et des appareils de mesure en ligne pour surveiller un éventail presque infini d'attributs de processus. Lors de l'analyse des données de séries temporelles capturées par les historiens et les enregistreurs de données, deux questions se posent régulièrement: "Comment puis-je calculer une moyenne mobile?" et une question connexe: "Comment puis-je marquer des lignes après un intervalle dans les données de ma série chronologique?"
JMP peut faire les deux facilement, mais la réponse nécessite un peu de connaissance d'une fonction de formule de colonne moins fréquemment utilisée.
Il est souvent pratique de calculer une moyenne mobile pour les données échantillonnées dans le temps. Cela atténue le bruit dans le flux de données et nous permet d'avoir une valeur de mesure moyenne à un moment donné. Par exemple, dans le tableau de données de la figure 4, j'ai un pH-mètre en ligne qui enregistre une mesure une fois par seconde, mais mon turbidimètre ne peut enregistrer une mesure que toutes les 10 secondes. Je pourrais simplement faire correspondre la lecture de turbidité de 10 secondes avec la mesure de pH correspondante, mais la lecture de turbidité représente en fait les 10 secondes précédentes de ce que l'instrument a vu, et j'aimerais la comparer à une résolution temporelle similaire de 10 secondes du pH. Pour ce faire, je devrai calculer la moyenne mobile des 10 dernières secondes de mesures de pH. La résolution d'une seconde et les moyennes mobiles de 10 secondes sont comparées dans le graphique du générateur de graphiques sous le tableau de la figure 5.
La deuxième question se pose lorsque nous utilisons des moyennes mobiles. Une hypothèse que nous avons avec une moyenne mobile est que chaque mesure est également espacée. Cela rend la moyenne mobile uniformément pondérée sur tous les intervalles. Mais périodiquement (dans la vie réelle), il y a de courtes lacunes dans le flux de données, et des lacunes plus longues qu'une certaine durée significative doivent être identifiées pour nous alerter que l'hypothèse a échoué. Ces lacunes sont causées par une variété de problèmes, tels que les courts-circuits, les interruptions intermittentes ou simplement les données manquantes des appareils connectés au réseau.
Une moyenne mobile peut être calculée en une seule étape à l'aide de la fonction Summation de l'éditeur de formule de colonne.
En tant que texte, la formule de la figure 1 est Summation (i = 0, 9, Lag (: pH, i)) / 10
La fonction de sommation (Figure 1) fonctionne comme une boucle itérative. Dans ce cas, alors que "i" est compris entre 0 et 9, il calcule la somme des valeurs qu'il obtient de l'argument de droite. L'argument de droite est évalué comme Lag (: pH, 0), Lag (: pH, 1), Lag (: pH, 2), Lag (: pH, 3)… Lag (: pH, 9). Dans ce cas, Lag (: pH, 0) est la valeur à la ligne actuelle de la colonne pH, et Lag (: pH, 9) est la valeur 9 lignes au-dessus de la ligne actuelle (pour un total de 10 lignes).
Le deuxième problème est un peu délicat et il sera plus facile de le décomposer en deux étapes. À la première étape, nous créerons une colonne de formules pour marquer les grands intervalles de temps, puis à l'étape deux, nous ajouterons une deuxième formule qui marquera une plage de lignes après l'intervalle de temps.
La première étape consiste à créer une nouvelle colonne nommée «Time Gap», puis à ajouter une formule pour signaler les écarts lorsqu'ils durent plus de 5 secondes comme ceci:
: Horodatage - Décalage (: Horodatage, 1)> 5
Ou si vous voulez l'intensifier un peu, vous pouvez utiliser la fonction Différence de date comme ceci:
Différence de date (décalage (: Horodatage, 1),: Horodatage, "seconde")> 5
Dans ce cas précis, je voulais savoir quand des intervalles de temps de 5 secondes ou plus se produisaient; dans d'autres projets, je n'avais vraiment besoin que de savoir quand des écarts plus longs se produisaient.
La fonction Différence de date calcule la différence entre deux valeurs de date et renvoie le résultat en unités qui peuvent être spécifiées (par exemple, heure, minute, jour, semaine, année). Dans les deux cas, si la différence est supérieure à 30, la formule est évaluée comme «1» pour vrai et «0» pour faux.
Dans la deuxième étape, nous créons un nouveau nom de colonne «Gap Flag» et ajoutons une formule pour marquer 10 lignes suivant l'écart détecté dans la colonne d'intervalle de temps.
Sous forme de texte, la formule de la figure 2 est Summation (i = 0, 9, Lag (: Time Gap, i))> 0
Encore une fois, la fonction Summation (Figure 2) fonctionne comme une boucle itérative. Cette fois, il est combiné avec un argument conditionnel. Alors que «i» est compris entre 0 et 9, si la somme des valeurs de la colonne Time Gap est supérieure à 0, alors la formule est évaluée comme «1» pour vrai ou «0» pour faux. S'il y a au moins un «1» dans la colonne de temps d'intervalle pour les 30 lignes précédentes, la valeur de cette colonne d'indicateur est également 1.
Avec juste quelques petits ajustements, nous pouvons également faire en sorte que cette formule définisse la couleur du générateur de rangs. Pour utiliser cette formule, créez une nouvelle colonne et définissez le type de données sur "État de la ligne".
Si (Summation (i = 0, 9, Lag (: Time Gap, i))> 0,
État de la ligne () = État de la couleur ("rouge"),
État de la ligne () = État de la couleur ("bleu")
);
La fonction Summation est un outil important dans votre boîte à outils JMP, et elle peut vous faire gagner beaucoup de temps et d'efforts. Pour plus d'informations sur la syntaxe et l'utilisation de la fonction Summation, consultez Utilisation de JMP, les manuels de Scripting Guide et l'index de script - tous se trouvent dans le menu Aide de JMP.