Une bonne requête peut vous préparer au succès
Niveau : Débutant
Brian Corcoran, directeur de la recherche et du développement JMP, SAS
JMP offre plusieurs façons d'intégrer une grande variété de formats de données dans le produit. La raison est évidente : de nombreux outils ont été développés au fil des ans pour collecter et formater les données. Dans la plupart des cas, ces outils ne permettent pas de convertir les données en tables de données JMP. Il est nécessaire de les importer dans JMP pour les analyser. Dans d'autres cas, les données peuvent se trouver dans une base de données et être extraites avant de commencer. L'intégration des données peut prendre un temps précieux. JMP a évolué au fil des ans pour intégrer de puissantes fonctionnalités d'acquisition de données afin de vous faciliter la tâche.
Cet article propose un bref aperçu de l'utilisation des fonctionnalités du Générateur de requêtes de JMP, ainsi qu'un exemple simple d'utilisation de l'Assistant Excel. Il montre également que le chemin parcouru peut être gratifiant, car la préparation de la requête elle-même permet d'obtenir des informations sur les données. Bien que la version Windows soit utilisée pour les captures d'écran de bureau, toutes les fonctionnalités présentées ici sont également disponibles dans la version Mac de JMP. JMP 14 a été utilisé, mais JMP 13 permet également toutes les fonctionnalités présentées.
Cet article présente un cas d'utilisation hypothétique. Imaginez que vous étudiez les tendances mondiales et que la base de données de la Banque mondiale fournit souvent des informations précieuses. Un collègue vous informe que les données de l'Indicateur du développement mondial 2017 sont récemment disponibles et qu'il les a intégrées à la base de données SQL Server de l'entreprise. Il s'agit d'une table volumineuse, contenant plus de 400 000 observations et 62 colonnes. [1] Ouvrez JMP, sélectionnez Fichier->Base de données->Générateur de requêtes, puis ouvrez votre connexion à la base de données et pointez sur la table. Dans le premier écran du Générateur de requêtes, sélectionnez la table world_bank comme table principale et utilisez « Instantané de table » pour l'examiner :
Query Builder Table SnapshotInstantané de la table du générateur de requêtesInstantané de la table du générateur de requêtes
Le format est quelque peu étrange, du moins pour un utilisateur JMP classique. Il comporte quatre variables ou colonnes pour les informations par pays, puis une colonne pour chaque année de données. Les lignes présentent ce qui semble être une région, puis les données mesurées. À certains égards, cela semble contraire à ce que l'on pourrait attendre d'un tableau JMP classique. Le nom du pays « Monde arabe » semble représenter une région, ce qui est également source de confusion. Si vous cliquez sur le bouton « Importer maintenant », le tableau s'affiche et les choses deviennent plus claires. En faisant défiler jusqu'au milieu, vous pouvez voir que les lignes commencent par le pays en question, puis suivent les données relatives à un sujet particulier, comme « Population rurale ». Tout est trié par pays, ce qui ne semble pas intuitif.
Immediate Import Table AppearanceApparence du tableau d'importation immédiateApparence du tableau d'importation immédiate
Reprenons. Cette fois, nous pouvons sélectionner « Créer une requête » plutôt que « Importer maintenant ». Nous savons que nous voulons les quatre premières variables avec les informations sur le pays. Nous pouvons donc les sélectionner et cliquer sur « Ajouter » dans l'onglet « Colonnes incluses » du panneau de sélection des colonnes du Générateur de requêtes. Il y a beaucoup de données ici ; nous allons donc nous concentrer sur les variables pour la période 2010-2017. À ce stade, la partie supérieure de la boîte de dialogue ressemble à ceci :
Initial Column SelectionSélection initiale de la colonneSélection initiale de la colonne Nous n'avons pas encore vraiment amélioré notre situation. Nous pouvons maintenant déplacer la variable « Code indicateur » dans le volet « Trier par » du Générateur de requêtes. Cela organisera les données par sujet étudié, plutôt que par région ou pays. Cela semble plus intuitif pour l'analyse.
Ordered by Indicator CodeClassé par code indicateurClassé par code indicateur
Les données présentent encore des problèmes. Premièrement, elles comportent des regroupements régionaux qui ne présentent aucun intérêt pour le moment. Comment exclure ces données agrégées ? Par ailleurs, quelle serait la meilleure façon d'interroger un élément spécifique, comme la « consommation d'engrais » ?
Il serait certainement possible d'importer toutes les données dans JMP, puis de supprimer les regroupements régionaux si nous ne trions pas par « code indicateur ». Cependant, cela représente une charge pour la personne qui analyse les données. Si cette personne n'a pas configuré la requête, cela pourrait prêter à confusion. Dans la requête, il serait possible de simplement sélectionner les pays qui nous intéressent. Et si nous voulions tous les pays de l'Union européenne ? (J'allais utiliser l'Amérique du Nord, mais la définition de la Banque mondiale ne comprend que les États-Unis, les Bermudes et le Canada !) Nous pourrions les sélectionner manuellement, mais il existe une meilleure méthode. Pour ce faire, nous allons rapidement appeler un autre outil de JMP : l'Assistant Excel.
Dans ce scénario, supposons que nous utilisions fréquemment des données de la Banque mondiale. Les codes pays sont importants, mais peu intuitifs. Les tableaux utilisent souvent ces codes sans préciser le nom complet du pays, comme vous pouvez le constater en consultant le site web. Il peut être utile de les inclure dans un tableau séparé. Un tel tableau existe et est facilement importable depuis le site web sous forme de fichier Excel. Dans ce cas, ouvrez l'assistant Excel sur le tableau des pays et des codes pays. Le site web de la Banque mondiale les regroupe dans un tableau peu clair appelé CLASS.xls, mais vous pouvez le renommer. Ce fichier contient deux tableaux : « Liste des économies » et « Groupes ». Examinons « Groupes » :
Preview of Groups Table in Excel FileAperçu du tableau des groupes dans un fichier ExcelAperçu du tableau des groupes dans un fichier Excel
Voici le groupement pour le Monde arabe, que nous avons vu dans les données du Générateur de requêtes. Cela semble prometteur, mais en faisant défiler la page vers le bas, l'Europe n'apparaît pas encore, car l'aperçu se termine à 100 lignes. Sélectionnez « Afficher toutes les lignes » pour tout afficher, y compris « Europe et Asie centrale », « Europe » et « Union européenne ». Le groupe « Union européenne » contient les codes pays de tous les pays actuellement membres de l'Union. Pouvons-nous l'utiliser pour sélectionner les pays dans le Générateur de requêtes ? La réponse est oui. Extrayons donc uniquement le groupe dont nous avons besoin. Pour ce faire, sélectionnez la première ligne de l'aperçu contenant « Union européenne », puis appuyez sur le signe plus vert à côté de « Début des données à la ligne ».
Select the First Row in “European Union”Sélectionnez la première ligne dans « Union européenne »Sélectionnez la première ligne dans « Union européenne »
Cliquez maintenant sur le bouton « Suivant » de la boîte de dialogue, sélectionnez la dernière ligne « Union européenne » et appuyez sur le signe plus vert à côté de « Les données se terminent par la ligne ». Cela réduit les données aux seuls pays qui nous intéressent.
Nous pouvons maintenant sélectionner « Importer » et obtenir une ligne contenant 28 entrées pour les pays de l'Union européenne. Nous allons enregistrer la table JMP obtenue sous le nom « EU.jmp ».
Revenons maintenant au Générateur de requêtes. Nous aurions pu sélectionner les pays qui nous intéressent en utilisant une procédure fastidieuse de sélection dans une liste par « Nom du pays » ou « Code pays ». Cependant, le Générateur de requêtes dispose d'un puissant filtre appelé « Correspondance des valeurs de colonne ». Pour l'utiliser, glissez d'abord « Code pays » dans le panneau « Filtres » . Une longue liste contenant tous les codes apparaîtra. Sélectionnez ensuite le triangle rouge « t1.Code pays » comme type de filtre , puis « Correspondance des valeurs de colonne ». Une boîte de dialogue affichant les noms des tables JMP ouvertes s'affichera. « EU.jmp » étant toujours ouvert, il apparaît dans la liste. Sélectionnez-le, ainsi que la variable ( Code pays ) à laquelle vous souhaitez faire correspondre les données. Il est également important de sélectionner « Toutes les lignes » dans la liste déroulante, plutôt que « Lignes sélectionnées », car nous souhaitons afficher tous les pays.
Selecting the Match Column Values filterSélection du filtre Correspondance des valeurs de colonneSélection du filtre Correspondance des valeurs de colonne
Cela réduira nos résultats aux seules observations impliquant un pays de l'UE. Il n'y a pas vraiment de solution miracle. Nous créons une clause WHERE/IN pour remplacer les codes pays. Si vous consultez le volet SQL du générateur de requêtes, vous pouvez voir le code SQL généré par JMP :
Generated SQLSQL généréSQL généré
Nous espérons avoir grandement simplifié le processus. Maintenant que nous avons réduit les données à ce qui nous intéresse vraiment, il serait judicieux de faciliter la sélection des informations spécifiques à analyser. Pour ce faire, nous pouvons faire glisser « Nom de l'indicateur » vers le panneau « Filtres » . Nous pourrions cliquer sur l'élément qui nous intéresse ici, puis exécuter la requête, mais une interface plus interactive serait appréciable pour tous les utilisateurs. Nous pouvons cliquer sur le triangle rouge de « t1.Nom de l'indicateur » et sélectionner « Demander à l'exécution ». Une boîte de dialogue s'affichera alors pour indiquer le titre de l'invite à l'utilisateur final.
Prompt on RunInvite à l'exécutionInvite à l'exécution
En cliquant sur le bouton « Exécuter la requête » , la liste des éléments s'affiche et nous pouvons sélectionner celui qui nous intéresse. Par exemple, nous pouvons sélectionner « Croissance du PIB (% annuel) » pour obtenir un tableau de 28 lignes. Nous pouvons ensuite l'intégrer dans le Générateur de graphiques. En faisant glisser le « Nom du pays » dans la zone déroulante « Forme de la carte » , nous obtiendrons une carte de l'Europe, puis nous pourrons y glisser l'année souhaitée. Les données commencent à se raréfier après 2014 ; cette année-là, nous obtenons :

