So speichern Sie Spearman-Korrelationskoeffizienten direkt in der JMP-Datentabelle (Scripting, JSL)Hallo,
Ich habe ein kleines Programm geschrieben, das Pearson-Koeffizienten berechnet und direkt in einer JMP-Tabelle speichert.
Können Sie dabei helfen, es anzupassen, um Spearman-Koeffizienten auf die gleiche Weise zu speichern? Die Option „Spearman“ hat keine Auswirkung auf das Speichern ... eine der vielen Optionen, die ich bisher ausprobiert habe ...
Danke
dt = Open("$SAMPLE_DATA/Body Measurements.jmp");
dt_2 = dt << Multivariate(
Y(
:Name( "Mass" ),
:Name( "Fore" ),
:Name( "Bicep" ),
:Name( "Chest" )
),
Estimation Method( "Row-wise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( 0 ),
Spearman's ρ(1)
);
dt_2= report(dt_2)
[Outline Box("Correlations")][1, 1] << make into data table;
dt_2 << save("C:\....\Spearman.jmp") ;Betreff: So speichern Sie Spearman-Korrelationskoeffizienten direkt in der JMP-Datentabelle (Scripting, JSL)Fantastisch.
Hier einige Hinweise für interessierte Benutzer:
JMP berechnet Korrelationen nur für beibehaltene Felder. Folgen versehentlich beibehaltener Zeichenspalten:
(1) unterschiedliche Strukturen: Die Spearman-Matrix behält Zeichenspalten bei; Die Pearson-Matrix filtert sie automatisch heraus
(2) Fehlende Werte: Spearman berechnet keine Koeffizienten, sondern platziert fehlende Werte
(3) Spaltenreihenfolge: Pearson: wie im Originaldatensatz, Spearman: alphabetisch.
Betreff: So speichern Sie Spearman-Korrelationskoeffizienten direkt in der JMP-Datentabelle (Scripting, JSL)Ich denke, das sollte reichen:
dt = Open("$SAMPLE_DATA/Body Measurements.jmp");
colnameslist=dt<<GET column="" names=""></GET>Betreff: So speichern Sie Spearman-Korrelationskoeffizienten direkt in der JMP-Datentabelle (Scripting, JSL)dt <SPAN class="token operator">=</SPAN> <SPAN class="token function">Open</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token string">"$SAMPLE_DATA/Body Measurements.jmp"</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
Ich habe eine bessere Idee. Können Sie Ihren Ansatz vielleicht auf alle Spalten im Datensatz „Körpermaße“ verallgemeinern (siehe Link oben)?
Wenn wir mutig sein wollen, könnten wir so tun, als wäre die erste Spalte eine ID, die wir überspringen möchten ... Das wäre das Tüpfelchen auf dem i...
Betreff: So speichern Sie Spearman-Korrelationskoeffizienten direkt in der JMP-Datentabelle (Scripting, JSL)Wäre es möglich, mein Skript oder Teile davon zu verallgemeinern, sodass es mit Ihren Datensätzen verwendet werden kann?Wenn Sie einen Ihrer Datensätze nach der Anonymisierung der Daten (Tabelle -> Anonymisieren) veröffentlichen und das multivariate Skript erstellen können, können wir vielleicht etwas herausfinden?
Betreff: So speichern Sie Spearman-Korrelationskoeffizienten direkt in der JMP-Datentabelle (Scripting, JSL)Jedenfalls: Ja, es ist die quadratische Matrix. Im Ernst, Sie haben beeindruckende Arbeit geleistet.
Aus technischer Sicht: Das kann bei mir nicht funktionieren: Ich benötige diese Spearman-Matrizen für mehrere Datensätze mit Hunderten von Feldern.
Ich kann einfach nicht jedes Mal manuell von dreieckig zu quadratisch wechseln.Ich muss an etwas anderes denken.
@HadleyMyers schrieb:
Hallo Agian,
Es erforderte ein wenig Manipulation, aber sehen Sie, ob das für Sie funktioniert:
dt = Open("$SAMPLE_DATA/Body Measurements.jmp");
dt_2 = dt << Multivariate(
Y(
:Name( "Mass" ),
:Name( "Fore" ),
:Name( "Bicep" ),
:Name( "Chest" )
),
Estimation Method( "Row-wise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( 0 ),
Spearman's ρ(1)
);
report(dt_2)
[Outline Box("Correlations")][1, 1] << make into data table;
dt_spearman=Report( dt_2 )
[Outline Box( "Nonparametric: Spearman's ρ" )][Table Box( 1 )] <<
Make Into Data Table;
variables={"Mass","Fore","Bicep","Chest"};
For(i=1,i<=4,i++,
dt_spearman<<ADD rows=""></ADD>
Betreff: So speichern Sie Spearman-Korrelationskoeffizienten direkt in der JMP-Datentabelle (Scripting, JSL)Hallo Agian,
Es erforderte ein wenig Manipulation, aber sehen Sie, ob das für Sie funktioniert:
dt = Open("$SAMPLE_DATA/Body Measurements.jmp");
dt_2 = dt << Multivariate(
Y(
:Name( "Mass" ),
:Name( "Fore" ),
:Name( "Bicep" ),
:Name( "Chest" )
),
Estimation Method( "Row-wise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( 0 ),
Spearman's ρ(1)
);
report(dt_2)
[Outline Box("Correlations")][1, 1] << make into data table;
dt_spearman=Report( dt_2 )
[Outline Box( "Nonparametric: Spearman's ρ" )][Table Box( 1 )] <<
Make Into Data Table;
variables={"Mass","Fore","Bicep","Chest"};
For(i=1,i<=4,i++,
dt_spearman<<ADD rows=""></ADD>Betreff: So speichern Sie Spearman-Korrelationskoeffizienten direkt in der JMP-Datentabelle (Scripting, JSL)Wir kommen näher. Ich bin froh, dass ich von den „Outline Box“-Optionen erfahren habe.
Leider ist die Ausgabematrixform „dreieckig“ und nicht „quadratisch“ (wie nötig; die „diagonalen“ 1,0 fehlen aus diesem Grund auch).
Ist es einfach, dorthin zu gelangen?
Betreff: So speichern Sie Spearman-Korrelationskoeffizienten direkt in der JMP-Datentabelle (Scripting, JSL)Hallo,
Funktioniert das?
dt = Open("$SAMPLE_DATA/Body Measurements.jmp");
dt_2 = dt << Multivariate(
Y(
:Name( "Mass" ),
:Name( "Fore" ),
:Name( "Bicep" ),
:Name( "Chest" )
),
Estimation Method( "Row-wise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( 0 ),
Spearman's ρ(1)
);
report(dt_2)
[Outline Box("Correlations")][1, 1] << make into data table;
Report( dt_2 )
[Outline Box( "Nonparametric: Spearman's ρ" )][Table Box( 1 )] <<
Make Into Data Table;