Alors que nous développons des outils analytiques dans JMP, nous devons inévitablement prendre des décisions sur la façon de prioriser:
Doit-on rendre le produit plus puissant en ajoutant plus de muscle? Devrions-nous le rendre plus sexy, plus excitant? Devrions-nous nous concentrer sur le soulagement de la douleur, ce qui la rend moins frustrante, moins lourde? Dans le langage des longs mots A, faut-il opter pour un anabolisant, un aphrodisiaque ou un analgésique?
John Sall pense que la réponse est analgésique. Le soulagement de la douleur doit être la principale force motrice du développement. Bien sûr, les trois ne s'excluent pas mutuellement. L'ajout d'une fonction de puissance intéressante pourrait également soulager la douleur. Mais le soulagement de la douleur est essentiel, car la douleur est la condition qui peut vraiment nous geler, nous démotiver, nous faire arrêter à une perspective moins que complète de ce que nos données peuvent nous dire.
Transcription générée automatiquement ...
Orateur
Transcription
Jeff Perkinson Lorsqu'il s'agit de développer des fonctionnalités JMP, John Sall, notre prochain conférencier, a une manière intéressante de réfléchir à la façon dont nous établissons les priorités. Nous devons prioriser les fonctionnalités que nous ... dans quelles fonctionnalités nous souhaitons investir. Alors, comment pensons-nous à ce qui est le plus important? Les fonctionnalités qui rendent notre produit plus puissant sont-elles sur lesquelles nous devrions travailler? Qu'en est-il des fonctionnalités qui le rendent plus attrayant ou plus sexy ou des fonctionnalités qui se concentrent sur le soulagement de la douleur, allégeant ainsi le fardeau de l'analyse? Eh bien, John pense que le soulagement de la douleur devrait être le principal facteur de motivation de notre équipe de R&D. John est le co-fondateur de SAS. Il est l'architecte principal de JMP, qu'il a fondé il y a plus de 30 ans. Pour les scientifiques et les ingénieurs qui ont des données et qui ont besoin d'un moyen de les explorer, ils ont besoin d'un moyen de les explorer facilement visuellement sur le bureau. Il va parler des forces motrices du développement de JMP et de la manière dont nous rencontrons les fonctionnalités sur lesquelles nous voulons travailler. Alors sur ce, j'aimerais vous souhaiter la bienvenue, John. Merci. John Sall Merci, Jeff. Et nous voici en direct du nouveau centre de conférence numérique de Cary en Caroline du Nord, où nous pouvons accueillir beaucoup plus de personnes. Alors baissons un peu les lumières. Eh bien, je ne suis pas vraiment ici dans le centre de conférence numérique. Je suis vraiment chez moi. Alors j'ai un bureau à domicile. Oups. Pas celui là. Comme nous tous. Je suis à la maison, j'anime cette conférence. Mais passons à une expérience d'entreprise et commençons. Alors, de quoi dois-je parler? Eh bien, quand nous avons des versions JMP, les années où l'alliance de la conférence avec JMP sort, c'est ce dont nous parlons, mais les années sur deux, je choisis toujours un sujet. J'ai donc choisi de grosses statistiques un an, ou des données fantômes l'année suivante ou des caractéristiques secrètes il y a deux ans. Aujourd'hui, mon sujet est les grands mots qui commencent par la lettre A. Eh bien, ce sont des mots caractérisés par des thèmes pour le développement de JMP. Alors laissez-moi partager mon écran. Et minimisez ici. Partager. Alors, quel thème est le plus important? Et voici les trois mots commençant par ... les grands mots qui commencent par la lettre A. Comme Jeff vient de le mentionner, le premier est anabolisant. Eh bien, l'anabolique consiste à développer des muscles, ce qui rend JMP plus puissant. Les processus anabolisants construisent les organes et les tissus et ces processus produisent la croissance et la différenciation des cellules pour augmenter la taille du corps. Alors augmenter la puissance de JMP serait l'opportunité et c'est bien sûr très important, mais le prochain aphrodisiaque, rendant 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 vos progrès pendant le flux de travail, donc analgésique est le troisième mot, et cela signifie soulagement de la douleur. soulagement de la douleur. Je veux donc que les gens expriment des choses comme les citations imaginaires suivantes: \! "La version 15 vient de me servir ... m'a fait gagner des heures, voire des jours de travail sur lesquels je devais travailler. \!" C'est beaucoup de soulagement de la douleur. Ou \! "J'avais l'habitude de faire chacun individuellement et maintenant tout est en un seul coup. \!" Beaucoup de soulagement de la douleur là-bas. Ou \! "Avant, je devais utiliser plusieurs autres outils pour tout faire, mais maintenant je peux tout faire dans JMP. \!" Ou \! "J'ai montré à mes collègues comment je le faisais si facilement. Et ils ont été étonnés. \! " Ou \! "J'avais l'habitude de programmer tout cela manuellement, et maintenant c'est juste quelques clics de souris et c'est fait. \!" Ou \! "JMP me maintient dans le flux, gardant mon attention sur l'analyse des données plutôt que de les détourner trop vers les détails opérationnels. \!" Ce sont les expressions de soulagement de la douleur que nous voulons entendre. Maintenant pourquoi la douleur et la frustration sont de véritables démotivateurs. Le flux est important. Vous n'êtes pas distrait lorsque vous êtes en flux. Lorsque vous êtes en flux, vous êtes plus susceptible d'apprendre quelque chose des données et de faire des découvertes. Désormais, l'autonomisation est également importante, mais les nouvelles fonctionnalités ont tendance à être utilisées par quelques-unes seulement et les anciennes par beaucoup. Nous voulons donc améliorer le fonctionnement des anciennes fonctionnalités pour réduire la douleur liée à leur utilisation. Et bien sûr, la productivité dépend énormément de l'efficacité de nos outils par rapport à l'utilisation du temps. Donc, si nous pouvons faciliter et accélérer l'obtention des résultats, c'est une énorme victoire. Passons donc en revue de nombreux exemples. Tout d'abord, les scripts fournis avec les tables de données. Vous voyez donc ici côte à côte, un exemple d'une version antérieure de JMP. Je pense que c'est JMP 14 ou 13, où vous aviez l'habitude de maintenir le bouton de la souris enfoncé sur ce bouton, puis il a fait apparaître un élément de menu, puis vous avez trouvé un bouton d'exécution pour exécuter ce script. Mais la nouvelle méthode n'a qu'un bouton de lecture juste à côté du script. Il vous suffit donc de cliquer sur ce bouton de lecture et cela vous évite de dérouler un menu. Eh bien, ce n'est pas une énorme victoire, vous pensez que la différence entre cliquer sur un bouton et dérouler un menu n'est pas beaucoup. Mais c'est aussi une grande victoire pour les nouveaux utilisateurs, car les nouveaux utilisateurs n'ont plus à comprendre qu'un bouton chaud sera exécuté en dessous. Mais il y a le bouton de lecture juste là avec le script. Et donc on comprend mieux que ce sont des scripts. Et la possibilité de stocker des scripts avec vos données est un gros problème dans JMP et nous voulons que les gens l'apprennent tout de suite et qu'ils n'aient pas à pêcher à deux ou à consulter une astuce pour savoir que c'est comme ça. Et c'est une grande commodité de pouvoir stocker tous vos scripts dans la table de données elle-même et de ne pas trouver d'autres emplacements pour les stocker. Donc, pour les nouveaux utilisateurs, le bouton de lecture. Donc, c'est un soulagement de la douleur juste dans ce simple changement. Et c'est un changement que nous regrettons de ne pas avoir fait beaucoup plus tôt dans JMP. Parlons de la préparation des données. Et l'une des grandes choses que vous devez faire lorsque vous préparez des données est de joindre des données provenant de plusieurs sources. Maintenant, JMP, même à partir de la première version, devait rejoindre l'utilitaire. Mais cela implique toujours un dialogue complexe et le travail avec plusieurs tables de données. Voici donc l'exemple classique où je loue des films et nous avons notre table de transaction de location de films qui contient le client, le numéro d'article, la date de commande, l'année de commande, puis nous avons notre inventaire de films à louer, des détails sur chacun film. Et puis nous avons les clients ... des informations sur les clients et ainsi de suite. Et nous voulons poser des questions, impliquer les trois tableaux comme quels genres prévalent dans quels genres de films. Eh bien, cela implique de parcourir les trois tables, et bien sûr, la commande join est le moyen de le faire. Je prends les données de transactions et je les fusionne avec les clients. Et bien sûr, l'identifiant client est la colonne correspondante et je souhaite inclure les non-correspondances du côté de la transaction. Donc, si je n'ai pas de données client, je ne perds toujours pas mes données de transaction. Et cela s'appelle la jointure externe gauche, ce qui crée la nouvelle table de données. Et maintenant, à cette table de données, je veux joindre cela aux données d'inventaire. Je rejoins donc cela par le numéro d'article auquel je correspond alors et que je veux aussi une jointure externe gauche et maintenant j'ai une autre table. Et donc maintenant, au lieu d'avoir trois tableaux, j'ai cinq tableaux, les résultats de cette jointure, mais maintenant je peux chercher à répondre à la question du genre par genre, quel genre a tendance à louer le plus de quel type de film. Et impliquait la création de tous ces nouveaux tableaux de données intermédiaires. Il s'avère qu'il existe un moyen beaucoup plus simple de procéder et que la douleur de ces étapes supplémentaires et de ces tables supplémentaires peut être considérablement réduite. Alors laissez-moi défaire cette table sur cette table. Et je tiens à souligner que sous la commande tables, il existe une commande appelée JMP query builder et cela ouvre la fonction suivante pour joindre des tables, c'est beaucoup plus facile que toutes ces boîtes de dialogue de jointure, mais cela crée également une nouvelle table de données. Mais il y a quelques versions, nous avons sorti quelque chose d'encore mieux qui réduit encore plus la douleur et c'est la jointure virtuelle. Donc, si je regarde cette table de transaction, j'ai remarqué qu'elle est déjà jointe. Ce qui s'est passé, c'est que lorsque j'ai préparé le, le tableau d'inventaire des films, il est identifié de manière unique par le numéro d'article. Et donc je donne le numéro d'article puis un identifiant de lien indiquant qu'il est identifié de manière unique par cela et que c'est ainsi que je peux indexer cette table. Et de même, j'ai un identifiant d'article pour identifier les données client. Et quand je prépare mes données de transaction, j'ai ces deux-là, dans un sens, des clés étrangères, une référence de lien et il fait référence à une table de données différente par le, le ... l'ID d'identification à travers eux. Et donc, il le lie automatiquement et j'ai déjà tout ce dont j'ai besoin pour répondre à cette question. Donc je peux faire pour chaque genre, je peux trouver le genre de film que je veux faire. Et donc je peux voir ici que les films d'action sont plus appréciés par les hommes et les films de famille par les femmes et les rom com plus par les femmes et ainsi de suite. J'ai donc répondu à ma question concernant trois tables sans avoir besoin de parcourir toutes les jointures, car elles sont virtuellement jointes en faisant correspondre ces colonnes d'ID dans les tables. J'en ai donc beaucoup soulagé la douleur. Alors fermons cela, en fait. Donc, la jonction des tables de données a impliqué, je pense, beaucoup de soulagement de la douleur au cours des versions. Le recodage, c'est l'une des principales autres choses que nous faisons lorsque nous préparons des ensembles de données. Nous avons commencé avec un recodage très simple il y a de nombreuses versions où nous avions juste un champ pour l'ancienne valeur et la nouvelle valeur et la nouvelle valeur a été démarrée avec la même valeur que l'ancienne, puis je peux couper et coller ou modifier ces valeurs dans afin de recoder dans une nouvelle colonne ou la colonne existante. Et recoder chaque version a subi des améliorations spectaculaires et nous sommes très enthousiasmés par l'état actuel de cela. Et alors regardons cet ensemble de données d'hôpitaux, d'hôpitaux de district. Et maintenant, recoder est à droite sur le bouton droit ou sur le menu contextuel dans l'en-tête de la colonne. Et je peux passer en revue et simplement sélectionner un tas de choses et les regrouper à une nouvelle valeur, comme une clinique. Mais je pense qu'il y a aussi beaucoup de raccourcis. Et l'un de mes raccourcis préférés est de regrouper des valeurs similaires. Et donc je peux donner un certain seuil du nombre de différences de caractères et ainsi de suite et il regroupera automatiquement toutes ces choses. Donc, il regroupera tous les hôpitaux de district avec des orthographes légèrement différentes en un seul. Et je peux encore ... on dirait qu'il en a manqué un. Mais ça va, je peux maintenant grouper celui-là avec les autres et tous les, tous les hôpitaux ruraux ont été automatiquement groupés par ceux qui correspondent et il semble que je puisse en associer un supplémentaire ici. Et maintenant, tout d'un coup, j'ai quelque chose. J'ai économisé beaucoup d'efforts en faisant tout ce recodage. Et bien sûr, dans JMP 15, nous avons ajouté de nouvelles fonctionnalités, que je ne montrerai pas ici, mais je tiens à le souligner. Si vous avez un autre ensemble de données avec tous les ... a prouvé que ... les meilleurs noms de catégories pour ces catégories, je peux passer par un processus de correspondance et lui faire choisir la correspondance la plus proche quand il trouve une correspondance avec toutes ces choses. Donc, recode a connu beaucoup d'évolution au fil des versions pour réduire la douleur dans cette opération. Et bien sûr, pensez-y. Combien de temps passons-nous à préparer les données par rapport à leur analyse? Souvent, 70 à 90% de notre temps est consacré à la préparation des données. Et donc, réduire la douleur de cela et réduire le temps de cela deviennent des victoires majeures. Donc soulagement de la douleur lors du recodage. Cliquer sur les valeurs. Voici l'ensemble de données des villes. Et supposons que lorsque je regarde les détails de certaines de ces choses, comme peut-être une valeur aberrante pour quelque chose, je veux l'examiner plus en détail. Et je peux donc en faire un lien. Alors, transformons-le en une page wiki Wikimedia. Je vais copier ce texte là-bas et accéder aux informations de la colonne, puis le transformer en lien, qui est le gestionnaire d'expression. Et maintenant, je peux prendre ce tableau et le convertir en une adresse Web. Je vais donc aller sur wikipedia.org, puis prendre le nom de cette ville et le changer en casse du titre et je peux le tester sur cette ligne et faire apparaître Albany. Et donc maintenant je vais dire ... Ah d'accord. Et maintenant, je peux cliquer sur n'importe quelle ville, puis obtenir l'article Wikipédia sur cette ville. Ou il peut le changer en coordonnées cartographiques. Donc je peux ... copions ce texte et allons aux informations de la colonne et maintenant au lieu de cela, je vais faire la casse du titre sur cela. Voyons si cela fonctionne bien. Et maintenant, je peux cliquer sur Denver et il interrogera Denver et Google Maps. D'accord, j'ai donc transformé des choses en liens à faire ... Je peux faire des recherches, faire des requêtes de carte, etc. Je peux même y coller ce discours et cliquer dessus et lui faire prononcer le nom de la ville. Et donc, je pense que cela donne une grande puissance pour pouvoir stocker des liens dans nos tableaux de données qui renvoient à des pages Web ou faire d'autres choses, tout ce que vous pouvez exprimer avec ACL, vous pouvez le faire avec ces gestionnaires d'événements. Cela peut donc réduire beaucoup de douleur. Donc, l'une de mes techniques préférées de réduction de la douleur est la diffusion, et c'est là que vous maintenez la touche de commande ou la touche de contrôle enfoncée pour faire des multiples, où vous avez beaucoup d'analyses similaires. D'accord, cela ne fonctionne pas seulement pour les commandes de menu, mais pour de nombreux boutons et pour redimensionner les cadres de graphique et faire d'autres choses, coller des éléments dans des graphiques, etc. Alors faisons un exemple de cela. Et cliquons sur ... ou faisons simplement une distribution sur toutes ces colonnes. Et disons que je voulais me débarrasser de cette boîte à moustaches. Et si je maintenais simplement cet élément de menu, j'éliminerais la boîte à moustaches pour cet élément. Mais ce que je veux faire, c'est éliminer la boîte à moustaches pour tous les éléments. Donc, ce que je vais faire est de maintenir la touche de commande enfoncée et de décocher la boîte à moustaches et maintenant elle n'est pas cochée pour toutes ces choses. Je peux maintenant décocher les quantiles et tout décocherait, car il a pris cette commande et diffusé sur tous les objets actifs de cette fenêtre, et pour les objets actifs qui comprennent cette commande, la commande quantiles par exemple, il obéira alors que cette commande. Maintenant, cela fonctionne même pour certaines choses qui ont à voir avec les dialogues d'invite. Alors regardons les statistiques sommaires. Permettez-moi de maintenir la touche de commande enfoncée et de personnaliser les statistiques récapitulatives. Et disons que je ne veux pas des limites de confiance, mais je veux le nombre de valeurs manquantes. Et je dirai, d'accord, et cela s'appliquera à tous ... toutes les choses. Pour ce faire, il a dû prendre les résultats de ce dialogue, en faire un script, puis diffuser ce script à tous les autres endroits de cette fenêtre. Maintenant, cela n'arrive pas tout le temps. Parfois, lorsque vous recevez une invite, vous obtenez une invite pour chaque analyse. Pour chaque version, nous essayons de mettre en œuvre quelques détails supplémentaires, où le dialogue est fait avant la diffusion afin qu'il diffuse le même dialogue à chaque endroit disponible. Et bien sûr, tout le reste, je peux diffuser un changement et cela changera, vous savez, la taille de tous ces éléments, ou je peux diffuser en changeant la couleur d'arrière-plan, et je peux changer toutes les couleurs d'arrière-plan en orange dans tous les tracés qui qui semblent pertinents pour cette boîte de cadre. Cette diffusion devient donc un outil très puissant. Donc, cela a sauvé beaucoup de douleur pour la plupart d'entre nous, mais il y a encore des cas où vous pourriez avoir 40000 par groupes, comme cela est arrivé plus tôt cette année, et il veut faire une prédiction inverse sur les 40000 et cela vous invite 40000 fois . Cela sera corrigé pour la version 16. C'est beaucoup de soulagement de la douleur pour 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 en direct afin que vous puissiez examiner cette formule, vous pouvez la modifier, vous pouvez l'appliquer aux nouvelles données qui arrivent. Vous pouvez le profiler avec la formule d'enregistrement. Vous pouvez si vous avez JMP Pro, vous pouvez accéder au dépôt de formules et faire beaucoup d'autres choses. Vous pouvez générer du code à partir de celui-ci et ainsi de suite. Donc, la possibilité de sauvegarder des formules est une chose importante, mais parfois si vous avez par groupes, par exemple, enregistrer des formules a beaucoup de subtilité supplémentaire. Par exemple, ajustons, ce sont les données sur le diabète, où nous ajustons la réponse à tous ces prédicteurs et mais nous voulons le faire séparément pour chaque sexe. Alors faisons ça. Et donc nous en avons deux par groupes pour le genre un et le genre deux. Et maintenant, disons que nous voulons enregistrer la valeur prévue, en fait, pour les deux. Maintenant, dans l'ancien temps avant que nous ne soyons soumis à cela à de nombreuses méthodes de soulagement de la douleur, ce qui se passait lorsque vous le sauvegardiez, cela irait dans une table de données locale. Si vous regardez dans la fenêtre de la table de données sous refaire, elle affiche la table par groupe. Donc, vraiment pour gender = 1, il y en a 235 dans cette table de données virtuelle ici, que vous pouvez afficher pour gender = 1. Il y a une variable de table ici qui montre le groupe par pour cela. Et cela l'enregistrerait dans cette table temporaire au lieu de la table réelle que vous avez réellement enregistrée. Mais il y a quelque temps, lorsque vous avez enregistré la formule de prédiction, nous la sauvegardons dans la table de données réelle. Et si je regarde cela, je l'ai juste enregistré pour gender = 1, et si je regarde la formule pour cela, cela montre que si gender = 1, c'était la clause by group, alors il a cette combinaison linéaire qui forme un prédiction pour cette variable. Et puis si je fais ensuite gender = 2 ou si je maintiens la touche de commande enfoncée pour diffuser la formule de prédiction, maintenant il les a tous les deux et j'ai les deux clauses disponibles pour le genre 1 et le genre 2. Il s'agit donc d'ajouter une clause à chaque fois à cette sortie par groupe. À propos, la même chose se produit lorsque vous enregistrez d'autres choses, lorsque j'enregistre une colonne de résidus et que nous maintenons la touche de commande enfoncée cette fois. Si j'enregistre une colonne de résidus, il l'enregistrera pour chacun par groupe, il enregistrera le résidu approprié pour cela par groupe. C'est comme si vous soustrayiez la formule prédite de la réponse d'origine, mais cette fois sans être une colonne de formules. Dans presque tous les endroits de JMP, nous ne l'avons pas fait partout, mais nous l'avons fait dans la plupart des endroits, en enregistrant dans un par groupe ou dans certains cas via une clause where, il l'enregistrera ensuite dans la table de données d'origine avec la condition dans l'instruction if. D'accord, cela a économisé beaucoup d'efforts. Si cela n'était pas disponible, tt a été enregistré dans une table temporaire et vous devrez alors couper et coller cette formule et créer des tables dans la table d'origine. Nous avons donc résolu ces problèmes. Supposons maintenant que je l'ai sauvegardé à nouveau, que j'ai refait tout ce processus et que j'aie fait autre chose, par exemple avec différentes variables, dont certaines ont été supprimées, et que j'ai maintenant sauvegardé à nouveau. Donc, j'enregistre la formule de prédiction, cette fois en maintenant la touche de diffusion enfoncée, c'est en fait une nouvelle au lieu d'enregistrer dans l'ancienne et ajoute un 2 après elle. Eh bien, comment sait-il ne pas le sauvegarder dans l'ancien? Eh bien, chaque ajustement a un identifiant. Et si je regarde les propriétés par ID, il a le numéro, un numéro unique qui est régénéré pour chaque ajustement, et tant qu'il a un ID différent, les différents par groupes auront le même ID avec un par partition. Mais tant qu'il a le même identifiant, il l'enregistrera dans la même chose. Sinon, il fera un nouvel endroit pour se former pour le sauvegarder. Aussi, chaque fois que nous disons des valeurs prédictives, en particulier des formules de prédiction, cela créera un attribut le, le créateur et dans certains cas d'autres informations. Dans ce cas, il a la variable cible y, c'est ce qui prévoit et le créateur ajuste les moindres carrés. Et puis, lorsque vous faites d'autres plates-formes, comme si vous avez une comparaison de modèles JMP Pro, cette comparaison de modèles comprendra quelles valeurs prédites se référant à quel créateur, dans quelle cible. Et ainsi, il peut garder une trace de toutes ces informations pour ces plateformes à valeur ajoutée. Ainsi, les colonnes de formules fonctionnent en ajoutant de nouvelles clauses et d'autres propriétés sont utilisées, y compris le by ID. Et les clauses de prédiction, si vous les enregistrez dans des variables catégorielles, cela enregistre toute une gamme de variables pour avoir les probabilités pour chaque niveau de réponse, et tout ce qui est contenu avec toutes les métadonnées et les besoins. Et cela devrait épargner beaucoup de douleur. Donc, supprimer les effets des modèles. Eh bien, regardons un exemple d'ajustement juste en fonction du poids. Eh bien, voici un exemple de polynôme de haut degré. Il s'agit d'un polynôme de septième ordre qui s'adapte mieux que les polynômes de sixième ordre et ainsi de suite. Mais feriez-vous confiance à cela? Il s'avère que si vous donnez au modèle beaucoup de flexibilité en introduisant des termes polynomiaux élevés ou simplement en introduisant plus de variables, cela donne beaucoup plus de possibilités d'ajustement. Et dans ce cas, cela donne la possibilité de faire une plongée profonde entre les données précédentes et le dernier point de données juste pour mieux s'adapter à ce dernier point de données. Et donc c'est surajustement. C'est moyen ... il utilise ce paramètre pour ajuster le bruit au lieu d'ajuster les données elles-mêmes. Le surajustement est donc un problème à chaque fois que vous avez de gros modèles. Vous voulez donc adapter 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 fonction de la variable y qu'ils utilisent, mais aussi que la variable y est est une partie systématique de cette variable plus la partie erreur de cette variable si cette partie variable est aléatoire, alors votre prédiction implique que ce caractère aléatoire. Et si vous lui permettez trop de flexibilité, cela va se retrouver avec un problème de surajustement que vous allez prédire bien pire en incluant toutes les variables dans ce modèle. Le remède est donc de rétrécir le modèle, de réduire la taille du modèle ou de réduire la taille des coefficients dans le modèle, de sorte que moins de cette variation du terme aléatoire du modèle soit transmise à la valeur prédite. Et donc, dans les petits problèmes DOE, ce n'est pas un problème car les données sont petites et les données sont bien équilibrées pour s'adapter exactement au modèle que vous recherchez. Mais pour les données d'observation dans tous les grands modèles, le surajustement est un réel problème. Les utilisateurs n'ont donc souvent pas apprécié cela jusqu'à ce que nous introduisions la validation croisée dans JMP Pro. Donc, si vous avez JMP Pro, vous pouvez configurer une colonne de validation, qui retiendra certaines des données afin d'estimer l'erreur sur cet ensemble de données de retenue. Et voici un exemple où j'ai ... J'essaie de prédire les propriétés du béton en fonction de tous ces ingrédients dans le béton, et j'ai un énorme modèle pour cela. Et si je lance juste ce modèle, mais que je retiens certaines des données et que je regarde le carré R là-dessus, j'ai pour SLUMP, j'ai un ajustement parfait. J'ai un R au carré 79, mais sur l'ensemble de validation que je correspond, j'ai un R carré négatif. Tout carré R négatif signifie qu'il correspond moins bien que de simplement ajuster la moyenne. Donc, si je correspondais à la moyenne, j'aurais un R carré de zéro. Si j'adapte tout ce modèle, j'ai un carré R qui est bien pire que cela. Donc, avec les grands modèles, vous pouvez aller pire que simplement ajuster le fait que c'est pire que c'est un peu anti-informatif parce que le modèle est si grand et que nous n'avons eu aucun effort pour réduire la taille du modèle. Le modèle a été dominé par le bruit et non par le signal. C'est donc un problème auquel vous devez prêter attention. L'important est donc de pouvoir réduire la taille du modèle. Et maintenant, nous avons introduit une commande de dialogue de modèle pour ce faire. Entrons dans le diabète avec avec modèle. Je peux exécuter ce modèle et si, disons, je veux supprimer beaucoup de ces choses ne sont pas très importantes. Vous savez, l'âge a une contribution totalement non significative au modèle, et je veux donc éliminer l'âge. Eh bien, je le ferais, je pourrais revenir en arrière pour adapter le modèle et le rappeler ou puis éliminer l'âge. Ou il y a, je peux simplement revenir au dialogue de modèle directement ici et ajuster l'âge et le supprimer, mais j'ai peut-être une longue liste de modèles ici et aller et venir pour faire ces choses est une bonne quantité de travail. Et donc plutôt que de faire ça ... voyons ce que je fais ici. Il y a plusieurs versions, nous avons introduit un nouveau rapport appelé le résumé des effets. Et avec un résumé d'effacts, il est très facile de sous-définir le modèle pour mieux prédire, lui donner moins de flexibilité. Donc je peux dire, eh bien, l'âge, je peux supprimer ça. Ou bien, il y a beaucoup de variables. Supprimons trois autres. LDL, eh bien, cela semble plus significatif. Et donc je peux sauvegarder ce modèle. Sauvegardons-le simplement dans la table de données. Et je reviens plus tard et dis, eh bien, laissez-moi me souvenir de ce modèle qui a ceci. Je peux réellement annuler la chose précédente. Et donc je peux annuler cela et cela ramène trois des variables et je peux annuler cela et cela ramène de l'âge. Donc, il stocke en fait, lorsque j'utilise le résumé des effets pour éditer le modèle, il stocke en fait une mémoire de toutes ces choses. Et si je regarde ce script, je peux voir cette histoire. Donc, chaque fois que j'ai fait un modèle d'effet, il stockait une clause d'histoire. Et quand je fais les annulations, ça revient à cette histoire. La suppression est donc facile. Je peux aussi ajouter des choses. Si je soustrais ces deux choses, je pourrais les rajouter. Je pourrais rajouter, disons, l'âge. Ce n'est pas une bonne chose à faire, mais je peux le faire. Je peux également éditer le modèle en ramenant une petite version du modèle et du dialogue de modèle et ajouter des effets composés et ainsi de suite. Maintenant, une autre chose qui se produit avec les grands modèles et (permettez-moi d'annuler cela). Avec les gros modèles, vous faites beaucoup de tests d'hypothèses. Donc, si vous avez un grand nombre de tests d'hypothèses, vous devez prendre en compte certains ajustements et l'un d'eux est appelé le taux de fausses découvertes. Et donc, 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 ajustées pour le biais de tests multiples, pour le biais de sélection impliqué dans le sous-ensemble du modèle. Et donc je peux lui appliquer une correction du taux de fausses découvertes. Donc, au lieu de la valeur p régulière, j'ai la valeur p ajustée pour la fausse découverte. Et maintenant je suis plus réaliste. Donc, cela va m'aider avec le problème de surajustement et l'hypothèse ... le problème du biais de sélection en faisant beaucoup de tests multiples. Alors, passons maintenant au sujet suivant et ça transforme. Supposons que vous souhaitiez créer un modèle, mais qu'au lieu de y, vous vouliez ajuster le journal de y. Eh bien, avant de créer une nouvelle colonne dans l'ensemble de données, Log y, puis pour Log y, vous spécifiez un ... faire une formule. Et je peux en prendre un journal. Et maintenant, je peux revenir à la spécification de mon modèle et faire cela Log y et puis j'ai obtenu ma forme. Oh, il manque, qu'est-ce que j'ai fait? Oublié d'entrer l'objectif, l'argument. Et maintenant je peux adapter le journal de Y Et maintenant je l'ai fait. Mais faisons le profileur. Mon profileur est en termes de journal de Y. Laissez-moi enregistrer la valeur prévue. Ma formule de prédiction est en termes de log de y, et maintenant je vais devoir aller éditer cela à la main ... cette formule et prenez l'exponentielle de cela pour la ramener à l'échelle d'origine. C'est donc beaucoup de douleur de faire des transformations de cette façon. Eh bien, il y a plusieurs versions, nous avons introduit des transformations. Je peux donc prendre cette transformation et la transformer en journal et maintenant l'utiliser directement comme une transformation et cela ne fait pas partie de la table de données. C'est une variable virtuelle avec une formule, mais non ajoutée à la table de données. Et maintenant, je peux adapter mon modèle au Log y. Supprimons l'âge pour qu'il s'adapte un peu mieux. Oups. Si cela avait été sélectionné aussi. Et maintenant, j'ai adapté la réponse Log y. Donc, si je profil cela, qu'est-ce que j'obtiens? Profilage factoriel, profileur. Au lieu de profiler le journal de y, il profile y. Le profileur considère cela comme une transformation et dit, eh bien, je peux inverser cette transformation et revenir à l'échelle d'origine. Et c'est ce qu'il fait. Il se déstransforme, se transforme en arrière à travers le log de y pour prendre la prédiction et la mettre à l'échelle d'origine. Et il le fera pour la plupart des transformations qui peuvent se dérouler. Si une transformation implique plusieurs variables et ainsi de suite, elle ne peut pas le faire et elle ne fera que les transformations. Donc l'original Même chose quand 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 log de y. Et donc, ces choses sont un gain de temps incroyable et économisent beaucoup d'efforts dans l'utilisation des transformations. Alors il y a ... Permettez-moi de revenir sur le diabète et de faire une autre ... envisager une autre transformation. Lorsque vous faites une variable, vous pouvez obtenir une transformation Box-Cox. Et parmi le profilage des facteurs, l'option Box-Cox vous indique si vous avez transformé toute une gamme de fonctions de puissance, que serait-il préférable de faire? Doit-il être simplement non transformé? Ce serait une valeur lambda Box-Cox de un. Si vous avez fait zéro, cela équivaudrait à en prendre un journal. Si vous faisiez -1, cela équivaudrait à en prendre la réciproque. La puissance du -1. Si vous aviez environ 0,5, cela équivaudrait à prendre la racine carrée de cela. Et cela vous dit que ce modèle conviendrait mieux sur une échelle de transformation ajustée pour cette transformation, s'il était plus le long de la transformation de racine carrée, où lambda était de 0,453. C'est la valeur optimale dans la transformation Box-Cox. Et vous pouvez zoomer dessus avec une loupe pour l'obtenir plus précisément. Donc, maintenant je peux transformer, et il y a plusieurs versions, je peux ... J'ai ajouté plusieurs colonnes. L'un est refit avec transform, qui créera une nouvelle fenêtre avec la réponse de transformation. Et un autre remplace la transformation et je vais le faire. Et plutôt que .453, je vais simplement prendre une transformation de racine carrée (.5) et maintenant j'adapte le modèle avec cette transformation. Et maintenant, le meilleur lambda se situe autour de 1, ce qui est là où il devrait être, car il est déjà transformé à la fois par la transformation Box-Cox. Et maintenant, je peux enregistrer la valeur prévue de cela et le profiler, etc. Et je peux même le défaire. Donc, si je n'aime pas cette transformation et que je veux revenir à l'original, je peux revenir à l'original et refaire. Nous avons donc fait beaucoup d'économies de douleur en transformant les réponses. Alors maintenant, il y a une douleur particulière, un endroit spécial de douleur lorsque vous avez beaucoup de données. Et nous avons fait beaucoup d'efforts pour essayer de résoudre de gros problèmes avec moins de douleur. 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 big data avec de gros problèmes. Donc, si nous avons des analyses conçues à l'origine pour traiter de petits problèmes, cela peut ne pas convenir aux gros problèmes, et le problème central avec les gros problèmes est qu'il y a tout simplement trop de résultats à trier. Si en ajustant le même modèle à 1000 variables, j'ai 1000 rapports à trier. Si je recherche des valeurs aberrantes parmi 1 000 colonnes, il n'y a que des valeurs aberrantes, vous savez, des rapports séparés pour chaque colonne et ainsi de suite. Je veux pouvoir passer plus efficacement à travers un grand nombre de grands ensembles de données. Nous avons donc développé le menu de dépistage, qui vise à résoudre ces grands types de problèmes. Et de plus, il existe de nombreux endroits dans JMP qui résolvent mieux les gros problèmes. Par exemple, des séries chronologiques. La nouvelle plateforme de prévision de séries chronologiques prévoit plusieurs séries chronologiques, au lieu d'une seule. Ainsi, les éléments de la plate-forme de dépistage explorent les valeurs aberrantes, explorent les valeurs manquantes, explorent les modèles. Il s'agit de faire des vérifications de données et ensuite de rechercher des associations, de filtrer les réponses, de filtrer les processus, de filtrer les prédicteurs. Et bien sûr, la prévision des séries chronologiques est un nouvel élément. Ce n'est pas dans le menu de dépistage, mais il est organisé pour traiter de gros problèmes. Et toutes ces choses profitent, non seulement de moyens plus compacts pour représenter les résultats afin que vous n'ayez pas à des milliers de rapports, mais ils sont également efficaces en termes de calcul. Ils utilisent le multithreading afin de tirer parti des multiples cœurs de votre processeur pour le rendre très rapide. Alors disons que vous avez beaucoup de données de processus; vous avez 568 variables. Alors, laquelle de ces variables semble saine? Le criblage des processus est conçu pour répondre à cela. Et ainsi il peut trier par la stabilité ou trier par la capacité (Ppk) ou ceux qui sont mauvais ou trier par les mesures de carte de contrôle, les comptes hors de contrôle et ainsi de suite. Mais ce qui est encore ... J'aime même mieux, certains des outils qui montrent tous les processus dans un seul graphique. Et il y en a deux que j'aime. L'un est le diagramme d'objectifs qui montre comment chaque processus se comporte par rapport aux limites de spécification et s'il s'agit d'un processus capable, c'est dans cette zone verte ici. Si c'est marginal, c'est dans la zone jaune. Si ce n'est pas le cas, c'est dans la zone rouge, et s'il est en haut, il y a trop de variance. Si c'est d'un côté de l'autre, alors il y a un problème. Avec... C'est décentré, pas cadré. Mais si c'est dans la zone verte, c'est un bon processus, et avec la version 15, nous introduisons les graphlets, l'aide au survol afin que vous puissiez voir chaque processus lorsque vous le survolez. Et puis l'autre intrigue que j'aime pour résumer toutes ces choses et réduire la douleur de parcourir tous ces rapports est ce graphique de performance de processus. Donc, sur l'axe vertical, il vous indique si vous êtes dans les limites des spécifications par la capacité Ppk. Donc, si vous êtes au-dessus de cette ligne à 1,33, alors vous cherchez bien en ce qui concerne la distribution des valeurs par rapport aux limites de spécification. Vous êtes bien dans les limites des spécifications. Si ... alors l'indice de stabilité est sur l'axe des x. Donc, si c'est un processus assez instable, même s'il peut être capable mais instable. Donc, si vous regardez ce processus, il pourrait y avoir quelque chose de stabilité qui erre autour de certains. Et si vous êtes dans la zone jaune, vous êtes capable mais instable et ainsi de suite. La zone rouge est la mauvaise zone où vous êtes à la fois incapable et instable. Et donc, parcourir des centaines ou des milliers de processus est désormais facile, là où c'était très pénible. La question est: qu'est-ce qui a le plus changé? Voici quelques données d'enquête où, sur de nombreuses années différentes, vous avez posé une question sur leurs activités. Avez-vous fait du camping? Ou jouer dans un casino? Ou avez-vous eu 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, 95 activités différentes), laquelle d'entre elles a fait la plus grande différence. Et donc vous cherchez, vous savez ... une chose que vous pourriez faire est de passer par une à la fois et d'adapter cette activité par année d'enquête. Au lieu de regarder un à la fois. Je peux regarder le filtrage des réponses et simplement regarder un graphique pour voir ce qui a le plus changé. Et donc ceci montre un tableau pour toutes ces 95 choses. Premièrement, la signification en termes de log négatif de la valeur P, que nous appelons la valeur logarithmique, qui est ajustée pour le taux de fausses découvertes. Et donc, il prend en charge une partie de ce biais de sélection parce que vous triez toutes ces valeurs p. et en sélectionnant le derrière ... les faibles valeurs de P. Et je trouve que la location d'une cassette vidéo a le plus changé, la cassette vidéo, et bien sûr elle est devenue obsolète. Alors, bien sûr, cela a changé. Une autre cassette vidéo a beaucoup changé, les choses collectées à recycler ont beaucoup changé, les gens divertis chez moi ont beaucoup changé. Et voici celui qui est le moins important, mais qui a une grande taille d'effet, utilisez-vous Internet. Et bien sûr, cette enquête a été lancée avant qu'il n'y ait Internet. Et donc, cela a beaucoup changé. La question de savoir ce qui a le plus changé est donc facile maintenant, là où c'était difficile. Une autre question que vous avez posée sur le big data, où sont les valeurs manquantes. Voici donc 280 variables. Où sont les valeurs manquantes? Dois-je m'inquiéter pour eux? Et je peux regarder le rapport d'exploration des valeurs manquantes et voir que, eh bien, il n'y a que cinq de ces variables avec des valeurs manquantes. Et certains d'entre eux n'ont qu'une seule variable, une valeur manquante, mais certains en ont beaucoup. Ainsi, lorsque je fais une analyse, une analyse multivariée, je ne veux probablement pas inclure 376 variables sur 452. Ou si je veux inclure J, je peux passer en revue et imputer ces valeurs manquantes en faisant cela, d'accord. Alors, question suivante, les données ont-elles des valeurs aberrantes? Eh bien, j'ai 387 mesures, je fais dans ce processus. Et je veux savoir s'il y a des valeurs aberrantes là-dedans. Nous avons donc maintenant la possibilité de le faire dans le menu de dépistage. Je peux rendre cela plus ou moins sensible. Rendons-le plus sensible afin qu'il y ait moins de valeurs aberrantes et de nouvelle analyse. Je peux regarder les neuf. Très souvent, une chaîne de neuf est utilisée pour représenter une valeur manquante et ces neuf peuvent être de vrais neuf, mais ils peuvent être juste un indicateur d'une valeur manquante. Et donc je peux, pour ceux-ci, je peux dire bien ajouter ces neuf aux codes de valeur manquante et maintenant la mémoire a changé. Et maintenant, je peux remonter (il y a beaucoup de variables ici) et réanalyser et il y a moins de valeurs manquantes à craindre. Donc, explorer les valeurs aberrantes était une douleur. Cela peut encore être un gros travail, mais c'est beaucoup plus facile qu'auparavant. Maintenant, dans la version 15, nous avons ajouté une autre plateforme de dépistage. Les données ont-elles des modèles suspects? Et voici donc quelques données de laboratoire issues d'essais cliniques. Ce sont des données de modèles de laboratoire de nicardipine. Il y a 27 résultats de laboratoire que je voudrais peut-être examiner. Et donc j'invoque la nouvelle plateforme, explore les valeurs manquantes. Et cela va me montrer, ai-je une série de valeurs? J'ai donc la valeur 0,03536 mais il y en a sept d'affilée, en commençant par la rangée. 2065. Je peux coloriser ces cellules, et je peux examiner ces valeurs, et c'est peut-être la dernière valeur reportée, ce qui n'est peut-être pas suspect. Dans ce cas, c'est le ... c'est la même personne. Alors peut-être que la dernière valeur reportée est une chose raisonnable à faire, mais c'est un événement rare, rare si vous avez distribué ces choses ... si, si vous supposez une distribution aléatoire pour ces choses. Également la plus longue séquence dupliquée. Donc, pour cette variable et nous commençons à la ligne 2816 et également à la ligne 3034, il y en a quatre dans une ligne qui ont les mêmes valeurs. Donc, si je colorie ces choses, il y en a quatre d'affilée. Et si je passe à la séquence suivante, il y en a quatre d'affilée qui ont les mêmes valeurs. Cela pourrait donc être un symptôme de couper et coller les mêmes valeurs d'un endroit à un autre. Alors explorer les modèles est à la recherche de ces choses. Et il y a beaucoup d'autres choses que vous pouvez regarder les détails sur chacune de ces 27 variables et rechercher des symptômes de choses suspectes ou de mauvais effets de la façon dont vous avez traité les données, etc. Alors, explorez les modèles qui font partie de la résolution de gros problèmes. Donc, soulagement de la douleur. Une grande partie de notre développement vise à rendre le flux des analyses plus fluide, moins lourd, moins chronophage et moins douloureux. Analgésiques. Maintenant, nous ne savons pas toujours ce qui est douloureux. Nous dépendons donc des commentaires pour savoir sur quoi nous concentrer. Lorsque nous recevons ces courriels auxquels je devais répondre à une invite des centaines de fois, nous les avons écoutés et nous ressentons la douleur et nous l'avons corrigé afin que vous puissiez maintenant diffuser dans un groupe avec des milliers de choses et diffuser les résultats d'un dialogue plutôt que dialoguer plusieurs fois. Donc, l'envoyer l'a amélioré pour tout le monde, car nous ne l'avons pas attrapé la première fois. Alors n'hésitez pas à nous faire part de vos commentaires. Avec 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, plus fluide. Ainsi, au lieu de passer votre temps à surmonter les obstacles, vous passez votre temps à apprendre de vos données, à comprendre vos données. analytique. On pourrait se demander s'ils proviennent de la même racine, bien sûr, nous n'aimons pas abréger ces deux mots. Analytics vient de l'analyein grec, et je ne sais pas comment prononcer cela. Mais en grec, cela signifie rompre, libérer ou libérer. Et cela prend quelque chose de compliqué et le divise en morceaux pour que nous puissions le comprendre. Et c'est, bien sûr, exactement ce que nous faisons avec l'analyse des données, la science des données. Et les analgésiques proviennent d'une combinaison différente de mots \! "An- \!" signifiant sans, et \! "algésie, \!" qui est le sens de la douleur. Donc même préfixe, différent ... des racines un peu différentes. Et ne les abrégez pas. anabolisant et aphrodisiaque. Nous nous soucions du pouvoir. Une grande partie de ce que nous faisons est de vous donner des outils plus puissants pour analyser les données, une grande partie de cela dans JMP Pro, ainsi que dans JMP. Et nous espérons que les données rendent passionnant, vous savez, le frisson de la découverte. Le plaisir d'apprendre à utiliser les fonctionnalités avancées de JMP et nous pensons que c'est passionnant. Vous savez, c'est un aphrodisiaque. Donc, la puissance et l'excitation sont également importantes pour nous. Ce n'est pas seulement un soulagement de la douleur. Alors qu'allons-nous faire l'année prochaine? Eh bien, de grands mots commençant par la lettre B. Commencez par A, ensuite B, non? Eh bien, l'année prochaine, nous avons JMP 16 à venir. Et c'est donc ce dont nous allons parler. Qui sait de quoi nous allons parler l'année d'après. Alors merci beaucoup. Et nous espérons que vous souffrez très peu de difficultés lors de l'analyse de vos données. Jeff Perkinson Merci beaucoup, John. Nous apprécions cela. C'était une conversation fantastique et après avoir été témoin de beaucoup de douleur au fil des ans, c'est que tout ce que vous dites est absolument vrai. Le soulagement de la douleur est une chose importante pour nous. Nous avions une question qui a en fait suscité un certain nombre de questions; nous avons répondu à certains d'entre eux dans les questions et réponses, mais qu'est-ce que je voulais vous lancer à la fois comme soulagement de la douleur et a fourni une certaine attraction et rendu JMP plus puissant? John Sall Eh bien, je pense que le grand plaisir de tout le monde est Graph Builder. Il est incroyablement puissant de simplement faire glisser ces variables et de faire quelques autres clics et vous avez le graphique que vous voulez, et vous pouvez le modifier si facilement. Alors c'est, c'est un frisson. C'est une fonctionnalité puissante et c'est un soulagement de la douleur; c'était plus difficile à faire. Donc je pense que c'est la chose préférée de tout le monde. Mais bien sûr, il y a ... JMP est un produit riche et nous sommes fiers de tout ce qu'il contient. Conception d'expériences, toute la grande puissance impliquée là-dedans et nous avons également essayé de rendre ce processus facile. Et tant de choses me viennent à l'esprit. Jeff Perkinson Très bien. Merci beaucoup, John, je l'apprécie. Si vous avez apprécié cette conférence, j'ai deux suggestions pour vous. Premièrement, nous publierons ceci