Génération d'un tableau récapitulatif avec les valeurs p à partir d'un test t itératifJe recherche un script qui générera automatiquement un tableau récapitulatif/pivoté des moyennes et des valeurs p pour les tests t par paires par rapport à un groupe de référence. J'utilise JMP 17.
Dans le tableau de données ci-dessous, il y a des colonnes pour SubjectId, IMC mesuré, VO2max mesuré, année et Référence pour indiquer si la ligne a ou non un SubjectID qui est une référence.

J'ai généré manuellement des tableaux récapitulatifs (comme celui ci-dessous) avec les moyennes, puis j'ai rempli manuellement les valeurs p pour les tests t unilatéraux.

Je m'intéresse spécifiquement aux résultats unilatéraux de valeur p d'un test t entre chaque SubjectID par rapport à la référence pour chaque année afin de déterminer si le SubjectID non-référence a ou non un IMC ou un VO2max plus élevé que le SubjectID de référence. Jusqu'à présent, j'ai effectué manuellement un test t groupé et rapporté la valeur p et la moyenne dans un tableau récapitulatif que j'ai créé. Existe-t-il un moyen de parcourir une liste de SubjectID uniques et de générer un tableau récapitulatif avec ces statistiques effectuées de la manière décrite à l'aide de JSL ? De plus, une manière généralisée d'ajouter des statistiques récapitulatives (par exemple N pour chaque SubjectID pour chaque analyse) serait utile.
Automatisation et scriptsAnalyse et modélisation des données de baseRe : Génération d'un tableau récapitulatif avec les valeurs p à partir d'un test t itératifJe n'arrive pas à comprendre ce que vous faites avec les valeurs de votre table principale, avec le nouvel affichage dans votre table de rapport. Veuillez détailler les étapes que vous suivez pour transformer les données.
Re : Génération d'un tableau récapitulatif avec les valeurs p à partir d'un test t itératifSalut @LinkageBee996 ,
Je suis d'accord avec @txnelson , il est difficile de comprendre comment vous passez de votre table de données principale à celle que vous générez manuellement. Il pourrait être plus efficace pour vous de réorganiser votre tableau de données et de l'organiser différemment. Cela peut nécessiter de les diviser ou de joindre les données différemment de la manière dont elles sont actuellement structurées.
La raison pour laquelle je mentionne cela est que parfois des analyses peuvent être effectuées à l'aide d'une variable de groupe BY, puis les résultats de l'analyse peuvent être facilement obtenus dans un tableau de données plus grand en cliquant avec le bouton droit sur un tableau de rapport et en sélectionnant Créer un tableau de données combiné. Vous pouvez voir si c'est peut-être ce qui fonctionnerait pour vous en utilisant les exemples de données Big Class.jmp et en effectuant une ANOVA Fit Y par X avec :sex comme axe x et :height comme Y (pour mieux voir comment le faire la table de données combinée fonctionne, utilisez :age comme variable BY). Effectuez votre test t, puis cliquez avec le bouton droit sur le tableau statistique qui vous intéresse et sélectionnez créer un tableau de données combinées.
Si vous faites cela pour le test t ainsi que pour les moyennes pour Oneway Anova, vous pouvez ensuite joindre ces tableaux de données afin d'avoir la valeur moyenne de chaque groupe ainsi que la valeur p pour le test t. Cela devrait ressembler à quelque chose comme ceci, ce qui pourrait correspondre à ce que vous recherchez.

