Pour quiconque effectue une analyse de données, il est courant de consacrer une grande partie de son temps au nettoyage des données. Les données réelles sont des données sales. Même si vous utilisez des outils de collecte automatisés, des erreurs, des anomalies et des incohérences persisteront dans vos données.
Au cours des prochains articles de blog, j'aimerais vous montrer quelques techniques simples pour améliorer l'intégrité des données. Je vais parler de ce qu'il faut rechercher et comment le faire en utilisant JMP . Dans de nombreux cas, JMP dispose de toutes les fonctionnalités dont vous avez besoin pour effectuer cette tâche. Dans quelques cas, j'ai mis en place des scripts pour aider au nettoyage. Je vais rendre ces scripts disponibles dans le Communauté d'utilisateurs JMP .
Pour mettre le nettoyage des données en contexte, considérez trois endroits généraux où des problèmes peuvent survenir. Le premier endroit où vous pourriez rencontrer des problèmes est lors de la construction de votre ensemble de données. Les délimiteurs manquants, les noms de colonne incohérents et les horodatages désynchronisés rendront plus difficile l'accès, la concaténation et la jonction des données. Une fois que les données sont dans un jeu de données JMP, vous rencontrez un autre ensemble de problèmes: types de données ou de modélisation incorrects, colonnes sans valeur, codes d'erreur et valeurs mal orthographiées sont courantes. Enfin, au cours du processus d’analyse, vous constaterez peut-être que vous devez supprimer les valeurs éloignées, transformer les colonnes ou regrouper les niveaux de variable.
Commençons au milieu, le deuxième domaine mentionné ci-dessus. Vous avez créé votre ensemble de données, mais vous devez le nettoyer avant l'analyse. Je suppose que c'est là que vous rencontrerez la plupart de vos problèmes. Pour commencer, nous allons nous concentrer sur la suppression des colonnes inutiles et sur la correction des types de données et de modélisation. Une grande partie de cela peut être accomplie uniquement avec le visualiseur de colonnes.
Pour illustrer mon propos, je vais utiliser les données que j'ai téléchargées du site Web de la US Environmental Protection Agency pour: économie de carburant automobile . Sept feuilles de calcul Excel distinctes (une pour chaque année de l'ensemble de données) ont été téléchargées et concaténées. Tu peux trouver les données dans la communauté d'utilisateurs JMP.
La première chose à faire est de supprimer les variables peu ou pas renseignées. Les colonnes où toutes les valeurs sont identiques (ou manquantes) sont des candidats idéaux. Utilisation du visualiseur de colonnes (sous le menu Cols):
Filtrez uniquement les valeurs catégorielles en décochant Continu . (C'est le même éditeur de colonnes que l'on peut trouver dans toutes les boîtes de dialogue de la plate-forme.)Sélectionnez toutes les colonnes et cliquez sur Afficher le résumé .Faites un clic droit dans le tableau sous Statistiques sommaires et choisir Trier par colonne… Sélectionner N Catégories et vérifier le Ascendant Toutes les colonnes que vous sélectionnez dans le tableau récapitulatif seront simultanément sélectionnées dans le tableau de données parent. Cela facilite de nombreuses opérations de colonne, en vous permettant de présélectionner des colonnes avec des propriétés particulières avant d'effectuer les opérations.

Figure 1. Le filtre Visionneuse de colonnes peut être utilisé pour identifier rapidement les colonnes de table de données avec des propriétés spécifiques.