JMP recherche « Slovaquie » plutôt que « République slovaque », ce qui pourrait être une opportunité d'utiliser Recoder. En examinant ces données, il semble que nous effectuerons toujours la même opération. Nous sélectionnerons le nom du pays pour la forme de la carte, puis l'année qui nous intéresse pour examiner les résultats. Si nous devons examiner une année donnée à plusieurs reprises, il est judicieux d'enregistrer le script et de l'insérer dans le Générateur de requêtes en tant que script post-requête . Un onglet est disponible à cet effet près du panneau d'aperçu. Si nous revenons à notre graphique précédent et que nous utilisons le menu triangulaire rouge, nous sélectionnons « Enregistrer le script > Dans la fenêtre de script », nous obtiendrons un script ressemblant à ceci :
Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Variables( Color( :Name( "2014" ) ), Shape( :Country Name ) ),
Elements( Map Shapes( Legend( 7 ) ) )
);
Si nous collons ce code dans l'onglet « Script post-requête » , lorsque nous sélectionnons l'observation à examiner, le même rapport Graph Builder sera toujours exécuté après l'extraction des données et la création de la table JMP. Cela simplifie grandement une tâche répétitive.
Post-Query ScriptScript post-requêteScript post-requête
Le plus intéressant est que, lorsque nous enregistrons la requête, nous pouvons la configurer de manière à ce que l'utilisateur final ne voie même pas les boîtes de dialogue du Générateur de requêtes. En sélectionnant « Exécuter à l'ouverture » dans le menu déroulant à côté du champ « Nom de la requête », puis en enregistrant la requête, l'utilisateur final ne verra que l'invite, ainsi que le tableau et le graphique résultants.
Run on OpenExécuter sur OpenExécuter sur Open
Query with Run on Open started from Recent Files Requête avec exécution à l'ouverture démarrée à partir de fichiers récents Requête avec exécution à l'ouverture démarrée à partir de fichiers récents L'utilisation du filtre « Colonnes correspondantes » présente un inconvénient : la table contenant les valeurs à associer doit être présente sur la machine sur laquelle la requête sera exécutée. Si cela pose problème, il existe une solution. Après avoir créé le filtre avec les colonnes correspondantes, accédez au menu triangulaire rouge correspondant. Dans cet exemple, il s'agit de « t1.Code Pays ». Sélectionnez « Type de filtre » -> « Liste manuelle ». Les valeurs créées par le filtre « Colonnes correspondantes » seront alors importées dans une liste de texte qui sera utilisée pour le SQL. Celle-ci sera ensuite enregistrée dans la requête lors de la prochaine sauvegarde, et vous n'aurez plus besoin de la table de données pour l'association. L'inconvénient de cette approche est que la possibilité de modifier dynamiquement les valeurs correspondantes sélectionnées et de modifier la requête est perdue.
À ce stade, nous avons filtré une grande quantité de données confuses et créé une requête et une analyse reproductibles que nous pouvons transmettre à un utilisateur final. L'utilisateur de la requête n'a pas besoin de connaître réellement la requête, ni même JMP.
Conventions utilisées :
Les volets de la fenêtre du générateur de requêtes sont en gras
Les boutons/contrôles de boîte de dialogue sont « entre guillemets et en gras »
Les noms des variables/colonnes sont « entre guillemets et en italique »
[1] Groupe de la Banque mondiale. Indicateurs du développement dans le monde , Groupe de la Banque mondiale, sd Web. 25 janvier 2018. https://datacatalog.worldbank.org/dataset/world-development-indicators . Source : licence Creative Commons CC BY 4.0.