Bien sûr, vous pouvez toujours enregistrer les scripts générés dans les tableaux de données pour les regrouper dans un seul script de travail - ou utiliser l'enregistreur Workflow Builder et il pourra écrire le script pour vous, voir ici .
J'espère que cela t'aides,
DS
Re : Génération d'un tableau récapitulatif avec les valeurs p à partir d'un test t itératifSalut @txnelson et @SDF1 , j'espère pouvoir clarifier la demande et peut-être concentrer un peu la portée. Je travaille avec @LinkageBee996, il m'a donc demandé de l'aider à clarifier.
Le flux de travail actuel est le suivant :
1) Commencez par la table de données partagée par @LinkageBee996 . Pour simplifier les choses, je vais ignorer la colonne année et me concentrer uniquement sur l'IMC.
2) Effectuez un simple test t à deux échantillons comparant chacun des identifiants de sujet étiquetés « Non » pour référence à l'identifiant de sujet (A1454) étiqueté « Oui » pour référence pour un total de 5 comparaisons (il y a une raison pour laquelle nous faisons cela plutôt que de faire quelque chose comme un test de Dunnetts). Nous le faisons actuellement un par un en utilisant le filtre de données local dans la plateforme à sens unique sous « Ajuster Y par X ».
3) Actuellement, les résultats du test t (valeurs p et autres) sont ensuite transcrits manuellement dans un fichier vierge (tableau CSV ou JMP). Étant donné que nous effectuons un test à la fois, l'utilisation de « Créer une table de données » n'est pas pratique car vous vous retrouvez avec autant de tables de données que de comparaisons, il vous faudra alors les combiner en une seule table de données.
Nous aimerions automatiser cette partie de l'analyse qui est à l'épreuve du temps pour tout nouvel identifiant de sujet que nous pourrions tester, de sorte que le script devrait (dans l'ordre le plus logique) effectuer ce qui suit. C'est ce qui est logique dans ma tête en faisant des analyses similaires en python et d'autres logiciels :
1. Créez une liste des identifiants « non-référence »
2.Pour chaque ID non-référence, effectuez une analyse unidirectionnelle et un test T sur deux échantillons en le comparant à l'ID du sujet qui est étiqueté comme « Oui » pour référence (et supposons qu'il y aura toujours exactement un des ces)
3. Enregistrez les résultats du test t dans un tableau de données. Une remarque ici : les formats par défaut "créer une table de données" et "créer une table de données combinée" n'enregistrent pas certaines des métadonnées de la comparaison - par exemple, ils indiqueront l'en-tête de votre colonne (X est l'ID du sujet, Y est IMC), mais il ne vous dira pas à quoi ressemblent les deux valeurs de X, affichées en haut de l'interface utilisateur des résultats du test t dans l'analyse ('A1454-B8565'). Nous voudrions capturer ces informations : vous comparez deux choses, quelles sont les deux choses que vous comparez ?
4. Combinez tous les résultats du test t de chaque comparaison de l'ensemble de données dans un seul tableau de données. À partir de là, il ne s'agira que d'un problème de manipulation de données que nous pourrons probablement résoudre pour les mettre dans le format le plus utile.
J'espère que cela apportera plus de clarté, faites-nous savoir s'il y a encore une ambiguïté à ce sujet.
Re : Génération d'un tableau récapitulatif avec les valeurs p à partir d'un test t itératifSalut @Moser_stefan et @LinkageBee996 ,
Je comprends mieux ce que tu essaies de faire. Voici quelques réflexions :
1. Sur la base de votre description, je pense toujours que la restructuration de votre table de données pourrait être bénéfique afin que vous puissiez profiter de la variable BY dans l'analyse ANOVA, puis du Make Combined Data Table. Il faudra peut-être réfléchir à la façon de reformater votre tableau de données, mais je pense que cela pourrait en valoir la peine. Même si vous vous retrouvez avec de nombreuses tables de données, vous pouvez toujours effectuer une jointure. et combinez-les en un seul tableau de données à la fin.
2. Je pense que c'est une excellente idée d'automatiser un tel processus, surtout si les analyses doivent être répétées avec de futurs ensembles de données. À cet égard, je vous recommande fortement de prendre le temps d’apprendre par vous-même le codage JSL. Chacun a ses propres besoins spécifiques lorsqu'il s'agit de ce genre de choses, et si vous pouvez apprendre le JSL au profit de votre organisation, cela vous fera avancer beaucoup plus rapidement que vous ne pouvez l'imaginer. Les solutions de script aux problèmes JMP facilitent la vie et accélèrent considérablement l'obtention des résultats. Il existe une tonne de bonnes informations, notamment sur le forum de discussions en ligne, mais aussi ici . Vous pouvez télécharger ici de nombreuses bonnes documentations JMP, y compris le dernier PDF du guide de script. De plus, il existe également l'index des scripts sous Aide > Index des scripts. Comme mentionné précédemment, si vous débutez dans le codage et la création de scripts, envisagez d'utiliser le générateur de flux de travail, qui générera le script dont vous avez besoin. Cela étant dit, ma recommandation est de l'apprendre vous-même afin d'avoir plus de contrôle/flexibilité lorsqu'il s'agit de coder votre travail.
3. Sans disposer de votre table de données réelle avec laquelle travailler (même si elle est anonymisée pour protéger toute information sensible), il est très difficile de générer un script pour quelqu'un d'autre qui fonctionnera de manière générique - c'est-à-dire dans "toutes" les circonstances (bien sûr, rien). fonctionne vraiment dans toutes les circonstances possibles, mais le point demeure : le rendre généralisable). L'écriture de code pour d'autres dépend fortement de la table de données avec laquelle vous travaillez et de la structure des données dans la table, car cela change la façon dont vous pouvez aborder l'analyse et le regroupement des résultats, etc.
Je sais que ce n'est pas vraiment la réponse que vous recherchez, mais je pense qu'avec un peu de temps investi dans la restructuration de vos données et/ou dans l'apprentissage du JSL, vous constaterez que le gain dépasse de loin les efforts déployés.
Bonne chance!,
DS
Re : Génération d'un tableau récapitulatif avec les valeurs p à partir d'un test t itératifMerci pour la réponse @SDF1 . Le parcours JSL a du sens, j'en ai une certaine expérience mais certainement pas d'expert, donc une bonne opportunité de développer nos compétences ici. Quoi qu’il en soit, il est utile d’avoir votre point de vue sur les voies potentielles pour résoudre ce problème pour voir quelles sont certaines des options.
Une chose que j'ai du mal à voir comment la fonction « par » pourrait être utilisée - principalement parce que nous avons un groupe de données (l'ensemble de données de référence) que nous voulons réutiliser dans chaque comparaison et un groupe (non-référence ) qui devrait être divisé « par ». La seule façon dont je vois cela fonctionner est de répliquer l'ensemble de données de référence pour chaque comparaison, puis de lui attribuer une variable unique (par exemple, une colonne « comparaison »). Peut-être que cela fonctionnerait... nous devrons simplement réfléchir à la question de savoir si la réplication des données dans le tableau de données brutes crée d'autres problèmes ou risques.
Eh bien, vous nous avez certainement donné matière à réflexion et j'apprécie le temps que vous avez pris pour répondre. Nous ne manquerons pas de donner suite à la solution que nous proposerons.
Re : Génération d'un tableau récapitulatif avec les valeurs p à partir d'un test t itératifSalut @Moser_stefan et @LinkageBee996 ,
Heureux de vous aider. Et je pense que je comprends un peu mieux la façon dont vos données sont structurées pourquoi la variable BY serait un peu difficile. Il faudrait probablement une restructuration considérable de vos données pour que cela fonctionne comme je le pensais/le souhaitais.
Au lieu de cela, il serait peut-être préférable de prendre des sous-ensembles de vos données en fonction de la colonne ID du sujet et peut-être également d'utiliser la colonne Référence. Ensuite, effectuez votre analyse de test t sur chacun des identifiants de référence et de sujet des tableaux de données du sous-ensemble. Ensuite, utilisez Make Into Data Table, puis joignez les tables de données résultantes en fonction d'une colonne, par exemple la colonne 1 dans le résultat Make Into Data Table. Cela pourrait être le moyen le plus rapide de passer de votre format de données actuel à une solution sans avoir à passer trop de temps à restructurer vos données.
À cet égard, j'ai constitué un tableau de données fictif (ci-joint) avec une colonne Source (comme votre ID de sujet) et les différents scripts. Vous pouvez examiner les scripts en cliquant avec le bouton droit et en sélectionnant Modifier, mais vous pouvez également les exécuter : exécutez-les regroupés par source A ou B, puis exécutez le dernier script qui joint les deux tables de données dans une table de données finale. D'après votre description, il semble que vous vouliez faire quelque chose comme ça. À tout le moins, nous espérons que les scripts vous aideront et vous donneront un point de départ pour répondre à vos besoins spécifiques.
J'espère que cela t'aides!,
DS
Re : Génération d'un tableau récapitulatif avec les valeurs p à partir d'un test t itératifSalut @Moser_stefan ,
Heureux d'apprendre que vous avez pu automatiser la collecte et l'analyse des données. c'est toujours d'une grande aide d'accomplir ce genre de tâches car cela permet de gagner beaucoup de temps à long terme.
Bon travail!,
DS