Figure 2. Les colonnes sélectionnées dans la fenêtre de résumé de l'afficheur de colonnes sont également sélectionnées dans le tableau de données.
Notez que les trois premières colonnes ont toutes les valeurs manquantes et peuvent être supprimées. Une fois que vous les avez sélectionnés, Cols> Supprimer des colonnes va les supprimer de la table de données. Notez que les colonnes supprimées ne seront pas supprimées du tableau récapitulatif, il peut donc être judicieux de réexécuter Afficher le résumé (n'oubliez pas de resélectionner toutes les colonnes). Vous pouvez ranger le rapport en supprimant l’ancien tableau de synthèse (regardez sous le point chaud situé à côté de la Statistiques sommaires Titre).
Les 10 prochaines colonnes ont une seule valeur. La décision de les conserver dépend de la proportion de valeurs manquantes dont ils disposent et de si vous pensez que leur identification fournit des informations supplémentaires. Deux des colonnes, Supprimé? et Police / Emerg? n'ont pas de valeurs manquantes (toutes les lignes sont identiques), elles peuvent donc être supprimées en toute sécurité. Sept des huit colonnes restantes sont pour la plupart manquantes (> 99,997%) et pourraient être de bons candidats à l'élimination. La colonne restante Glouton? a environ 5% de non-disparus et pourrait être utile de garder. (Je suppose que toutes les colonnes ne font pas partie d'une variable qui a été divisée en plusieurs colonnes. Je parlerai de la recherche et de la résolution de cette situation dans un post ultérieur.)
Dans les exemples à une catégorie ci-dessus, la majorité des données étaient manquantes. Si, toutefois, la plupart des données étaient non manquantes, un argument similaire peut être utilisé pour justifier le moment où une colonne doit être supprimée. Si une colonne est composée d'une seule valeur, mais qu'elle contient une proportion suffisamment grande de valeurs manquantes, vous pouvez envisager de la conserver. Où ces valeurs manquantes sont peut-être vous dire quelque chose.
Nous pouvons également supprimer les colonnes multi-catégories avec un haut degré de manque. Pour ce faire, cliquez avec le bouton droit de la souris et triez le tableau de synthèse par N manquant . Ne pas vérifier le Ascendant case cette fois-ci, car vous ne voulez considérer que les colonnes dont les valeurs manquent en grande partie. Étant donné que ces colonnes ont plusieurs catégories, vous pouvez également les examiner plus en détail. Pour ce faire, sélectionnez-les dans le tableau récapitulatif et cliquez sur le bouton Distribution bouton. Comme auparavant, vous devrez décider quelle proportion de valeurs non manquantes justifie le maintien de la colonne.
Lorsque vous avez terminé avec les données catégoriques, vous pouvez effectuer les mêmes opérations avec les données continues. Dans la boîte de dialogue contextuelle du filtre, resélectionnez Continu et désélectionner Ordinal et Nominal (rappelez-vous que tenir le Alt avant de cliquer sur le point d'accès vous permet d'effectuer plusieurs sélections). Après avoir affiché le résumé, triez par ordre croissant Std Dev (c'est à l'extrême droite). Les colonnes où Std Dev égal à zéro n'a qu'une seule valeur. Il devrait y avoir un seul ( Peigne CO2 Arrondi Ajusté ). Trier par N manquant pour trouver les colonnes dont les valeurs manquent pour la plupart.
Une fois que vous avez terminé de supprimer les colonnes inutiles, vous pouvez passer à la vérification des types de données et de modélisation. Lorsque JMP lit initialement des données provenant d’autres sources, les colonnes contenant uniquement des chiffres reçoivent la Numérique type de données et Continu type de modélisation. Sinon, ils se voient attribuer le Personnage type de données et Nominal type de modélisation. Parfois, JMP définira une colonne sur Numérique même quand il a quelques valeurs de caractères. Si cela se produit, vous recevrez un message d'avertissement semblable à celui de la figure 3.

Figure 3. Message d'avertissement lorsque les valeurs de caractère sont définies comme manquantes.
Bien que les valeurs par défaut dans JMP fonctionnent bien dans la plupart des cas, vous devez connaître certaines situations. Tout d’abord, si une colonne numérique contient du texte étranger - «NA», codes d’erreur, symboles pour signaler des observations inhabituelles, etc. - la colonne peut être lue comme Personnage / Nominal . Deuxièmement, les valeurs numériques peuvent correspondre à codé des valeurs et non mesuré valeurs. Dans ces situations, vous voudrez traiter le type de modélisation comme Nominal . Enfin, dans certaines situations, les valeurs catégoriques mesurées doivent être traitées comme des valeurs ordinales. Heureusement, il existe relativement peu de cas où il existe une différence entre la modélisation avec Nominal données et modélisation avec Ordinal Les données.
Nous pouvons donc continuer à travailler avec Columns Viewer; notre prochaine tâche sera de trouver des colonnes numériques catégoriques. (Nos autres tâches devront attendre le prochain post.)
Pour localiser ces colonnes:
Créez un résumé de toutes les colonnes continues dans l'afficheur de colonnes.Sous le Statistiques sommaires point chaud, sélectionnez Vue de la table de données.Sélectionnez tous les Numérique colonnes et changer leur type de modélisation à Ordinal . J'aime utiliser Ordinal car la plupart des données seront initialement Continu ou Nominal . En le rendant ordinale, il me fait savoir que c’est Numérique , mais j’envisage de le rendre catégorique. Assurez-vous que toutes les colonnes du Sélecteur de vue de colonnes sont sélectionnés et cliquez Afficher le résumé . Si vous avez un vide Sélecteur de vue de colonnes dans le filtre Columns Viewer, réactivez Ordinal.Cliquez avec le bouton droit de la souris dans le résumé et choisissez Transformer en table de données. Puisque vous avez déjà une vue de données, vous n'avez pas besoin d'en créer une autre.Mettez à jour le tableau de l'étape 2 avec le tableau de l'étape 4. Match par la colonne nommée Les colonnes .Sélectionnez la table que vous avez créée à l'étape 2. Aller à Tableaux> Mise à jour Sélectionnez la table que vous avez créée à l’étape 4 dans la liste et cochez la case correspondante. Match colonnes En supposant que vous n’ayez modifié aucun nom de colonne, sélectionnez les colonnes. Les colonnes de chaque table et cliquez Rencontre . Vos résultats seront similaires à ceux de la figure 4.Cliquez sur D'accord .Trier par N Catégories .
Figure 4. Utilisation de la mise à jour avec les colonnes correspondantes.
Comme pour la table récapitulative dans la fenêtre de rapport, la table résultante est liée à la table de données à partir de laquelle elle a été créée. Étant donné que vous utilisez une vue de données, vous devrez peut-être désélectionner les colonnes précédemment sélectionnées dans la table de données parent. Pour rechercher des variables catégorielles, recherchez les colonnes contenant un petit nombre de catégories et / ou dont la valeur Min est proche de 0.
Bien que cette méthode de recherche de données numériques catégoriques soit loin d’être parfaite, elle constitue un début rapide et facile. Vous pouvez effectuer une vérification simple en sélectionnant des lignes dans la table de données récapitulative, en retournant à la table parent, puis en exécutant Distribution sur les colonnes sélectionnées. Si vous faites cela avec des colonnes ayant N Catégories égal à 6 ou moins, vous remarquerez que certaines des colonnes contiennent des valeurs avec des décimales. Bien qu'il aurait été intéressant d'exclure ces colonnes dès le départ, Columns Viewer ne le fournit pas pour le moment. Nous allons donc procéder avec un peu de script.
Nous en reparlerons et plus encore la prochaine fois.