| Conférencier |
Transcription |
| Mia Stephens |
Bienvenue au JMP Discovery Summit. Je m'appelle Mia Stephens et je suis chef de produit JMP. Je suis accompagnée de Jordan Hiller, ingénieur système. Aujourd'hui, nous allons parler de l'automatisation du workflow de curation des données. |
| |
Et ceci est le résumé juste pour référence ; je ne vais pas en parler. |
| |
Nous allons diviser cette présentation en deux parties. Je commencerai par aborder le workflow analytique. |
| |
Nous aborderons la création de données et ce que nous entendons par curation de données. Nous verrons également comment identifier les problèmes potentiels de qualité de vos données. |
| |
Et ensuite je vais céder la parole à Jordan, qui va parler du besoin de reproductibilité. |
| |
Il va partager avec nous une aide-mémoire pour la conservation des données et montrer comment... comment conserver vos données dans JMP. |
| |
l'enregistreur d'actions et le journal amélioré. |
| |
Parlons donc du flux de travail analytique. |
| |
Tout commence par un problème commercial que nous essayons de résoudre. |
| |
Et bien sûr, nous devons compiler des données, et vous pouvez compiler des données à partir de plusieurs sources différentes et importer les données dans un JMP. |
| |
Et au final, nous devons être capables de partager les résultats et de communiquer nos conclusions. Parfois, il s'agit d'un projet ponctuel. |
| |
Mais il arrive souvent que nous répétions des analyses. Une question centrale abordée dans cette conférence est donc : est-il facile de reproduire ses résultats ? |
| |
D'autres peuvent-ils reproduire vos résultats ? Ou, si vous disposez de nouvelles données ou de données mises à jour, pouvez-vous facilement répéter votre analyse, et notamment les étapes de curation des données, sur ces nouvelles données ? C'est ce que nous abordons dans cette présentation. |
| |
Mais qu’est-ce que la curation de données exactement ? |
| |
Et pourquoi devrions-nous nous en préoccuper ? |
| |
La curation des données consiste à garantir que nos données soient utiles pour générer des découvertes analytiques. Fondamentalement, nous devons être capables de résoudre les problèmes que nous cherchons à résoudre. |
| |
Et il s’agit en grande partie de l’organisation des données, de la structure des données et également du nettoyage des données. |
| |
Si vous pensez aux problèmes que nous pourrions rencontrer avec les données, ils ont tendance à se répartir en quatre catégories générales |
| |
il se peut que vous ayez un formatage incorrect, des données incomplètes, des données manquantes ou des données sales ou désordonnées. |
| |
Pour aborder ces questions, nous allons emprunter du contenu à STIPS. Si vous ne connaissez pas STIPS, sachez qu'il s'agit de notre cours gratuit « Pensée statistique pour la résolution de problèmes industriels ». |
| |
Et c'est un cours basé sur sept modules indépendants, et le deuxième module est l'analyse exploratoire des données. |
| |
Et en raison de la nature itérative et interactive de l'analyse exploratoire des données et de la conservation des données, la dernière leçon de ce modèle... dans ce module s'appelle Préparation des données pour l'analyse, nous empruntons donc largement à cette leçon tout au long de cet exposé. |
| |
Analysons chacun de ces problèmes. Formatage incorrect. Qu'entend-on par formatage incorrect ? Il s'agit de données dont la forme ou le format est inapproprié pour l'analyse. Cela peut concerner le tableau de données dans son ensemble. Par exemple, vous pourriez avoir |
| |
appelé...données stockées dans des colonnes séparées, mais vous avez en fait besoin des données stockées dans une seule colonne. |
| |
Il se peut également que vos données soient dans des tables de données distinctes et que vous ayez besoin de concaténer, de mettre à jour ou de joindre les tables de données ensemble. |
| |
Cela peut concerner des variables individuelles. Par exemple, votre type de modélisation peut être incorrect. Ou votre table de données peut contenir des dates, ce qui peut entraîner des colonnes de dates non formatées en jours, et l'analyse peut ne pas reconnaître ces données. |
| |
La mise en forme peut également être esthétique. Par exemple, si vous travaillez sur un grand tableau de données, vous pourriez avoir de nombreuses colonnes… |
| |
vous pourriez avoir des noms... des noms de colonnes qui ne sont pas vraiment reconnaissables et que vous voudriez peut-être changer. |
| |
Vous pourriez avoir beaucoup de colonnes que vous souhaiteriez regrouper pour rendre le tout un peu plus gérable. |
| |
Votre colonne de réponses pourrait se trouver tout à la fin du tableau de données et vous pourriez vouloir la déplacer vers le haut. Ainsi, des problèmes d'ordre esthétique ne gêneront pas nécessairement votre analyse, mais en les corrigeant, vous pourrez simplifier votre analyse. |
| |
On parle de données incomplètes lorsqu'il y a un manque de données. Il peut s'agir d'un manque de données sur des variables importantes. Par exemple, il se peut que vous n'ayez pas saisi de données sur des variables fondamentales pour résoudre le problème. Il peut également s'agir d'un manque de données sur une combinaison de variables. |
| |
Ainsi, par exemple, vous pourriez ne pas disposer de suffisamment d’informations pour estimer une interaction. |
| |
Ou bien, vous pourriez avoir une variable cible qui vous intéresse et qui est déséquilibrée, et donc étudier des défauts, par exemple. Cela pourrait ne représenter que 5 % de vos observations. |
| |
sont pour les défauts et vous pourriez ne pas avoir suffisamment de données, car vous savez, vous pourriez n'avoir qu'un très petit sous-ensemble de vos données |
| |
où le défaut est présent. Il se peut que vous ne disposiez pas de suffisamment de données pour comprendre les causes potentielles des défauts. Il se peut également que votre échantillon ne soit pas suffisamment grand, et que vous ne disposiez donc tout simplement pas de données suffisantes pour établir de bonnes estimations. |
| |
Les données manquantes se produisent lorsque des valeurs manquent pour des variables, et cela peut prendre plusieurs formes différentes. |
| |
Si vous manquez des données et que ces données... cette absence n'est pas aléatoire, cela peut entraîner un problème grave, vous pourriez donc avoir des estimations biaisées. |
| |
Si vous manquez des données de manière totalement aléatoire, cela peut ne pas être un problème si vous ne manquez que quelques observations, mais si vous manquez beaucoup de données, cela peut être problématique. |
| |
Des données sales et désordonnées surviennent lorsque des observations ou des variables présentent des problèmes. Il se peut que des valeurs soient incorrectes, voire tout simplement erronées. |
| |
Il peut y avoir des incohérences. Par exemple, des fautes de frappe ou des erreurs typographiques peuvent survenir lorsque les utilisateurs saisissent des informations différemment. |
| |
Les valeurs peuvent être inexactes. Par exemple, votre système de mesure peut présenter des problèmes. Il peut y avoir des erreurs, des fautes de frappe, ou des données obsolètes. |
| |
Les données obsolètes sont des données que vous possédez sur, par exemple, une installation ou une machine qui n’est plus en service. |
| |
Les données peuvent être obsolètes, vous pouvez donc avoir des données remontant à une période de deux ou trois ans, mais le processus peut avoir changé quelque part au cours de cette période, |
| |
Ce qui signifie que ces données historiques pourraient ne pas être pertinentes pour le processus actuel. Vos données pourraient être censurées ou tronquées. |
| |
Vous pouvez avoir des colonnes redondantes, c'est-à-dire des colonnes contenant essentiellement les mêmes informations. Vous pouvez également avoir des observations en double. |
| |
Les données sales ou désordonnées peuvent donc prendre de nombreuses formes différentes. |
| |
Alors, comment identifier les problèmes potentiels ? |
| |
Un bon point de départ consiste à explorer vos données. En effet, l'identification des problèmes vous conduit à les explorer, puis à les analyser. À mesure que vous explorez vos données, vous identifiez les éléments susceptibles de poser problème dans votre analyse. |
| |
Un bon point de départ consiste donc à analyser le tableau de données à la recherche de problèmes évidents. |
| |
Nous allons donc utiliser un exemple tout au long de cette conférence appelé Composants, et c'est un exemple du cours STIPS |
| |
Une entreprise produit des petits composants et rencontre des problèmes de rendement. Les données collectées portent sur 369 lots. Quinze caractéristiques ont été identifiées, et nous souhaitons les utiliser pour comprendre les causes profondes potentielles d'un faible rendement. |
| |
Ainsi, si l'on examine le tableau de données lui-même, on obtient des indices sur les problèmes de qualité des données que nous pourrions rencontrer. C'est un excellent point de départ (ajouté dans JMP 15). |
| |
Ce sont des graphiques d'en-tête. J'adore les graphiques d'en-tête. Ils permettent, pour une variable continue, d'afficher un histogramme, ce qui permet de visualiser le centrage, la forme et la dispersion de la distribution. |
| |
Ils affichent également la plage de valeurs. Si vous disposez de données catégorielles, un graphique à barres présentant les valeurs des barres les plus peuplées s'affiche. Examinons-en quelques-unes. Je commencerai par le numéro de lot. Ce numéro de lot affiche un histogramme de forme uniforme. |
| |
Les numéros de lot sont probablement un identifiant, donc dès le départ, je peux voir que ces données sont probablement codées de manière incorrecte. |
| |
Je peux voir que cette distribution est très asymétrique et je peux également voir que la valeur la plus basse est -6, et cela peut m'amener à me poser des questions sur la faisabilité d'avoir un nombre de ferraille négatif. |
| |
Le processus en est un autre. J'ai essentiellement deux barres et il m'affiche en fait un histogramme avec seulement deux valeurs. |
| |
Et pendant que je regarde ces graphiques à colonnes, ces graphiques d'en-tête, je peux regarder le panneau des colonnes, |
| |
Il est facile de constater que, par exemple, les numéros de lot, de pièce et de processus sont tous codés de manière continue. Lorsque vous importez des données dans JMP, si JMP détecte des nombres, il code automatiquement ces colonnes comme numériques continues. Ce sont donc des éléments que nous pourrions vouloir modifier. |
| |
Nous pouvons également examiner les données elles-mêmes. Par exemple, lorsque j'examine l'humidité (et le contexte est très important lorsqu'on examine les données), on considère l'humidité comme une donnée continue. |
| |
Mais j'ai quelques champs ici où j'ai N/A. |
| |
Si vous avez des données alphanumériques ou textuelles dans une colonne numérique, celle-ci sera codée comme nominale lors de l'extraction des données dans JMP. C'est donc un problème que nous allons devoir corriger dès le départ. |
| |
Je peux aussi consulter les autres colonnes. Par exemple, pour « Fournisseur », je constate qu'il manque des valeurs. Lorsque j'importe des données dans JMP, si des valeurs sont manquantes, |
| |
Cellules vides pour les données catégorielles : nous savons qu'il manque des valeurs. Je constate que certaines entrées ne sont pas cohérentes… pas cohérentes dans la manière dont les données ont été saisies. |
| |
Je commence donc à obtenir des indices sérieux sur certains problèmes potentiels liés à mes données. |
| |
Remarquez tous les points. La température est une variable continue et les points indiquent qu'il me manque des valeurs. La température est donc un élément essentiel pour mon analyse, mais cela pourrait poser problème. |
| |
Une extension naturelle de cette approche consiste à explorer les données, une variable à la fois. L'un de mes outils préférés pour commencer à analyser les données est la visionneuse de colonnes. Elle fournit des résumés numériques pour les variables sélectionnées. |
| |
S'il manque des valeurs, il y aura une colonne « N » manquante. Je constate ici qu'il manque 265 des 369 valeurs de température. Il s'agit donc d'une lacune importante si l'on considère que la température est un facteur important dans l'analyse. |
| |
Je peux également vérifier si j'obtiens des valeurs étranges. Ainsi, lorsque je consulte des éléments comme les valeurs minimales et maximales pour le nombre de rebuts et le taux de rebut, j'obtiens des valeurs négatives. Si ce n'est pas réalisable, alors j'ai un problème avec les données ou le système de collecte de données. |
| |
Il est également assez facile de détecter des erreurs de codage des variables. Par exemple, les numéros d'établissement et de lot, qui devraient probablement être codés comme nominaux, indiquaient une moyenne et un écart type. |
| |
Et une bonne façon de penser à cela est que s'il n'est pas physiquement possible d'avoir un numéro de lot moyen ou (le numéro de pièce était l'autre variable) ou un numéro de pièce, alors ceux-ci doivent être changés en variables nominales, au lieu de continues. |
| |
Les distributions sont le prochain endroit où je vais lorsque je me familiarise avec mes données. |
| |
Et les distributions, si vous avez des données continues, vous permettent de comprendre la forme, le centrage et la répartition de vos données, mais vous pouvez également voir si vous avez des valeurs inhabituelles. |
| |
Pour les données catégorielles, vous pouvez également voir le nombre de niveaux. Par exemple, le nombre de clients. Si le nombre de clients est une variable importante ou potentiellement importante, |
| |
J'ai de nombreux niveaux ou valeurs pour le numéro de client. Lors de la préparation des données, je souhaiterais peut-être les regrouper en quatre ou cinq catégories, avec une autre catégorie pour les clients dont je dispose de peu de données. |
| |
Humidité. On voit le problème avec la mention « N/A » dans la colonne. On voit un graphique à barres au lieu d'un histogramme. |
| |
Nous pouvons facilement voir ce que nous recherchions dans les données relatives aux fournisseurs. Par exemple, Cox Inc. et Cox, Anderson s'écrit de trois manières différentes, Hersh s'écrit de trois manières différentes. |
| |
Pour la vitesse, remarquez que nous avons une distribution en monticule qui va d'environ 60 à 140 mais, tout en bas, nous voyons qu'il y a une valeur ou deux |
| |
c'est assez proche de zéro, et cela pourrait être... cela pourrait être une erreur de saisie de données, mais c'est certainement quelque chose que nous voudrions enquêter. |
| |
Une extension de cette méthode consiste à analyser vos données avec deux variables à la fois, par exemple en utilisant Graph Builder ou des nuages de points. |
| |
Et lorsque vous regardez les variables deux par deux, vous pouvez voir des modèles et vous pouvez plus facilement voir des modèles inhabituels qui traversent plus d’une variable. |
| |
Par exemple, si je regarde le taux de rebut et le nombre de rebuts, je constate des variations. Il se peut que votre tableau de données contienne des éléments qui expliquent cette tendance. |
| |
Et dans ce cas, la bande est attribuée à différentes tailles de lots, donc cette bande violette correspond à une taille de lot de 5 000. |
| |
Et j'ai beaucoup plus de risques de rebuts avec un lot plus grand qu'avec un lot plus petit. Cela peut sembler logique, mais je vois aussi quelque chose d'illogique : ces deux valeurs ici, dans la plage négative. |
| |
Il est donc assez facile de les voir lorsque je regarde des données en deux dimensions. |
| |
Je peux ajouter une dimensionnalité supplémentaire à mes graphiques en utilisant des commutateurs de colonnes et des filtres de données. |
| |
Cela m'amène également à une analyse potentielle, donc je pourrais être intéressé à comprendre quels sont les x qui pourraient être importants, qui pourraient être liés au taux de rebut. |
| |
Parallèlement, il faut examiner les problèmes de qualité des données, qu'ils soient réels ou potentiels. Concernant le taux de rebut, il semble exister une relation positive entre la pression et le taux de rebut. |
| |
Il ne semble pas y avoir de lien significatif. Le taux de rebut par rapport à la température est assez stable, il ne se passe donc pas grand-chose. |
| |
Mais remarquez la vitesse. Il y a une relation négative, mais en haut, je vois ces deux valeurs : la première sur l'histogramme, mais une seconde valeur semble ressortir. |
| |
Il se pourrait donc que cette valeur autour de 60 soit simplement une valeur aberrante, mais elle pourrait aussi être un point valide. Je me demande probablement si ce point, proche de 0, est valide ou non. |
| |
Nous avons donc examiné le tableau de données. Nous avons examiné les données une variable à la fois, puis deux variables à la fois, et tout cela s'inscrit parfaitement dans l'exploration des données et nous conduit à l'analyse. |
| |
Il existe des outils plus avancés que nous pourrions utiliser (par exemple, explorer les valeurs aberrantes, explorer les valeurs manquantes) qui dépassent le cadre de ce cours ou de cet exposé. |
| |
Lorsque vous commencerez à analyser vos données, vous identifierez probablement d'autres problèmes. Par exemple, si vous avez de nombreuses catégories de variables catégorielles, |
| |
Si vous essayez d'intégrer une interaction dans un modèle de régression, JMP vous avertira que vous ne pouvez pas réellement le faire. Ainsi, lorsque vous commencez à analyser les données, ce processus est itératif et vous identifierez les problèmes potentiels tout au long du processus. |
| |
Il est essentiel de noter les problèmes rencontrés lors de l'analyse de vos données. Certains d'entre eux peuvent être |
| |
Corrigez-les au fur et à mesure, ce qui vous permet de masquer et d'exclure des valeurs, de les remodeler et de les nettoyer à nouveau. Vous pourriez également décider de collecter de nouvelles données. Vous pourriez envisager de réaliser un plan d'expérience pour renforcer la fiabilité des données. |
| |
Si vous savez que vous allez répéter cette analyse ou que quelqu'un d'autre voudra répéter cette analyse, |
| |
Ensuite, vous devrez vous assurer de bien enregistrer les étapes que vous suivez afin d'assurer la reproductibilité. Quelqu'un d'autre peut reproduire vos résultats, ou vous pouvez répéter votre analyse ultérieurement. Je vais donc céder la parole à Jordan, qui va vous expliquer. |
| |
Parlons de conservation de données reproductibles. |
| Jordan Hiller |
Ok, merci, Mia. |
| |
Bonjour, je suis Jordan Hiller. Je suis ingénieur système chez JMP. Explorons un peu plus la reproductibilité. |
| |
pour la conservation de vos données. |
| |
Mia a très bien présenté cette idée, mais donnons quelques détails supplémentaires. L'idée ici est de pouvoir facilement la reproduire. |
| |
Toutes les étapes de curation que nous utilisons pour préparer nos données à l'analyse présentent trois avantages principaux. Le premier est l'efficacité. Si vos données changent et que vous devez répéter ces étapes de curation sur de nouvelles données ultérieurement, |
| |
Il est bien plus efficace de l'exécuter une fois avec un script en un clic que de répéter toutes les opérations de pointer-cliquer. La précision est le deuxième avantage. Le pointer-cliquer peut être sujet à des erreurs, et en le transformant en script, vous garantissez une reproduction fidèle. |
| |
Enfin, il y a la documentation, un aspect peut-être sous-estimé. Si vous avez un script, il documente les étapes que vous suivez. |
| |
C'est une piste de miettes de pain que vous pouvez revisiter plus tard lorsque, inévitablement, vous devrez revisiter ce projet et vous rappeler, qu'est-ce que j'ai fait pour préparer ces données ? |
| |
Ce script est d'une grande aide. Aujourd'hui, nous allons étudier une étude de cas. Je vais vous montrer comment générer un script de curation de données reproductible. |
| |
En utilisant uniquement le pointer-cliquer. La technologie d'activation est une nouveauté de JMP 16 : le journal amélioré et l'enregistrement des actions qui y sont intégrés. |
| |
Voici donc ce que nous allons faire : nous allons effectuer nos activités de curation de données comme d'habitude, par simple clic. |
| |
le script dont nous avons besoin, le code informatique (il s'appelle code JSL, JSL pour le langage de script JMP) va être capturé pour nous automatiquement |
| |
dans le nouveau journal amélioré. Une fois la sélection pointer-cliquer terminée, il ne nous reste plus qu'à récupérer ce code et à l'enregistrer. Nous pourrions y apporter quelques ajustements, quelques modifications, pour le rendre plus performant, mais cette étape est facultative. |
| |
Voici un aide-mémoire que vous pouvez utiliser. Voici quelques-unes des opérations de nettoyage de données les plus courantes. |
| |
et comment les exécuter dans JMP 16 de manière à conserver une trace de votre script JSL dans le journal amélioré. Cela couvre des aspects tels que les opérations sur les lignes et les colonnes. |
| |
façons de modifier le tableau de données, toutes nos opérations de nettoyage de données et comment le faire par pointer-cliquer. |
| |
Ce n'est donc pas une liste exhaustive de tout ce que vous pourriez avoir besoin de faire pour nettoyer les données, et ce n'est pas non plus une liste exhaustive de tout ce qui est capturé dans le journal amélioré, mais ce sont les éléments les plus importants ici à portée de main. |
| |
Très bien, passons à notre étude de cas en utilisant ce fichier de composants que Mia a présenté et créons notre script de conservation de données dans JMP 16 en utilisant le journal amélioré. |
| |
Nous voici dans JMP 16. Il s'agit de la dernière version du programme d'adoption précoce de JMP 16 ; il s'agit donc d'une préversion. Cependant, je suis certain qu'elle sera très similaire à la version finale de JMP 16. |
| |
Donc, pour arriver au journal, |
| |
Je vais vous le montrer ici. Il est différent si vous êtes habitué au journal des versions précédentes de JMP. Il est divisé en deux panneaux : |
| |
OK, un panneau de messages en haut et un panneau de codes en bas. Nous allons y consacrer un peu de temps. Je vais vous montrer à quoi cela ressemble, mais je vais vous donner un aperçu rapide, si je devais effectuer quelques actions rapides, comme importer un fichier et éventuellement supprimer cette colonne. |
| |
Vous pouvez voir que ces deux étapes que j'ai effectuées (l'importation des données et la suppression de la colonne) sont répertoriées ici dans ce panneau de messages. |
| |
Et le code JSL dont nous avons besoin pour le script de curation de données reproductible se trouve ici, dans ce panneau inférieur. |
| |
c'est vraiment très excitant, la possibilité d'avoir simplement ce code et de le récupérer quand vous en avez besoin simplement en pointant et en cliquant est un énorme avantage dans JMP 16. |
| |
Dans JMP 16, cette nouvelle vue améliorée du journal est activée par défaut. Si vous souhaitez revenir à l'ancienne version du journal, ce simple journal texte, vous pouvez le faire ici, dans les préférences JMP. Il existe une nouvelle vue. |
| |
Vous pouvez également revenir à l'ancienne vue texte si vous le souhaitez. Lors de l'installation de JMP 16, la vue par défaut est la vue journal améliorée. Nous aborderons certaines de ces fonctionnalités plus tard, dans notre étude de cas. |
| |
Très bien, je vais donc m'en aller. |
| |
Pour l'instant, le journal est affiché dans le triangle rouge. Effacez le journal et commençons notre étude de cas. Importons les données des composants que Mia vous a présentées. Nous allons commencer avec ce fichier CSV. |
| |
Donc |
| |
Je vais effectuer l'importation la plus simple, en la faisant simplement glisser. Oh, j'en avais déjà une version ouverte. Excusez-moi, je vais commencer par fermer l'ancienne version. |
| |
et effacez le journal une fois de plus. |
| |
Ok, importation simple |
| |
en le faisant glisser dans la fenêtre JMP. Nous avons maintenant ce fichier, Composants A, avec 369 lots. Passons maintenant au nettoyage des données. Je vais activer |
| |
Les graphiques d'en-tête. La première chose que nous pouvons voir, c'est que la colonne « Installation » ne contient qu'une seule entrée, une seule valeur : FabTech. Il n'y a donc aucune variation, rien d'intéressant. Je vais simplement la supprimer d'un clic droit. |
| |
Et encore une fois, cela est capturé au fur et à mesure dans le journal amélioré. |
| |
Bon, quoi d'autre ? Imaginons que cette colonne de taux de rebut, vers la fin du tableau, soit très importante pour nous et que j'aimerais en voir une plus tôt. Je vais la déplacer en quatrième position. |
| |
En le saisissant dans le panneau des colonnes et en le faisant glisser juste après le numéro de client. Et voilà. |
| |
Mia a mentionné que cette colonne d'humidité est représentée de manière incorrecte lors de l'importation, principalement en raison de ces N/A |
| |
Il y a des caractères alphabétiques qui provoquent l'affichage d'une variable de type caractère. Corrigeons ce problème. Nous allons accéder aux informations de la colonne avec un clic droit ici. |
| |
Modifiez le type de données (de caractère à numérique) et le type de modélisation (de nominal à continu). Cliquez sur OK. Cliquez ensuite sur le journal. Vous constaterez que quatre étapes ont été enregistrées et que nous allons continuer. |
| |
Très bien, et maintenant ? Nous avons plusieurs variables à modifier : le numéro de lot, le numéro de pièce et le processus. Une fois ces trois variables sélectionnées, je fais un clic droit et je passe de continu à nominal. |
| |
Et tout cela a été corrigé. |
| |
Et encore une fois, nous pouvons voir que ces trois étapes sont enregistrées ici dans le journal. |
| |
Bon, quoi d'autre ? Autre chose, un peu esthétique : cette colonne « Pression ». Mes ingénieurs préfèrent que cette colonne s'appelle PSI. Nous allons donc la modifier en la sélectionnant et en saisissant PSI. Pour aller ailleurs, utilisez la touche Tab. Ce nom sera également enregistré dans le journal. |
| |
Le fournisseur. Mia nous a montré qu'il y avait des incohérences orthographiques. Il y a probablement trop de valeurs ici. Il faut corriger les valeurs des caractères. Si vous avez des valeurs de caractères incorrectes et incohérentes dans une colonne, pensez à l'outil de recodage. |
| |
L'outil de recodage est un moyen très efficace de résoudre ce problème. Avec un clic droit sur le fournisseur, nous accédons à la fonction de recodage. |
| |
Regroupons-les comme il se doit. Je vais commencer par quelques options de triangle rouge. Convertissons toutes les valeurs en majuscules. |
| |
Supprimons également cet espace blanc pour corriger les incohérences d'espacement. Cela a déjà corrigé quelques problèmes. Corrigeons tout le reste manuellement. Je vais regrouper les Anderson et les Cox. |
| |
Regroupez les Hershey. Trutna et Worley ont déjà raison avec une seule catégorie. Et la dernière correction que j'apporterai concerne les éléments qui sont simplement listés comme vides ou manquants. Je leur attribuerai une catégorie explicite. |
| |
étiquette manquante ici. |
| |
Très bien, et quand on clique sur recoder, |
| |
nous avons intégré ces correctifs dans une nouvelle colonne appelée fournisseur 2. |
| |
Cela ne contient que 1, 2, 3, 4, 5, 6 catégories corrigées et réduites. |
| |
Bien. |
| |
Bon, faisons un calcul. Nous allons calculer le rendement en fonction de la taille du lot et du nombre de pièces mises au rebut. |
| |
D'accord. Et oui, je sais que c'est un peu redondant. On a déjà le taux de rebut et le rendement est égal à 1 moins le taux de rebut, mais juste pour les besoins de l'argumentation, on va exécuter |
| |
Le calcul. Je souhaite donc que la colonne « rendement » soit insérée juste après le nombre supprimé. Je vais donc sélectionner le nombre supprimé, puis accéder au menu des colonnes et choisir « Nouvelle colonne ». |
| |
Nous allons appeler cette chose « yield ». |
| |
Et nous allons insérer notre nouvelle colonne après la colonne sélectionnée, après le numéro supprimé, et lui donner une formule pour calculer le rendement. |
| |
Nous avons besoin du nombre d'unités en bon état. Cela correspond à la taille du lot moins le nombre de pièces mises au rebut. |
| |
Voilà donc le nombre de bonnes unités et nous allons diviser ce tout par |
| |
la taille du lot. |
| |
Nombre de bonnes unités divisé par la taille du lot, c'est notre calcul de rendement. |
| |
Et cliquez sur OK. |
| |
Voici notre nouveau |
| |
Colonne de rendement. On voit que le taux de rebut est de 1 %. C'est… c'est bien, et ignorons, pour l'instant, que certains rendements sont supérieurs à 100 %. |
| |
Bon, on a presque terminé. Encore quelques modifications. J'ai remarqué que nous avons deux processus, et pour l'instant, ils sont simplement nommés processus 1 et processus 2. |
| |
Ce n'est ni très descriptif ni très utile. Donnons-leur des étiquettes plus descriptives. Le processus 1 sera appelé processus de production ; et le processus 2, processus expérimental. Nous utiliserons donc des étiquettes de valeur plutôt qu'un recodage. Je vais dans les informations de colonne. |
| |
et nous attribuerons des étiquettes de valeur à un et deux. |
| |
Un élément de cette colonne représentera la production. |
| |
Ajoutez cela. |
| |
Et deux représente l'expérimental. |
| |
Ajoutez cela. |
| |
Cliquez sur OK. Bien. Les graphiques d'en-tête affichent les valeurs 1 et 2, mais le tableau de données affiche les valeurs de production et expérimentales. |
| |
Très bien, une dernière étape avant de sauvegarder notre script. Admettons, pour les besoins de l'argumentation, que je ne m'intéresse qu'aux données… et que je souhaite poursuivre l'analyse uniquement lorsque le vide est désactivé. |
| |
Bon, je vais donc sous-ensembleer les données et créer une nouvelle table de données contenant uniquement les lignes où le vide est désactivé. Je fais un clic droit sur l'une des cellules dont le vide est désactivé. |
| |
et en sélectionnant les cellules correspondantes. |
| |
Cela sélectionne les 313 lignes où le vide est désactivé. Passons maintenant au sous-ensemble de la table. |
| |
créer une nouvelle table de données, que nous nommerons vac_off. |
| |
Cliquez sur OK. |
| |
Très bien, et voilà notre nouveau tableau de données avec 313 lignes affichant uniquement les données où le vide est désactivé. |
| |
Voilà, c'est tout. Nous avons terminé la sélection de nos données et revenons maintenant au journal pour en savoir plus sur ce que nous avons. |
| |
Ok, donc toutes ces étapes, ainsi que quelques autres que je n'avais pas l'intention de faire, ont été capturées ici dans le journal. |
| |
Regardez ici, nous avons... chaque ligne est l'une des étapes que nous effectuons. |
| |
Il y a aussi des éléments superflus, comme à un moment donné où j'ai effacé la sélection de lignes. Je n'en avais pas vraiment besoin… Je n'ai pas vraiment besoin d'inclure cela dans mon script. |
| |
J'efface les lignes sélectionnées. Supprimons-les. Je fais un clic droit dessus et je les efface. C'est bon. |
| |
OK, donc les messages sont ici en haut, et le code JSL en bas. J'aimerais attirer votre attention sur l'origine et le résultat. C'est plutôt astucieux. |
| |
À chaque étape, à chaque action effectuée par pointer-cliquer, nous exécutons cette action sur un élément et obtenons un résultat. Voilà donc l'origine et le résultat. Par exemple, lorsque nous avons supprimé la colonne « Installation »… |
| |
Bon, c'est peut-être un mauvais exemple… choisissons plutôt de modifier les informations de la colonne d'humidité. L'origine, c'est ce sur quoi nous l'avons fait. |
| |
Il s'agissait de la table Composants A, répertoriée ici comme table de données. En la survolant, on voit apparaître « Afficher les composants A au premier plan ». En cliquant dessus, on accède à la table Composants A. Très bien. |
| |
Le résultat est une modification apportée à la colonne humidité. Nous avons modifié l'humidité. Nous avons opté pour un type de données numérique et un type de modélisation continu. Voyez cela ci-dessous. |
| |
Je peux donc cliquer ici, accéder à la colonne humidité, et… elle est mise en surbrillance, elle est sélectionnée. JMP sélectionne la colonne humidité. |
| |
Vert partout, sauf ce dernier résultat en bleu. Ceci nous permet de suivre nos activités sur différentes tables de données. Nous avons effectué toutes ces activités sur la table de données Composants A. |
| |
Et pour notre dernière activité, nous avons réalisé un sous-ensemble de la table de données Components A. Le résultat est une nouvelle table de données appelée vac_off. vac_off est donc en bleu. Nous pouvons donc utiliser ces couleurs pour vous aider à suivre les opérations. |
| |
Très bien, la dernière fonctionnalité que je veux vous montrer ici dans le journal, c'est... c'est |
| |
Ce filtre est utile si vous avez une longue série d'étapes et que vous n'avez besoin d'en trouver qu'une seule. Imaginons que je souhaite trouver le sous-ensemble. Le voici. Nous avons trouvé la table de données du sous-ensemble et je peux accéder directement au code dont j'ai besoin. |
| |
Voilà, c'est tout ce dont nous avons besoin. Nos étapes de curation des données ont été capturées. Pour créer un script de curation des données reproductible, il suffit d'accéder au triangle rouge et d'enregistrer le script dans une nouvelle fenêtre. |
| |
L'étape d'importation, l'étape de suppression de colonne et l'étape de modification du taux de rebut sont toutes présentes dans le script. |
| |
Nous disposons de la coloration syntaxique pour faciliter la lecture du script. Nous disposons également de nombreux commentaires utiles qui nous indiquent précisément ce que nous faisions à chaque étape. |
| |
Voilà, c'est tout. C'est tout ce dont nous avons besoin et je vais l'enregistrer sur mon bureau sous le nom « Importer et nettoyer »… appelons-le « Importer et organiser les composants ». |
| |
Voilà, c'est notre script de curation de données reproductible. Donc, si je retourne à la fenêtre d'accueil de JMP et que je ferme tout sauf notre nouveau script, |
| |
Voici comment procéder si je dois répéter ces étapes de curation des données. Je viens d'ouvrir le fichier script et je peux l'exécuter en cliquant sur le bouton « Exécuter le script ». Les données sont ouvertes, le nettoyage est effectué, le sous-ensemble est créé et un nouveau fichier de données de 313 lignes est créé. |
| |
Imaginons maintenant que nous devons rejouer cela sur de nouvelles données. |
| |
J'ai une autre version du fichier Components. Elle s'appelle Components B. Elle contient 50 lignes supplémentaires, soit 419 lignes au lieu de 369. Imaginez que nous ayons exécuté le processus sur 50 lots supplémentaires et que nous ayons plus de données. |
| |
Il s'appelle Composants B, et je souhaite exécuter ce script sur les composants B. Vous remarquerez que le composant A est appelé plusieurs fois tout au long du script. Il nous suffit donc de rechercher et de remplacer Composants A par Composants B. C'est parti. Édition. |
| |
Recherche. |
| |
Nous allons trouver les composants A, les remplacer par les composants B. Remplacez tout. 15 occurrences ont été remplacées. |
| |
Vous pouvez le voir ici et ici. |
| |
Il suffit maintenant de réexécuter le script, et la nouvelle version des données apparaît. Vous pouvez voir qu'il y a plus de lignes ; en fait, c'était erroné. Il y en avait 313 auparavant, il y en a 358 maintenant. |
| |
Très bien, donc un script de conservation de données reproductible qui peut s’exécuter sur de nouvelles données. |
| |
Bon, voici à nouveau cette aide-mémoire. Elle sera incluse dans les documents que nous inclurons dans la présentation, afin que vous puissiez y accéder et la retrouver. Elle vous explique comment pointer et cliquer pour gérer vos données et créer un script de curation de données agréable, rejouable et reproductible. |
| |
Ce script que nous avons créé ne nous a pas demandé de coder du tout, mais je vais vous donner juste une poignée de conseils, quatre conseils que vous pouvez utiliser |
| |
Pour améliorer légèrement les scripts, la première astuce consiste à insérer cette ligne au début de vos scripts. C'est une bonne pratique pour tous vos scripts. Insérez simplement les noms de ligne par défaut ici. |
| |
Cela permet d'empêcher votre script d'interagir avec d'autres scripts. C'est ce qu'on appelle une collision d'espaces de noms, et vous n'avez pas besoin de comprendre son fonctionnement, il suffit de l'appliquer. C'est une bonne pratique de programmation. |
| |
Le deuxième conseil est de s’assurer qu’il y a des points-virgules entre les expressions JSL. |
| |
Le journal amélioré le fait automatiquement. Il place le point-virgule obligatoire entre chaque étape. Cependant, si vous effectuez vous-même des modifications, assurez-vous que ces points-virgules sont correctement placés. Un conseil : |
| |
ajouter des commentaires. |
| |
Les commentaires sont un moyen de laisser des notes dans le programme, sans perturber le fonctionnement. |
| |
Laissez dans le programme des éléments qui ne seront pas interprétés par l'interpréteur JSL. Le journal amélioré contient également des notes… l'enregistrement des actions dans le journal amélioré vous les a laissées, mais vous pouvez les modifier et les compléter si vous le souhaitez. Voici donc les points principaux concernant les commentaires. |
| |
Le format typique est composé de deux barres obliques, et tout ce qui suit constitue un commentaire. Vous pouvez donc l'insérer en début ou en fin de ligne. L'interpréteur exécutera donc cette expression JSL X = 9, mais ignorera ensuite tout ce qui suit les barres obliques. |
| |
Si votre commentaire est plus long, vous pouvez également utiliser ce format : un /* au début et un */ à la fin. Cela encadre le commentaire. Les commentaires sont donc utiles pour prendre des notes, mais aussi pour déboguer votre script JSL. |
| |
Si vous souhaitez supprimer une ligne de code et l'empêcher de s'exécuter, il vous suffit de la préfacer de ces deux barres obliques. Si vous souhaitez effectuer cette opération pour un morceau de code plus important, vous pouvez utiliser ce format. Il est donc utile de savoir comment utiliser les commentaires. |
| |
Mon dernier conseil est de généraliser les références aux tables de données. Vous souvenez-vous de la recherche et du remplacement nécessaires pour exécuter ce script sur un nouveau fichier nommé « Composants B » ? |
| |
Nous avons dû modifier 15 instances dans la table de données, dans le script. Ne serait-il pas préférable de n'avoir à le faire qu'une seule fois, au lieu de 15 ? Cela vous permettra de renforcer la robustesse de vos scripts. |
| |
En généralisant les références des tables de données. Au lieu d'utiliser les noms, nous utiliserons une variable JSL pour stocker ces noms de tables. Voici de quoi je parle. Je vais vous montrer un exemple. |
| |
Sur la gauche se trouve un code généré par l’enregistrement des actions dans le journal amélioré. |
| |
Nous ouvrons la table de données Big Class. Nous gérons la colonne Âge, la modifions en modélisation continue, puis créons une nouvelle colonne calculée. |
| |
à l'ouverture, nous l'utilisons pour effectuer le changement sur la colonne d'âge, et nous l'utilisons ici. |
| |
C'est très simple, ce que vous devez faire pour rendre cela plus robuste et généralisé. |
| |
Vous devez effectuer trois changements. |
| |
Pour ce premier changement, nous lui attribuons un nom. J'ai choisi BC ; vous pouvez choisir ce que vous voulez. Vous verrez souvent DT. |
| |
BC est le nom que nous utiliserons pour désigner cette table de données Big Class dans la suite du script. Ainsi, lorsque nous souhaitons modifier l'âge, |
| |
l'âge désigne le tableau de données de la Colombie-Britannique et la colonne d'âge dans ce tableau de données. |
| |
Ici, nous envoyons un message à la table de données Big Class, et c'est ce que signifie la syntaxe à double flèche. Nous généralisons donc cela pour utiliser le nouveau nom pour envoyer ce message. |
| |
à la table de données. Si nous devons exécuter ce script sur une nouvelle table de données portant un nom autre que « Grande Classe », voici la seule modification à apporter : il suffit de modifier un seul emplacement dans le script. Nous n'avons pas besoin d'effectuer de recherche et de remplacement. |
| |
Après ces quatre conseils, si vous êtes prêt à passer au niveau supérieur avec votre script de curation, voici quelques étapes. Vous pouvez ajouter un sélecteur de fichiers. Cela ne demande pas beaucoup de codage. |
| |
pour le modifier afin que lorsque quelqu'un exécute ce script, il puisse simplement accéder au fichier sur lequel il souhaite l'exécuter au lieu de devoir modifier le script manuellement. |
| |
C'est donc une bonne idée. Si vous souhaitez distribuer le script à d'autres utilisateurs de votre organisation, vous pouvez l'intégrer dans un module complémentaire JMP. Ainsi, les utilisateurs pourront l'exécuter simplement en le sélectionnant dans un menu de JMP. |
| |
Très pratique. Enfin, si vous devez exécuter ce script de curation selon un calendrier afin de mettre à jour une table de données JMP principale conservée sur le réseau, vous pouvez utiliser le planificateur de tâches sous Windows ou l'Automator sous Mac OS pour le faire selon un calendrier. |
| |
Donc, en résumé, Mia a expliqué comment effectuer la curation de vos données en explorant les données et en itérant pour identifier les problèmes. |
| |
Si vous automatisez ces étapes, vous bénéficierez des avantages de la reproductibilité, à savoir l’efficacité, la précision et la documentation de votre travail. |
| |
Pour ce faire dans JMP 16, il vous suffit de pointer et de cliquer comme d’habitude et vos étapes de conservation des données sont capturées par l’enregistrement des actions qui se produit dans le journal amélioré. |
| |
Enfin, vous pouvez exporter et modifier ce code JSL depuis le journal amélioré afin de créer votre script de curation de données reproductible. Ceci conclut notre présentation. Merci beaucoup pour votre temps et votre attention. |