| Conférencier |
Transcription |
| Jeff Perkinson |
En matière de développement des fonctionnalités JMP, John Sall, notre prochain intervenant, propose une approche intéressante pour définir les priorités. Il nous faut effectivement prioriser les fonctionnalités que nous… |
| |
Quelles fonctionnalités souhaitons-nous développer ? Comment déterminer ce qui est le plus important ? Devrions-nous nous concentrer sur les fonctionnalités qui renforcent notre produit ? |
| |
Que diriez-vous de fonctionnalités qui le rendent plus attrayant ou plus sexy, ou de fonctionnalités axées sur le soulagement de la douleur, allégeant ainsi le fardeau de l'analyse ? |
| |
John estime que le soulagement de la douleur devrait être la principale motivation de notre équipe de recherche et développement. John est le cofondateur de SAS. Il est l'architecte principal de JMP, entreprise qu'il a fondée il y a plus de 30 ans. |
| |
Pour les scientifiques et les ingénieurs qui possèdent des données et ont besoin d'un moyen de les explorer... ils ont besoin d'un moyen de les explorer facilement et visuellement sur leur ordinateur. |
| |
Il va nous parler des facteurs qui motivent le développement de JMP et de la manière dont nous découvrons les fonctionnalités sur lesquelles nous souhaitons travailler. Sur ce, je vous souhaite la bienvenue, John. Merci. |
| John Hall |
Merci, Jeff. Nous sommes en direct du nouveau centre de conférence numérique de Cary, en Caroline du Nord, qui peut accueillir beaucoup plus de monde. |
| |
Alors, baissons un peu la lumière. |
| |
En fait, je ne suis pas vraiment ici, dans un centre de visioconférence. Je suis chez moi. J'ai un bureau à la maison. Oups ! Pas celui-là. |
| |
Comme vous tous. Je suis chez moi, et j'anime cette conférence. Mais passons à un contexte professionnel et commençons. |
| |
Alors, de quoi devrais-je parler ? |
| |
Eh bien, lors des éditions JMP, les années où la conférence JMP est organisée en parallèle, c'est de cela que nous parlons. Mais les autres années, je choisis toujours un sujet. Par exemple, une année, je parle de statistiques importantes, l'année suivante, de données fantômes ou de fonctionnalités cachées. |
| |
Il y a deux ans. Aujourd'hui, mon sujet porte sur les mots longs qui commencent par la lettre A. |
| |
Voilà des mots clés qui caractérisent les thèmes de développement de JMP. Je vais donc vous montrer mon écran. |
| |
Et |
| |
minimiser |
| |
Ici. Partager. |
| |
Alors, quel est le thème le plus important ? Et voici les trois mots qui commencent par… les grands mots qui commencent par la lettre A. |
| |
Comme Jeff vient de le mentionner, le premier point concerne les anabolisants. Or, les anabolisants servent à développer les muscles et à rendre le JMP plus puissant. |
| |
Les processus anaboliques construisent les organes et les tissus, et ces processus entraînent la croissance et la différenciation des cellules afin d'augmenter la taille du corps. |
| |
Augmenter la puissance de JMP serait donc une opportunité, et c'est évidemment très important, mais la suite |
| |
Un aphrodisiaque, qui rend JMP plus sexy, plus excitant, le frisson de la découverte. Nous voulons donc que ce soit aussi un attribut. |
| |
Mais nous nous soucions également de votre progression tout au long du processus de travail, c'est pourquoi le terme « analgésique » est le troisième mot, et cela signifie soulager la douleur. |
| |
Soulagement de la douleur. |
| |
Je souhaite donc que les gens expriment des choses comme les citations imaginaires suivantes : « La version 15 m'a vraiment sauvé la mise… elle m'a épargné des heures, voire des jours de travail que je devais auparavant consacrer à un travail pénible ! » Quel soulagement ! |
| |
Ou encore : « Avant, je devais tout faire individuellement, et maintenant, tout se fait en une seule fois ! » Quel soulagement ! Ou encore : « Avant, je devais utiliser plusieurs autres outils pour tout faire, mais maintenant, je peux tout faire dans JMP ! » |
| |
Ou encore : « J'ai montré à mes collègues comment j'ai fait si facilement. Ils étaient épatés ! » Ou : « Avant, je devais tout programmer manuellement, et maintenant, quelques clics de souris suffisent ! » |
| |
Ou encore : « JMP me permet de rester concentré, en me permettant de me focaliser sur l'analyse des données plutôt que de me laisser distraire par des détails opérationnels. » Voilà le genre de témoignages de soulagement que nous voulons entendre. |
| |
La douleur et la frustration sont de véritables facteurs de démotivation. L'état de flow est essentiel. En état de flow, vous êtes concentré et non distrait. Dans cet état, vous êtes plus susceptible d'apprendre des données et de faire des découvertes. |
| |
L'autonomisation est également importante, mais les nouvelles fonctionnalités sont généralement utilisées par un petit nombre seulement, tandis que les anciennes le sont par un grand nombre. Nous souhaitons donc améliorer le fonctionnement des anciennes fonctionnalités. |
| |
pour faciliter leur utilisation. Et bien sûr, la productivité dépend fortement de l'efficacité de nos outils en termes de gain de temps. Donc, si nous pouvons rendre l'obtention des résultats plus facile et plus rapide, c'est un avantage considérable. Passons donc en revue de nombreux exemples. |
| |
Tout d'abord, les scripts fournis avec les tables de données. Vous voyez ici, côte à côte, un exemple tiré d'une version antérieure de JMP. Je crois qu'il s'agit de JMP 14 ou 13. |
| |
là où auparavant, il fallait maintenir le bouton de la souris enfoncé pour faire apparaître un élément de menu, puis trouver un bouton « Exécuter » pour lancer le script. |
| |
Mais la nouvelle méthode propose un bouton de lecture directement à côté du script. Il suffit donc de cliquer dessus, ce qui évite d'avoir à dérouler un menu. |
| |
Bon, ce n'est pas une victoire énorme, vous pensez peut-être que la différence entre cliquer sur un bouton et dérouler un menu n'est pas si grande. Mais c'est aussi un grand avantage pour les nouveaux utilisateurs, car ils n'ont plus besoin de comprendre. |
| |
On sait qu'un bouton d'activation cache une action. Mais le bouton « Lecture » est juste là, avec le script. On comprend donc mieux qu'il s'agit de scripts. |
| |
Et la possibilité de stocker des scripts avec vos données est un atout majeur de JMP, et nous voulons que les utilisateurs le découvrent immédiatement. |
| |
et ne pas avoir à chercher parmi deux options ou à consulter une astuce pour comprendre comment ça fonctionne. De plus, c'est très pratique de pouvoir stocker tous ses scripts. |
| |
Les données sont stockées directement dans le tableau, sans avoir à les stocker ailleurs. Pour les nouveaux utilisateurs, le bouton « Lecture » est donc un gain de temps considérable. Ce simple changement simplifie grandement les choses. |
| |
Et c'est un changement que nous regrettons de ne pas avoir mis en œuvre beaucoup plus tôt chez JMP. |
| |
Parlons de la préparation des données. L'une des étapes essentielles de cette préparation consiste à fusionner les données provenant de sources multiples. |
| |
Dès sa première version, JMP devait intégrer des fonctionnalités utilitaires. Mais cela impliquait toujours des dialogues complexes et la manipulation de plusieurs tables de données. |
| |
Voici donc l'exemple classique où je loue des films et où nous avons notre tableau de transactions de location de films |
| |
Cette table contient le client, le numéro d'article, la date et l'année de la commande, ainsi que notre catalogue de films à louer et les détails de chaque film. Nous avons également les informations sur les clients, etc. Nous souhaitons poser des questions et interroger ces trois tables. |
| |
Quels genres de films sont prédominants ? Cela implique… |
| |
En parcourant les trois tables, et bien sûr la commande JOIN est la méthode appropriée. Je prends les données de transactions et je |
| |
Fusionnez-le avec les clients. Et bien sûr, l'identifiant client est l'élément correspondant. |
| |
Je souhaite inclure les données transactionnelles non correspondantes dans la colonne. Ainsi, même sans données client, je conserve mes données transactionnelles. C'est ce qu'on appelle une jointure externe gauche, qui crée une nouvelle table de données. À cette table, je souhaite maintenant ajouter les données manquantes. |
| |
aux données d'inventaire. Je les joins donc par numéro d'article, que je fais correspondre, et je souhaite également une jointure externe gauche. Et maintenant, j'ai |
| |
une autre table. Et donc maintenant, au lieu d'avoir trois tables, j'en ai cinq, les résultats de cette jointure, mais je peux maintenant examiner la question du genre par genre littéraire, ce qui |
| |
Selon le sexe, quel type de film a tendance à être loué en plus grande quantité ? |
| |
Et cela impliquait également la création de toutes ces nouvelles tables de données intermédiaires. |
| |
Il s'avère qu'il existe une méthode bien plus simple, et la difficulté liée à ces étapes et tableaux supplémentaires peut être considérablement réduite. Permettez-moi donc de supprimer ce tableau. |
| |
Je tiens à souligner que sous la commande tables, il existe une commande appelée JMP query builder qui ouvre l'interface Sequel. |
| |
Pour la jointure de tables, c'est beaucoup plus simple que toutes ces boîtes de dialogue de jointure, mais cela crée tout de même une nouvelle table de données. |
| |
Mais il y a quelques versions, nous avons lancé une solution encore meilleure qui simplifie encore davantage les choses : la jointure virtuelle. Donc, si je regarde cette table de transactions, |
| |
J'ai remarqué qu'il est déjà inscrit. |
| |
Donc, ce qui s'est passé, c'est que lorsque j'ai préparé le tableau d'inventaire des films, chaque article est identifié de manière unique par son numéro. J'ai donc attribué le numéro d'article… |
| |
Un identifiant de lien permet de l'identifier de manière unique et c'est ainsi que je peux indexer cette table. De même, j'ai un identifiant d'article pour identifier les données client. Et lorsque je prépare mes données de transaction, ces deux identifiants servent en quelque sorte de clés étrangères. |
| |
Il s'agit d'une référence de lien qui pointe vers différentes tables de données grâce à un identifiant commun. Le lien est donc automatiquement établi et j'ai déjà tout ce qu'il me faut pour répondre à cette question. Je peux donc… |
| |
pour chaque |
| |
genre, je peux |
| |
Je cherche à déterminer le genre du film que je souhaite réaliser. Je constate ici que les films d'action sont davantage appréciés des hommes et les films familiaux des femmes. |
| |
Les comédies romantiques sont davantage réalisées par des femmes, etc. J'ai donc répondu à ma question concernant trois tables sans avoir à détailler toutes les jointures, car la jointure est virtuellement effectuée en faisant correspondre les colonnes d'identifiants entre les tables. |
| |
J'ai donc fait |
| |
Cela soulage beaucoup la douleur. Alors, clôturons ce dossier. |
| |
Je pense donc que la fusion des tables de données a permis de soulager considérablement les différentes versions. |
| |
Recodage, |
| |
C'est l'une des principales autres choses que nous faisons lorsque nous préparons des ensembles de données. |
| |
Il y a plusieurs versions, nous avons commencé par une simple refonte du code où nous avions un champ pour l'ancienne et la nouvelle valeur. La nouvelle valeur était initialisée avec la même valeur que l'ancienne, et je pouvais ensuite copier-coller ou modifier ces valeurs pour effectuer la refonte. |
| |
dans une nouvelle colonne ou dans la colonne existante. |
| |
Et chaque version de Recode a bénéficié d'améliorations considérables, et nous sommes très satisfaits de son état actuel. Prenons l'exemple de cet ensemble de données concernant les hôpitaux, et plus précisément les hôpitaux de district. Recode est désormais parfaitement au point. |
| |
clic droit ou menu contextuel dans l'en-tête de colonne. Je peux ensuite parcourir et… |
| |
Sélectionnez un ensemble d'éléments et regroupez-les pour leur attribuer une nouvelle valeur, comme « clinique ». |
| |
Mais je pense qu'il existe aussi de nombreux raccourcis. Et l'un de mes raccourcis préférés est : |
| |
Pour regrouper les valeurs similaires, je peux définir un seuil pour le nombre de différences de caractères, etc., et le système regroupera automatiquement tous ces éléments. Par exemple, il regroupera tous les hôpitaux de district dont l'orthographe varie légèrement en un seul. |
| |
Et je peux encore... |
| |
Il semble qu'il en manque un. Mais ce n'est pas grave, je peux maintenant le regrouper avec les autres. |
| |
Tous les hôpitaux ruraux ont été automatiquement regroupés en fonction des correspondances, et il semble que je puisse en ajouter un de plus ici. |
| |
Et voilà, j'ai enfin quelque chose ! J'ai économisé beaucoup d'efforts en évitant tout ce recodage. |
| |
Et bien sûr, dans JMP 15, nous avons ajouté de nouvelles fonctionnalités que je ne détaillerai pas ici, mais que je tenais à mentionner. Si vous disposez d'un autre jeu de données contenant toutes les |
| |
...a prouvé que... les meilleurs noms de catégories pour ces catégories, je peux effectuer un processus de correspondance et faire en sorte qu'il choisisse la correspondance la plus proche lorsqu'il trouve une correspondance avec tous ces éléments. |
| |
Recode a donc beaucoup évolué au fil des versions afin de simplifier cette opération. Et bien sûr, réfléchissez-y : combien de temps consacrons-nous à la préparation des données par rapport à leur analyse ? |
| |
Nous consacrons souvent entre 70 et 90 % de notre temps à la préparation des données. Par conséquent, réduire la complexité et le temps consacré à cette tâche représente un gain considérable. En résumé, simplifier le recodage est essentiel. |
| |
Cliquer sur les valeurs. Voici |
| |
l'ensemble de données sur les villes. |
| |
Supposons que lorsque j'examine les détails de certains éléments, comme par exemple une valeur aberrante, je souhaite approfondir la question. Je peux alors créer un lien. |
| |
Transformons ça en page wiki, une page Wikimedia. Je vais copier ce texte, aller dans les informations de la colonne et le transformer en lien, c'est-à-dire en gestionnaire d'expressions. |
| |
Et maintenant je peux prendre |
| |
ce |
| |
tableau et le convertir en web |
| |
adresse. Donc |
| |
Je vais aller sur wikipedia.org et ensuite prendre le |
| |
Je saisis le nom de cette ville, je le mets en majuscules initiales et je peux le tester sur cette ligne ; Albany apparaît alors. |
| |
Et donc maintenant, je dirai... |
| |
Oh d'accord. |
| |
Et maintenant, je peux cliquer sur n'importe quelle ville et accéder à son article Wikipédia. Ou bien, cela peut afficher ses coordonnées géographiques. Donc, je peux… copions ce texte et allons dans la colonne « Info ». Maintenant, à la place, je vais… |
| |
Mettez-le en majuscules de titre. |
| |
Voyons si l'analyse est correcte. Je peux maintenant cliquer sur Denver, ce qui interrogera Denver et Google Maps. |
| |
Bon, j'ai donc transformé certaines choses en liens… Je peux faire des recherches, des demandes de cartes, etc. Je peux même… |
| |
Collez ce texte et cliquez dessus pour qu'il prononce le nom de la ville. Je pense que cela nous offre une grande flexibilité pour stocker des liens dans nos tables de données. |
| |
Ces gestionnaires d'événements permettent de créer des liens vers des pages web ou d'effectuer d'autres actions, tout ce qui peut être exprimé avec les ACL. Cela simplifie grandement les choses. |
| |
L'une de mes techniques préférées pour soulager la douleur est la diffusion. Il s'agit de maintenir la touche commande ou contrôle enfoncée pour effectuer plusieurs analyses, c'est-à-dire regrouper de nombreuses analyses similaires. |
| |
Cela fonctionne non seulement pour les commandes de menu, mais aussi pour de nombreux boutons, pour redimensionner les cadres de graphiques et pour effectuer d'autres actions, comme coller des éléments dans des graphiques, etc. |
| |
Prenons un exemple. Et cliquons sur... ou effectuons simplement une distribution sur toutes ces colonnes. |
| |
Et disons que je voulais me débarrasser de |
| |
ce diagramme en boîte. |
| |
Et si je maintenais simplement la pression |
| |
Pour cet élément de menu, je supprimerais le diagramme en boîte. Mais ce que je veux faire, c'est supprimer le diagramme en boîte pour tous les éléments. Donc, je vais maintenir la touche Commande enfoncée et décocher l'option « Diagramme en boîte ». Maintenant, elle est décochée pour tous les éléments. Je peux maintenant décocher les quantiles. |
| |
et il décochera tout, car il aura reçu cette commande et l'aura diffusée à tous les objets actifs de cette fenêtre, et pour les objets actifs qui comprennent cette commande, la commande des quantiles par exemple, il obéira alors à cette commande. |
| |
Cela fonctionne même pour certaines choses liées à l'affichage des boîtes de dialogue. Examinons donc les statistiques récapitulatives. Je maintiens la touche Commande enfoncée et je personnalise ces statistiques. |
| |
Supposons que je ne veuille pas les intervalles de confiance, mais que je veuille le nombre de valeurs manquantes. Je dirai alors : « D’accord », et cela s’appliquera à tous… |
| |
toutes ces choses. Pour ce faire, il a fallu |
| |
Récupérez les résultats de ce dialogue, créez-en un script, puis diffusez ce script à tous les autres endroits de cette fenêtre. |
| |
Cela n'arrive pas systématiquement. Parfois, lorsqu'une invite apparaît, vous en recevez une pour chaque analyse. Pour chaque version, nous essayons |
| |
Pour implémenter quelques détails supplémentaires, le dialogue est enregistré avant la diffusion afin qu'il soit diffusé de manière identique partout où il est disponible. Et bien sûr, je peux diffuser tout le reste : une modification sera alors appliquée, par exemple, à la taille de tous ces éléments. |
| |
En changeant la couleur de fond, je peux changer toutes les couleurs de fond en orange dans tous les graphiques. |
| |
que cela semble pertinent pour cette boîte à images. Ainsi, la diffusion devient un outil très puissant. |
| |
Donc, |
| |
Cela nous a épargné bien des souffrances, mais il existe encore des cas où l'on peut avoir 40 000 groupes, comme ce fut le cas plus tôt cette année, et où le programme veut effectuer une prédiction inverse sur ces 40 000 groupes, ce qui vous amène à répéter l'opération 40 000 fois. |
| |
Ce problème sera corrigé dans la version 16. Voilà qui soulage énormément cet utilisateur. |
| |
Enregistrement des colonnes de formules. |
| |
J'adore les colonnes de formules. Lorsque vous ajustez un modèle, vous pouvez enregistrer une colonne de prédictions. Mais dans cette prédiction, il y a une formule active que vous pouvez examiner, modifier et appliquer aux nouvelles données entrantes. Vous pouvez la comparer à la formule enregistrée. |
| |
si vous avez |
| |
Dans JMP Pro, vous pouvez accéder au dépôt de formules et effectuer de nombreuses autres opérations. Vous pouvez générer du code à partir de ces formules, etc. La possibilité d'enregistrer des formules est donc importante, mais parfois… |
| |
Si vous avez des groupes, par exemple, l'enregistrement des formules présente beaucoup plus de subtilités. |
| |
Par exemple, prenons les données sur le diabète, où nous ajustons la réponse |
| |
contre tous ces prédicteurs, mais nous voulons le faire séparément pour chaque sexe. |
| |
Alors faisons-le. |
| |
Nous avons donc deux groupes, un pour le genre 1 et un pour le genre 2. Supposons maintenant que nous voulions économiser |
| |
la valeur prévue, en fait, pour les deux. |
| |
Autrefois, avant que nous ne soumettions cela à de nombreuses méthodes de soulagement de la douleur, |
| |
Lorsque vous enregistrerez les données, elles seront stockées dans une table locale. Si vous consultez la fenêtre de la table de données sous « Rétablir », vous verrez le tableau par groupe. |
| |
Donc, pour le sexe 1, il y a 235 valeurs dans ce tableau de données virtuel, que vous pouvez afficher pour le sexe 1. Il y a une variable de tableau ici qui affiche le groupe correspondant. |
| |
Et cela l'enregistrerait dans cette table temporaire au lieu de la table réelle où sont réellement enregistrées les données. |
| |
Mais |
| |
Il y a quelque temps, lorsque vous avez enregistré la formule de prédiction, nous l'avons enregistrée dans le tableau de données réel. Et si je regarde ceci, je l'ai enregistrée uniquement pour le sexe = 1. |
| |
et si je regarde la formule correspondante, elle montre que si le sexe = 1 (c'était la clause « par groupe »), alors il existe une combinaison linéaire qui forme une prédiction pour cette variable. |
| |
Et ensuite, si je saisis gender=2 ou si je maintiens la touche commande enfoncée pour diffuser la formule de prédiction, les deux valeurs sont désormais prises en compte et les deux clauses sont disponibles pour le genre 1 et le genre 2. Ainsi, une clause est ajoutée à chaque fois à la sortie par groupe. |
| |
D'ailleurs, la même chose se produit lorsque vous enregistrez d'autres éléments, par exemple lorsque j'enregistre une colonne de résidus, et maintenons cette fois la touche commande enfoncée. |
| |
Si j'enregistre une colonne de résidus, elle sera enregistrée pour chaque groupe, avec le résidu correspondant. C'est comme si l'on soustrayait la formule prédite de la réponse initiale, mais sans qu'il s'agisse d'une colonne de formule. |
| |
Dans presque tous les cas dans JMP, nous ne l'avons pas fait partout, mais nous l'avons fait dans la plupart des cas, en enregistrant dans un groupe. |
| |
ou, dans certains cas, via une clause WHERE, il l'enregistrera ensuite dans la table de données d'origine avec la condition de l'instruction IF. D'accord, donc cela a |
| |
Cela a permis d'économiser beaucoup de temps. Sans cette fonction, les données auraient été enregistrées dans une table temporaire, et il aurait fallu copier-coller la formule et recréer des tableaux dans la table d'origine. Ces problèmes sont donc résolus. Supposons maintenant que je l'aie enregistrée à nouveau et que j'aie répété toute la procédure… |
| |
et |
| |
et j'ai fait autre chose, disons avec des variables différentes, dont certaines ont été supprimées, |
| |
et maintenant je l'ai enregistré à nouveau. |
| |
Donc, |
| |
J'enregistre la formule de prédiction, cette fois en maintenant la touche de diffusion enfoncée. Au lieu d'écraser l'ancienne, une nouvelle formule est créée et un « 2 » est ajouté à la fin. Comment le système fait-il pour ne pas l'écraser ? |
| |
Chaque tenue possède un identifiant unique. Et si je regarde les propriétés… |
| |
par ID, il possède un numéro qui lui est propre, un numéro unique qui est régénéré pour chaque ajustement, et donc tant qu'il a un par ID différent, |
| |
Les différents groupes auront le même identifiant qu'une partition. Toutefois, tant que l'identifiant est identique, les données seront enregistrées au même endroit. Sinon, un nouvel emplacement sera créé pour les enregistrer. |
| |
De plus, chaque fois que nous parlons de valeurs prédictives, |
| |
notamment les formules de prédiction, |
| |
Il créera un attribut, le créateur, et dans certains cas d'autres informations. Ici, il contient la variable cible y, c'est-à-dire ce qui est prédit, et le créateur est ajusté par la méthode des moindres carrés. |
| |
Ensuite, lorsque vous utilisez d'autres plateformes, comme JMP Pro pour la comparaison de modèles, celle-ci saura associer les valeurs prédites à chaque créateur et à chaque cible. Elle pourra ainsi conserver toutes ces informations pour ces plateformes à valeur ajoutée. |
| |
Donc, |
| |
Les colonnes de formule fonctionnent en ajoutant de nouvelles clauses et d'autres propriétés sont utilisées, notamment l'ID. |
| |
Et si vous enregistrez les clauses de prédiction dans des variables catégorielles, vous sauvegardez toute une série de variables contenant les probabilités pour chaque niveau de réponse, ainsi que toutes les métadonnées nécessaires. Cela devrait vous simplifier grandement la tâche. |
| |
Donc, |
| |
Suppression des effets des modèles. |
| |
Prenons un exemple. |
| |
de l'ajustement |
| |
Il s'agit simplement d'adapter la taille au poids. |
| |
Voici un exemple de polynôme de degré élevé. Il s'agit d'un polynôme du septième ordre. |
| |
qui convient mieux que |
| |
Des polynômes du sixième degré, et ainsi de suite. Mais feriez-vous confiance à cet ajustement ? |
| |
Il s'avère que si l'on confère au modèle une grande flexibilité en introduisant des termes polynomiaux d'ordre élevé ou simplement en ajoutant des variables, on multiplie considérablement les possibilités d'ajustement. Et dans ce cas précis, c'est le cas. |
| |
Cela a permis la flexibilité nécessaire pour effectuer une analyse approfondie entre les données précédentes et le dernier point de données, afin de mieux faire correspondre ce dernier. |
| |
Il y a donc surapprentissage. Le modèle utilise ce paramètre pour ajuster le bruit au lieu d'ajuster le modèle. |
| |
les données elles-mêmes. |
| |
Le surapprentissage est donc un problème dès lors qu'on travaille avec de grands modèles. |
| |
Vous voulez ajuster le signal, pas le bruit. D'accord, les grands modèles ont tendance à introduire plus de variation dans la prédiction, car la prédiction, après tout, est |
| |
une fonction de la variable y qu'ils utilisent, mais aussi que cette variable y est une partie systématique de cette variable plus la partie d'erreur de cette variable si cette variable fait partie |
| |
Si le résultat est aléatoire, votre prédiction dépend de cette part d'aléatoire. Et si vous lui accordez trop de flexibilité, cela finira par donner |
| |
un problème de surapprentissage que vous allez bien pire prédire en incluant toutes les variables dans ce modèle. |
| |
La solution consiste donc à réduire la taille du modèle, c'est-à-dire à diminuer la taille des coefficients du modèle. |
| |
de sorte qu'une moindre part de la variation due au terme aléatoire du modèle soit transmise à la valeur prédite. |
| |
Dans les problèmes de petite taille liés aux plans d'expériences (DOE), ce problème ne se pose pas car les données sont peu nombreuses et bien équilibrées pour correspondre exactement au modèle visé. En revanche, pour les données observationnelles dans les modèles de grande taille, le surapprentissage constitue un véritable problème. |
| |
Les utilisateurs ne s'en rendaient souvent pas compte avant l'introduction de la validation croisée dans JMP Pro. Si vous utilisez JMP Pro, vous pouvez configurer une colonne de validation. |
| |
ce qui permettra de mettre de côté certaines données afin d'estimer l'erreur sur cet ensemble de données mises de côté. Voici un exemple où j'essaie de prédire les propriétés du béton. |
| |
Cela dépend de tous les ingrédients du béton, et j'ai un modèle très complet pour cela. Si j'exécute ce modèle en ne conservant qu'une partie des données et que j'observe le coefficient de détermination (R²), |
| |
Pour le modèle SLUMP, l'ajustement est excellent (R² = 79), mais sur l'ensemble de validation, le R² est négatif. |
| |
Un coefficient de détermination (R²) négatif signifie que le modèle est moins performant que la simple estimation de la moyenne. Si j'ajustais le modèle à la moyenne, le R² serait nul. En ajustant le modèle complet, le R² est bien pire. Ainsi, pour les grands modèles, on peut obtenir un R² moins performant que la simple estimation de la moyenne. |
| |
C'est plutôt contre-productif, car le modèle est très volumineux et nous n'avons fait aucun effort pour le réduire. Le modèle est dominé par le bruit et non par le signal. C'est donc un problème auquel il faut prêter attention. |
| |
L'important est donc de pouvoir réduire la taille du modèle. |
| |
Et nous avons maintenant introduit une commande de dialogue modèle pour cela. |
| |
Abordons maintenant le diabète avec ce modèle. |
| |
Je peux exécuter ce modèle et, si je veux supprimer un grand nombre de ces éléments, ils ne sont pas très significatifs. Vous savez, l'âge |
| |
n'apporte aucune contribution significative au modèle, je souhaite donc éliminer l'âge. Dans ce cas, je pourrais revenir à l'ajustement du modèle et |
| |
Je peux soit le rappeler, soit supprimer l'âge. Sinon, je peux retourner directement dans la boîte de dialogue du modèle, ajuster l'âge et le supprimer, mais j'ai peut-être une longue liste de modèles et faire des allers-retours constants représente beaucoup de travail. |
| |
Et donc plutôt que de faire cela... |
| |
Voyons voir, qu'est-ce que je fais ici ? |
| |
Il y a quelques publications, nous avons introduit un nouveau rapport intitulé « résumé des effets ». |
| |
Et grâce au résumé des effets, il devient extrêmement facile de sous-ensembler le modèle pour améliorer ses prédictions. |
| |
lui donner moins de flexibilité. |
| |
Je peux donc dire : « Eh bien, l'âge, je peux l'éliminer. » |
| |
Ou plutôt, il y a beaucoup de variables. Supprimons-en trois autres. |
| |
Le LDL, eh bien, ça semble plus significatif. Je peux donc sauvegarder ce modèle. |
| |
Enregistrons-le simplement dans le tableau de données. |
| |
Et je reviens plus tard et je me dis : bon, je vais me souvenir de ce modèle qui a ça. |
| |
Je peux en fait annuler l'action précédente. Je peux donc annuler cela et cela rétablit le point de départ. |
| |
trois des variables, et je peux annuler cela, ce qui rétablit l'âge. Donc, lorsque j'utilise le résumé des effets pour modifier le modèle, il conserve en fait une trace de toutes ces informations. Et si je regarde ce script, |
| |
Je vois bien cet historique. Donc, à chaque fois que j'utilise un modèle d'effet, il enregistre une clause d'historique. Et quand j'annule une action, il rétablit cet historique. |
| |
Donc, enlever des éléments est facile. Je peux aussi en ajouter. Si je soustrais ces deux éléments, je pourrais les rajouter. Je pourrais rajouter, par exemple, l'âge. |
| |
Ce n'est pas idéal, mais je peux le faire. Je peux aussi modifier le modèle en ramenant une version réduite de celui-ci. |
| |
du dialogue du modèle et ajouter des effets composés, etc. |
| |
Il y a une autre chose qui se produit avec les grands modèles et |
| |
(laissez-moi annuler cela). |
| |
Avec les grands modèles, |
| |
Vous effectuez beaucoup de tests d'hypothèses. |
| |
Ainsi, si vous effectuez un grand nombre de tests d'hypothèses, certains ajustements sont à prendre en compte, notamment le taux de faux positifs. Au lieu de traiter toutes ces valeurs p comme s'il s'agissait de tests indépendants, |
| |
Je souhaite appliquer un ajustement afin que ces valeurs p soient corrigées du biais lié aux tests multiples et du biais de sélection inhérent à la sélection d'un sous-ensemble du modèle. Je peux ainsi appliquer un taux de faux positifs. |
| |
J'y apporte une correction. Au lieu de la valeur p classique, j'utilise la valeur p ajustée pour le faux positif. Je suis ainsi plus réaliste. Cela va m'aider à résoudre le problème de surapprentissage et le biais de sélection lié à la réalisation de nombreux tests. |
| |
des choses. |
| |
Donc, |
| |
maintenant |
| |
allons-y |
| |
Passons au sujet suivant : les transformations. |
| |
Supposer |
| |
tu veux faire un modèle, |
| |
mais |
| |
Au lieu de y, vous voulez ajuster le logarithme de y. |
| |
Eh bien, avant cela, vous créeriez une nouvelle colonne dans l'ensemble de données, |
| |
Journal et, |
| |
et ensuite pour Log y, vous |
| |
spécifier un... |
| |
Établissez une formule. |
| |
Et je peux prendre |
| |
un journal de bord. |
| |
Et maintenant, je peux retourner à la spécification de mon modèle et faire ce Log y |
| |
Et puis j'ai piqué une crise. |
| |
Oh, il a disparu, qu'est-ce que j'ai fait ? |
| |
J'ai oublié de saisir le |
| |
objectif, l'argument. |
| |
Et donc maintenant je peux |
| |
ajuster le logarithme de Y |
| |
Et maintenant |
| |
C'est fait. Mais passons au profilage. |
| |
Mon profileur est exprimé en fonction du logarithme de Y. Je vais enregistrer la valeur prédite. Ma formule de prédiction est exprimée en fonction du logarithme de y. |
| |
et maintenant je vais devoir aller corriger ça à la main... |
| |
cette formule et prenez l'exponentielle de cela |
| |
pour le remettre à l'échelle d'origine. Donc, faire des transformations de cette façon est vraiment pénible. |
| |
Eh bien, il y a plusieurs sorties |
| |
Nous avons introduit des transformations. |
| |
Je peux donc prendre cette transformation et |
| |
transformez-le en logarithme |
| |
Utilisez-la directement comme transformation ; elle ne fait pas partie du tableau de données. Il s’agit d’une variable virtuelle avec une formule, mais elle n’est pas ajoutée au tableau de données. |
| |
Et maintenant, je peux adapter mon modèle au logarithme de y. Voyons voir. |
| |
Enlever la mention « âge » pour que ça aille mieux. |
| |
Oups. |
| |
J'avais aussi sélectionné ça. |
| |
Et maintenant, j'ai ajusté la réponse Log y. |
| |
Donc si je fais ce profil, qu'est-ce que j'obtiens ? |
| |
Le profileur effectue un profilage factoriel. Au lieu de profiler le logarithme de y, il profile y. Le profileur considère cela comme une transformation et se dit : « Je peux inverser cette transformation et revenir à l’échelle d’origine. » Et c’est ce qu’il fait. |
| |
Il |
| |
détransforme, puis effectue une rétrotransformation via le logarithme de y pour prendre la prédiction et la remettre à l'échelle d'origine. |
| |
Et cela fonctionnera pour la plupart des transformations pouvant être annulées. Si une transformation implique plusieurs variables, etc., elle ne pourra pas l'annuler et se contentera d'effectuer les transformations. Donc, l'original |
| |
Même chose lorsque j'enregistre une colonne. Lorsque j'enregistre la formule de prédiction, |
| |
elle enregistre une formule de prédiction sur l'échelle de y plutôt que sur le logarithme de y. |
| |
Ces outils permettent donc un gain de temps et d'efforts considérable lors de l'utilisation des transformations. |
| |
Donc il y a... |
| |
Laissez-moi |
| |
Retour au diabète |
| |
et faites-en un autre... envisagez une autre transformation. |
| |
Lorsque vous travaillez avec des variables, |
| |
Il existe une transformation de Box-Cox que vous pouvez obtenir. |
| |
Et |
| |
Parmi les profils factoriels, l'option Box-Cox |
| |
vous indique si vous avez transformé toute une gamme de fonctions d'alimentation, |
| |
Que faire au mieux ? Devrait-on simplement annuler la transformation ? Cela donnerait une valeur lambda de Box-Cox égale à un. |
| |
Si vous écrivez zéro, cela équivaut à prendre le logarithme de la valeur. Si vous écrivez -1, cela équivaut à prendre son inverse. |
| |
La puissance -1. Si vous faites environ 0,5, cela équivaut à prendre la racine carrée de ce nombre. |
| |
Et cela vous indique que ce modèle s'adapterait mieux à une échelle de transformation ajustée à cette transformation, s'il était plus proche de la transformation racine carrée, où lambda était de 0,453. C'est la valeur optimale dans la transformation de Box-Cox. |
| |
Et vous pouvez zoomer sur ceci |
| |
avec une loupe pour obtenir |
| |
pour l'obtenir plus précisément. |
| |
Donc, |
| |
Je peux donc maintenant me transformer, et il y a plusieurs versions |
| |
Je peux… J’ai ajouté plusieurs colonnes. L’une d’elles, « Refit with transform », ouvrira une nouvelle fenêtre affichant la réponse de transformation. |
| |
Une autre méthode consiste à remplacer la transformation, et c'est ce que je vais faire. Au lieu de 0,453, je vais simplement appliquer une transformation racine carrée (0,5) et ajuster le modèle avec cette nouvelle transformation. |
| |
Et maintenant, lambda best est proche de 1, ce qui est normal puisqu'il a déjà été transformé par la transformation de Box-Cox. Je peux donc enregistrer sa valeur prédite. |
| |
Je peux le profiler, etc. Et je peux même annuler la transformation. Donc, si je n'aime pas cette transformation et que je veux revenir à l'original, je peux le faire et le réajuster. |
| |
Donc, |
| |
nous avons beaucoup soulagé la douleur |
| |
dans la transformation des réponses. |
| |
Alors maintenant |
| |
Il y a une douleur particulière, une douleur localisée, lorsqu'on a beaucoup de données. |
| |
Et nous avons déployé beaucoup d'efforts pour essayer de résoudre les grands problèmes avec le moins de souffrance possible. |
| |
Que vous ayez beaucoup de lignes, beaucoup de colonnes, beaucoup de groupes, de nombreux modèles à essayer, |
| |
Dans le monde d'aujourd'hui, nous vivons dans un monde de données massives, confronté à de grands problèmes. |
| |
Ainsi, si nous disposons d'analyses conçues à l'origine pour traiter de petits problèmes, elles peuvent ne pas convenir aux grands problèmes, et le problème central des grands problèmes est qu'il y a tout simplement trop de résultats à trier. |
| |
Si j'applique le même modèle à 1 000 variables, je me retrouve avec 1 000 rapports à analyser. Si je recherche des valeurs aberrantes parmi 1 000 colonnes, il y a forcément des valeurs aberrantes, donc un rapport distinct pour chaque colonne, etc. Je souhaite pouvoir… |
| |
pour traiter plus efficacement de grands ensembles de données. Nous avons donc développé le menu de sélection. |
| |
qui vise à résoudre ce type de problèmes complexes. De plus, de nombreux composants de JMP permettent également de résoudre plus efficacement les problèmes de grande envergure. Par exemple, les séries temporelles. La nouvelle plateforme de prévision des séries temporelles permettra de prévoir plusieurs séries temporelles, et non plus une seule. |
| |
Les outils de la plateforme de criblage permettent d'explorer les valeurs aberrantes, les valeurs manquantes et les tendances. Ils servent à vérifier les données, à rechercher des associations et à effectuer un tri des réponses. |
| |
Sélection des processus, sélection des prédicteurs. Et bien sûr, la prévision de séries temporelles est une nouveauté. Elle ne figure pas dans le menu de sélection, mais elle est conçue pour traiter les problèmes de grande envergure. |
| |
Et toutes ces solutions tirent parti non seulement de méthodes plus compactes pour représenter les résultats, vous évitant ainsi des milliers de rapports, mais aussi d'une efficacité de calcul accrue. Elles utilisent le multithreading, ce qui permet d'exploiter pleinement votre puissance de calcul. |
| |
le multiple |
| |
des cœurs dans votre processeur pour le rendre très rapide. |
| |
Supposons que vous disposiez d'un grand nombre de données de processus : 568 variables. Lesquelles semblent saines ? Le criblage de processus est conçu pour répondre à cette question. Il peut trier les variables selon leur stabilité, leur capabilité (Ppk) ou identifier celles qui sont défaillantes. |
| |
Mesures des cartes de contrôle, comptes hors contrôle, etc. |
| |
Mais ce que j'apprécie encore plus, ce sont certains outils qui affichent tous les processus sur un seul graphique. Et il y en a deux que j'adore. L'un d'eux est le |
| |
le graphique d'objectif qui montre |
| |
comment chaque processus se comporte par rapport aux limites de spécification et, s'il s'agit d'un processus capable, il se trouve dans cette zone verte. |
| |
Si la valeur est limite, elle se situe dans la zone jaune. Si elle ne l'est pas, elle se situe dans la zone rouge. Si elle est élevée, la variance est trop importante. Si elle se situe à l'une des extrémités de la plage cible, il y a un problème. |
| |
Avec... |
| |
C'est décentré, c'est hors cible. |
| |
Mais si le processus se situe dans la zone verte, alors c'est un bon processus, et avec la version 15, nous introduisons le |
| |
graphlets, l'aide au survol |
| |
Vous pouvez donc voir chaque processus en le survolant. Et puis l'autre |
| |
Le graphique que j'apprécie particulièrement pour résumer toutes ces informations et faciliter la consultation de tous ces rapports, c'est ce graphique de performance des processus. L'axe vertical indique si les performances sont conformes aux spécifications, selon la capacité Ppk. |
| |
Si votre valeur est supérieure à 1,33, la distribution des valeurs par rapport aux limites de spécification est tout à fait correcte. Vous êtes largement dans les limites spécifiées. |
| |
Si... alors l'indice de stabilité se trouve sur l'axe des abscisses. Donc, s'il s'agit d'un processus assez instable, même s'il peut être fonctionnel, il peut être instable. Si vous examinez ce processus, il pourrait présenter certaines caractéristiques. |
| |
une stabilité fluctuante. Et si vous êtes dans la zone jaune, vous êtes |
| |
Capable mais instable, etc. La zone rouge représente la zone critique où l'on est à la fois incapable et instable. Par conséquent, examiner des centaines, voire des milliers de processus, est désormais aisé, alors qu'auparavant c'était un véritable calvaire. |
| |
La question est : qu'est-ce qui a le plus changé ? Voici quelques données d'enquête où |
| |
À plusieurs reprises, vous avez posé des questions sur leurs activités. L'avez-vous fait ? |
| |
Vous êtes allé camper ? Ou jouer au casino ? Ou aviez-vous un rhume ? Vous savez, toutes ces activités et vous voulez savoir laquelle parmi toutes ces activités (et il y en a |
| |
Je pense qu'il y a eu 95 activités différentes. Laquelle a eu le plus d'impact ? Vous cherchez donc à déterminer laquelle a eu le plus d'impact. Une solution serait de les examiner une par une. |
| |
et adapter cette activité à l'année de l'enquête. |
| |
Au lieu de les examiner une par une, je peux consulter le dépistage des réponses. |
| |
Il suffit de regarder un seul graphique pour voir ce qui a le plus changé. |
| |
Voici donc un graphique pour ces 95 éléments. Premièrement, la signification en termes de logarithme négatif de la valeur P, |
| |
Ce que nous appelons la valeur logarithmique, ajustée en fonction du taux de faux positifs. Cela permet de corriger en partie le biais de sélection lié au tri des valeurs p. |
| |
et en sélectionnant les valeurs P les plus basses... et je constate que la location de cassettes vidéo a été le plus bouleversée, et bien sûr, elles sont devenues obsolètes. Donc, forcément, ça a changé. |
| |
Une autre cassette vidéo a tout changé, le recyclage des déchets a tout changé, divertir les gens chez moi a tout changé. |
| |
Voici une autre question, moins significative mais ayant un impact important : utilisez-vous Internet ? Bien sûr, cette enquête a été lancée avant l’existence d’Internet. Par conséquent, beaucoup de choses ont changé depuis. La question portait donc sur ce qui a le plus changé. |
| |
C'est facile maintenant, alors que c'était difficile avant. |
| |
Vous avez également posé une question concernant le big data : où sont les valeurs manquantes ? Les voici : |
| |
280 variables. |
| |
Où sont les valeurs manquantes ? Dois-je m’en préoccuper ? Je peux consulter le rapport d’exploration des valeurs manquantes et constater qu’il n’y a que cinq de ces variables avec des valeurs manquantes. |
| |
Certaines données ne comportent qu'une seule variable, une seule valeur manquante, tandis que d'autres en ont beaucoup. Par conséquent, lors d'une analyse multivariée, il est préférable de ne pas inclure certaines d'entre elles. |
| |
376 variables sur 452. Ou, si je veux inclure J, je peux parcourir |
| |
et imputer ces valeurs manquantes |
| |
En faisant cela, d'accord. |
| |
Donc, |
| |
Question suivante : les données comportent-elles des valeurs aberrantes ? |
| |
J'ai donc 387 mesures à effectuer dans le cadre de ce processus. Je souhaite identifier les valeurs aberrantes. Grâce à la fonction de filtrage, je peux désormais le faire. |
| |
rendre cela plus ou moins sensible. |
| |
Rendons-le plus sensible |
| |
Il y a donc moins de valeurs aberrantes et de nouvelles analyses. |
| |
Je peux regarder |
| |
à |
| |
Les neuf. On utilise souvent une suite de neuf pour représenter une valeur manquante ; il peut s’agir de neuf réels, mais aussi d’un simple indicateur de valeur manquante. Dans ce cas, je peux ajouter ces neuf aux codes de valeur manquante, et la valeur en mémoire est alors modifiée. |
| |
Et maintenant je peux |
| |
Remontez (il y a beaucoup de variables ici) et effectuez une nouvelle analyse ; il y aura alors moins de valeurs manquantes à prendre en compte. |
| |
Explorer les valeurs aberrantes était donc une véritable corvée. |
| |
Cela peut encore représenter un travail important, mais c'est beaucoup plus facile qu'avant. |
| |
Dans la version 15, nous avons ajouté une autre plateforme de dépistage. Les données présentent-elles des schémas suspects ? Voici des données de laboratoire issues d'un essai clinique. Il s'agit des résultats d'analyses de la nicardipine. J'ai identifié 27 résultats que je souhaiterais examiner. Je vais donc les analyser. |
| |
La nouvelle plateforme permet d'explorer les valeurs manquantes. Elle va m'indiquer si j'ai une série de valeurs. Par exemple, j'ai la valeur 0,03536, mais il y en a sept d'affilée, à partir de la ligne [numéro de ligne]. |
| |
2065. Je peux colorer ces cellules et examiner ces valeurs. Il s'agit peut-être de la dernière valeur reportée, ce qui ne serait pas suspect. Dans ce cas précis, il s'agit de… |
| |
Il s'agit de la même personne. Reporter la dernière valeur est donc peut-être une solution raisonnable, mais cela reste extrêmement rare si vous avez distribué ces éléments... |
| |
si, si vous supposez une distribution aléatoire pour ces choses. |
| |
Il y a aussi la plus longue séquence dupliquée. Donc, pour cette variable, en commençant par la ligne 2816 et également par la ligne 3034, on trouve quatre occurrences consécutives de valeurs identiques. Si je colore ces éléments, on voit bien ces quatre occurrences. Et si je |
| |
Passez à la séquence suivante : vous y trouverez quatre éléments consécutifs présentant les mêmes valeurs. Cela pourrait indiquer que vous avez copié-collé les mêmes valeurs d'un endroit à un autre. |
| |
Explorer les tendances, c'est donc rechercher ces éléments. Et il existe de nombreuses autres choses que vous pouvez examiner en détail pour chacune de ces 27 variables et rechercher des symptômes d'activités suspectes. |
| |
effets indésirables liés à la manière dont vous avez traité les données, etc. |
| |
Donc, |
| |
L'exploration des modèles fait partie de la résolution des grands problèmes. |
| |
Donc, |
| |
Soulagement de la douleur. Une grande partie de nos efforts de développement vise à rendre les analyses plus fluides, moins contraignantes, plus rapides et moins douloureuses. Analgésiques. |
| |
Or, nous ne savons pas toujours ce qui est douloureux. Nous dépendons donc des retours d'information pour savoir sur quoi nous concentrer. Quand je reçois ces courriels auxquels j'ai dû répondre des centaines de fois à une même question, |
| |
Nous avons pris en compte vos remarques et nous comprenons votre frustration. Nous avons donc corrigé le problème afin que vous puissiez désormais diffuser dans un groupe contenant des milliers d'éléments. |
| |
et diffuser les résultats d'un seul dialogue plutôt que d'en multiplier les. L'envoi de ce message a donc été bénéfique pour tous, car nous ne l'avions pas repéré du premier coup. N'hésitez donc pas à nous faire part de vos commentaires. |
| |
Grâce à toutes les améliorations que nous avons déjà apportées, nous pensons que le processus de préparation et d'analyse des données est déjà devenu beaucoup plus fluide, beaucoup moins interrompu et plus continu. |
| |
Donc, |
| |
Au lieu de passer votre temps à surmonter les obstacles, vous le consacrez à apprendre de vos données, à comprendre vos données. |
| |
« Analytics ». On pourrait se demander s'ils ont la même origine ; bien sûr, nous n'aimons pas abréger ces deux mots. |
| |
Le mot « analytique » vient du grec « analyein », et je ne sais pas comment le prononcer. |
| |
Mais en grec, cela signifie briser, libérer, affranchir. Il s'agit de prendre quelque chose de complexe et de le décomposer en morceaux pour pouvoir le comprendre. |
| |
Et c'est précisément ce que nous faisons avec l'analyse de données, la science des données. Quant au mot « analgésique », il provient d'une combinaison différente de mots : « an- », qui signifie « sans », et « algésie », qui désigne la sensation de douleur. Donc, même préfixe, racines légèrement différentes. |
| |
Et ne les abrègez pas. |
| |
Anabolisant et aphrodisiaque. La puissance nous importe. |
| |
Une grande partie de notre travail consiste à vous fournir des outils plus performants pour l'analyse des données, notamment dans JMP Pro, ainsi que dans JMP. |
| |
Et nous espérons que ces données rendront le tout passionnant, vous savez, avec le frisson de la découverte. |
| |
Apprendre à maîtriser les fonctionnalités avancées de JMP est une expérience exaltante, un véritable aphrodisiaque. |
| |
La puissance et l'excitation ont donc aussi de la valeur à nos yeux. Il ne s'agit pas seulement de soulager la douleur. |
| |
Alors, que ferons-nous l'année prochaine ? |
| |
Eh bien, les grands mots qui commencent par la lettre B. |
| |
On commence par A, ensuite c'est B, n'est-ce pas ? |
| |
Eh bien, l'année prochaine, nous aurons JMP 16. C'est donc le sujet de notre discussion. Qui sait de quoi nous parlerons l'année suivante ? Merci beaucoup. Et nous espérons que l'analyse de vos données se déroulera sans encombre. |
| Jeff Perkinson |
Merci beaucoup, John. Nous apprécions cela. C'était une conférence formidable et, ayant été témoin de tant de souffrance au fil des ans, |
| |
Tout ce que vous dites est absolument vrai. Soulager la douleur est très important pour nous. |
| |
Nous avons reçu une question, enfin, plusieurs ; nous avons répondu à certaines d'entre elles lors de la séance de questions-réponses, mais ce que je voulais vous soumettre, c'est… |
| |
Cela a-t-il à la fois soulagé la douleur et exercé une certaine attraction, rendant ainsi JMP plus puissant ? |
| John Hall |
Eh bien, je pense que ce qui fait le plus plaisir à tout le monde, c'est Graph Builder. |
| |
C'est incroyablement puissant de simplement glisser-déposer ces variables, de faire quelques clics supplémentaires et on obtient le graphique souhaité, qu'on peut modifier très facilement. |
| |
C'est donc un vrai plaisir. C'est une fonctionnalité puissante et un soulagement de la douleur ; c'était plus difficile à faire avant. Je pense que c'est ce que tout le monde préfère. |
| |
Mais bien sûr, il y a… JMP est un produit complet et nous sommes fiers de tout ce qu'il contient. La conception d'expériences, tout y est. |
| |
La puissance en jeu est immense, et nous avons essayé de simplifier au maximum ce processus. Tant de choses me viennent à l'esprit. |
| Jeff Perkinson |
Très bien. Merci beaucoup, John, c'est très gentil. Si cette conférence vous a plu, j'ai deux suggestions à vous faire. Premièrement, nous allons publier ceci |