comment comparer les lignes 0 et 1 pour connaître la prévalence et le regroupement de deux conditions médicales ?Bonjour, je suis un nouvel utilisateur inexpérimenté de JMP et je travaille sur ma thèse de doctorat. Je n'arrive tout simplement pas à trouver comment comparer une partie de mes données et j'ai besoin d'aide. Mes données se composent de 146 colonnes avec 1 ou 0 (oui/non) pour 146 conditions médicales respectivement. J'ai environ 14 000 lignes (patients) à partir desquelles comparer ces données. J'ai besoin de connaître l'ordre des combinaisons les plus courantes pour deux problèmes médicaux chez la même personne. Comment puis je faire ça?
très reconnaissant pour l'aide,
Emma
Modélisation statistique avancéeMélange et nettoyage des donnéesRe : comment comparer les lignes 0 et 1 pour connaître la prévalence et le regroupement de deux conditions médicales ?Merci txnelson et tous les autres pour vos conseils et suggestions ! Je me suis arrêté dans l'analyse et j'ai dû recommencer avec l'extraction des données originales, je n'ai donc pas encore pu tester les solutions. Je reviendrai quand ce sera le moment. Merci!
Re : comment comparer les lignes 0 et 1 pour connaître la prévalence et le regroupement de deux conditions médicales ?Il arrive que " l'ordre des combinaisons les plus courantes pour deux conditions médicales chez la même personne " pourrait impliquer quelques objectifs d'analyse différents. Mais quelle que soit l’analyse implicite, je préconise fortement de jeter d’abord un coup d’œil à ce qu’il y a « dans » vos données.
Une approche consisterait à utiliser « Cols > Utilities > Combine Columns... » pour créer une nouvelle colonne contenant l'état de chaque patient pour chaque condition. Ensuite, vous pouvez utiliser 'Graph > Graph Builder' pour créer un Treemap de cette nouvelle colonne et inspecter les résultats via l'info-bulle. Si vous n'êtes pas sûr des détails sur la façon de procéder, essayez le documentation en ligne . Sachez qu’avec autant de conditions, cela pourrait n’être qu’un gâchis.
En tant que nouvel utilisateur, vous n'êtes probablement pas intéressé par les scripts. Mais le script ci-dessous simule certaines données et crée le Treemap. En raison du caractère aléatoire, ce que vous voyez peut être différent à chaque fois. Mais exécuter ce code devrait produire un graphique comme :

Pour exécuter le script, faites « Fichier > Nouveau > Nouveau script », collez le code dans la fenêtre qui apparaît, puis faites « Modifier > Exécuter le script ».
NamesDefaultToHere(1);
// Generate some fake binary data for each condition (maximum possible incidence for one condition is 20% of the patients):
// This is unrepresentative since the incidences of the conditions are treated as independent, but the in practice this may not
// be the case
nr = 1400; // Number of patients
nc = 15; // Number of conditions
m = J(nr, nc, 0);
for(c=1, c<=nc, c++,
incidence = RandomInteger(0, Round(0.2 * nr));
m[RandomIndex(nr, incidence), c] = 1;
);
dt = asTable(m);
dt << setName("Fake Incidence Data");
// Use 'Combine Columns' to make a binary string for each patient indicating what conditions they have
cols = dt << getColumnNames;
dt << combineColumns(columns(Eval(cols)), ColumnName("Patient Condition"), Delimiter( "" ), MultipleResponse(0));
// Make a Treemap of the patient conditions
dt << Graph Builder(
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :Patient Condition ) ),
Elements( Treemap( X, Legend( 1 ) ) )
);
// Aggregate the patient comnditions to a new table and sort it (descending)
//dt2 = dt << Summary(Group(:Patient Condition));
//dt2 << Sort(By(:N Rows), ReplaceTable, Order(Descending));
Re : comment comparer les lignes 0 et 1 pour connaître la prévalence et le regroupement de deux conditions médicales ?J'ai créé un exemple de script qui génère un exemple de table de données sur laquelle exécuter l'analyse.Je ne crée que 100 lignes de données car la création des paires de données prend un certain temps.Le tableau résultant fournit le nombre de patients dans lesquels chaque combinaison de conditions médicales a été trouvée.

Le script prendra beaucoup de temps si vous l'exécutez sur les 14 000 patients en même temps.Vous pouvez facilement l'exécuter sur des sous-ensembles de données, puis combiner les tables résultantes.
Names Default To Here( 1 );
dt = New Table( "raw Data" );
dt << add rows( 100 );
dt << New Column( "Patient", set each value( Row() ) );
Try( dt << delete columns( "Column 1" ) );
For( i = 1, i <= 146, i++,
dt << New Column( "Med Cond " || Char( i ),
set each value( Round( Random Uniform( 0, 1 ), 0 ) )
)
);
// Create the paired data table
dtPair = New Table( "Pairs",
New Column( "Patient" ),
New Column( "First Med Cond", Character ),
New Column( "Second Med Cond", Character )
);
//Populate the Pairs Table
For( theRow = 1, theRow <= N Rows( dt ), theRow++,
For( theFirstCond = 2, theFirstCond <= N Cols( dt ), theFirstCond++,
If( Column( dt, theFirstCond )[theRow] == 1,
thePatient = dt:Patient[theRow];
firstCond = (Column( dt, theFirstCond )) << get name;
For( theSecondCond = theFirstCond + 1, theSecondCond <= N Cols( dt ),
theSecondCond++,
If( Column( dt, theSecondCond )[theRow] == 1,
dtPair << add row( 1 );
pairRow = N Rows( dtPair );
dtPair:Patient[pairRow] = thePatient;
dtPair:First Med Cond[pairRow] = firstCond;
dtPair:Second Med Cond[pairRow] = (Column( dt, theSecondCond )) << get name;
)
);
)
)
);
dtSummary = dtPair << Summary(
Group( :First Med Cond, :Second Med Cond ),
Freq( "None" ),
Weight( "None" )
);
dtSummary << sort( by(N Rows), order(descending), replace table(11));Re : comment comparer les lignes 0 et 1 pour connaître la prévalence et le regroupement de deux conditions médicales ?Salut @EmmaLT ,
Je pense avoir une idée de la façon de faire ce que vous demandez, mais cela aiderait si vous pouviez partager certaines de vos données - vous pouvez les anonymiser si besoin est. Il n'est pas nécessaire qu'il s'agisse de l'ensemble des données, juste d'un sous-ensemble afin que je puisse mieux comprendre comment les données sont structurées, car cela pourrait avoir un impact sur la manière de réaliser l'analyse.
DS