Wie vergleicht man Zeilen mit 0 und 1, um die Prävalenz und die Häufung von zwei Erkrankungen herauszufinden?Hallo, ich bin ein neuer und unerfahrener Nutzer von JMP und arbeite an meiner Doktorarbeit. Ich kann einen Teil meiner Daten einfach nicht vergleichen und benötige Hilfe. Meine Daten bestehen aus 146 Spalten mit entweder 1 oder 0 (ja/nein) für jeweils 146 Erkrankungen. Ich habe ungefähr 14000 Zeilen (Patienten), um diese Daten zu vergleichen. Ich muss die Reihenfolge der häufigsten Kombinationen für zwei Erkrankungen derselben Person herausfinden. Wie kann ich das machen?
sehr dankbar für hilfe,
Emma
AnalytikBetreff: Wie vergleicht man Zeilen mit 0 und 1, um die Prävalenz und Clusterung von zwei Erkrankungen herauszufinden?Ich habe ein Beispielskript erstellt, das eine Beispieldatentabelle generiert, auf der die Analyse ausgeführt werden kann.Ich erstelle nur 100 Datenzeilen, weil es eine Weile dauert, die Datenpaare zu erstellen.Die resultierende Tabelle zeigt die Anzahl der Patienten, bei denen jede Kombination von Erkrankungen gefunden wurde.

Das Skript wird einige Zeit in Anspruch nehmen, wenn Sie es bei allen 14000 Patienten gleichzeitig ausführen.Sie können es einfach auf Teilmengen der Daten ausführen und dann die resultierenden Tabellen kombinieren.
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));Betreff: Wie vergleicht man Zeilen mit 0 und 1, um die Prävalenz und Clusterung von zwei Erkrankungen herauszufinden?Es kommt vor, dass " die Reihenfolge der häufigsten Kombinationen für zwei Erkrankungen derselben Person “ könnte einige unterschiedliche Analyseziele implizieren. Aber was auch immer eine Analyse impliziert, ich würde dringend empfehlen, zuerst einen Blick darauf zu werfen, was in Ihren Daten "in" ist.
Ein Ansatz wäre, "Spalten > Dienstprogramme > Spalten kombinieren..." zu verwenden, um eine neue Spalte zu erstellen, die den Status jedes Patienten für jeden Zustand enthält. Dann können Sie mit 'Graph > Graph Builder' eine Treemap dieser neuen Spalte erstellen und die Ergebnisse über den Tooltip überprüfen. Wenn Sie sich nicht sicher sind, wie dies zu tun ist, versuchen Sie es mit der Online-Dokumentation . Seien Sie sich bewusst, dass dies bei so vielen Bedingungen nur ein Durcheinander sein kann.
Als neuer Benutzer sind Sie wahrscheinlich nicht an Skripten interessiert. Aber das folgende Skript simuliert einige Daten und erstellt die Treemap. Aufgrund der Zufälligkeit kann das, was Sie sehen, jedes Mal anders sein. Aber das Ausführen dieses Codes sollte ein Diagramm wie folgt erzeugen:

Um das Skript auszuführen, führen Sie „Datei > Neu > Neues Skript“ aus, fügen Sie den Code in das angezeigte Fenster ein und führen Sie dann „Bearbeiten > Skript ausführen“ aus.
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));
Betreff: Wie vergleicht man Zeilen mit 0 und 1, um die Prävalenz und Clusterung von zwei Erkrankungen herauszufinden?Hi @EmmalT ,
Ich glaube, ich habe eine Idee, wie Sie Ihre Anfrage umsetzen können, aber es wäre hilfreich, wenn Sie einige Ihrer Daten weitergeben könnten - Sie können sie bei Bedarf anonymisieren. Es muss nicht der gesamte Datensatz sein, sondern nur eine Teilmenge, damit ich besser verstehen kann, wie die Daten strukturiert sind, da sich dies auf die Durchführung der Analyse auswirken könnte.
DS