Wie berechne ich Korrelationen: Nicht quadratisch (ABCXYZ von ABCXYZ), sondern rechteckig (ABC von XYZ) (Scripting, JSL)Hallo,
Diesmal habe ich vielleicht eine einfache Frage. Ich kann einfach nichts Passendes finden.
Ich möchte einfach nur Korrelationen berechnen. Nicht "quadratisch", zum Beispiel Koeffizienten der Spalten ABCXYZ durch ABCXYZ, sondern "rechteckig", zum Beispiel Koeffizienten der Spalten ABC durch Spalten XYZ. Irgendwelche Ideen, wie ich das mit JMP erreichen könnte?
Nichts Außergewöhnliches...
Prost!
Newbie2Jumpie
Betreff: Wie berechne ich Korrelationen: Nicht quadratisch (ABCXYZ von ABCXYZ), sondern rechteckig (ABC von XYZ) (Scripting, JSL)Ich habe keine Ahnung, was Sie mit "nicht quadratisch" oder "rechteckig" meinen, aber Sie könnten die multivariate Plattform oder die Correlation () - JSL-Funktion ausprobieren. Ihre Auswahl hängt möglicherweise davon ab, wo die Daten gespeichert sind (Datentabelle oder Matrixobjekt).
Betreff: Wie berechne ich Korrelationen: Nicht quadratisch (ABCXYZ von ABCXYZ), sondern rechteckig (ABC von XYZ) (Scripting, JSL)Ich möchte nur die Berechnungen auf zwei Gruppen von Spalten (AF) durch (XZ) beschränken:
"quadratisch"
ABCDEFXYZ
Ein ccAA ...
B
C
D
E 81 Korrelationskoeffizienten
F
X
Y.
Z ccZZ
"rechteckig"
X Y Z
Ein ccAX ...
B
C 18 -Korrelationskoeffizienten
D
E
F ... ccFZ
Betreff: Wie berechne ich Korrelationen: Nicht quadratisch (ABCXYZ von ABCXYZ), sondern rechteckig (ABC von XYZ) (Scripting, JSL)Hier ist ein einfaches Skript, das das produziert, was Sie wollen:

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
xList = {"NPN1", "PNP1", "PNP2"};
yList = {"NPN2", "PNP3"};
nw = New Window( "Correlations",
Outline Box( "Retangle of Correlations", tb = Table Box() )
);
// Add the Row Labels to the Table Box
tb << append( String Col Box( " ", yList ) );
For( x = 1, x <= N Items( xList ), x++,
xyCorrList = {};
For( y = 1, y <= N Items( yList ), y++,
Insert Into(
xyCorrList,
Correlation(
Column( dt, xList[x] ) << get as matrix || (Column( dt, yList[y] ) <<
get as matrix)
)[1, 2]
)
);
tb << append( Number Col Box( xList[x], xyCorrList ) );
);Betreff: Wie berechne ich Korrelationen: Nicht quadratisch (ABCXYZ von ABCXYZ), sondern rechteckig (ABC von XYZ) (Scripting, JSL)Hallo Tx,
Die "Textbox" ist eine interessante, aber für mich vollkommene Annäherung.
Wie würde ich diesen Code anpassen, um diese Koeffizienten in einer JMP-Tabelle zu erhalten?
JMP, mindestens v14.0, tut dies nicht gerne mit "textbox".
Mit freundlichen Grüßen
Neuling
Betreff: Wie berechne ich Korrelationen: Nicht quadratisch (ABCXYZ von ABCXYZ), sondern rechteckig (ABC von XYZ) (Scripting, JSL)Ich bin ein wenig verwirrt über die "Textbox", auf die Sie sich beziehen. Ich denke, dass Sie möglicherweise das Tabellenfeld () verwechseln, das meine letzte Antwort zum Erstellen der Korrelationstabelle verwendet hat. In jedem Fall funktioniert der Code in JMP 14 oder JMP 15 einwandfrei. Nachfolgend sind zwei Änderungen an dem Code aufgeführt, den ich zuvor gesendet habe. Jeder von ihnen erzeugt eine JMP-Datentabelle als Ausgabe für die Korrelationen.
Der erste nimmt einfach den Originalcode und erstellt eine Datentabelle aus dem vom Originalcode erzeugten Tabellenfeld ().
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
xList = {"NPN1", "PNP1", "PNP2"};
yList = {"NPN2", "PNP3"};
nw = New Window( "Correlations",
Outline Box( "Retangle of Correlations", tb = Table Box() )
);
// Add the Row Labels to the Table Box
tb << append( String Col Box( " ", yList ) );
For( x = 1, x <= N Items( xList ), x++,
xyCorrList = {};
For( y = 1, y <= N Items( yList ), y++,
Insert Into(
xyCorrList,
Correlation(
Column( dt, xList[x] ) << get as matrix || (Column( dt, yList[y] ) <<
get as matrix)
)[1, 2]
)
);
tb << append( Number Col Box( xList[x], xyCorrList ) );
);
tb << make into data table;
Dieses zweite Skript erzeugt die Ausgabedatentabelle direkt. Es wird nicht zuerst eine Tabellenbox () generiert.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
xList = {"NPN1", "PNP1", "PNP2"};
yList = {"NPN2", "PNP3"};
dt2 = New Table( "Correlations");
dt2 << add rows( N Items( yList ) );
dt2 << delete columns( "Column 1" );<BR /><FONT face="Menlo,Monaco,Consolas,"Courier New",monospace" size="2" style="background-color: #f5f5f5;">dt2 << New Column( "Label", character, values(yList));</FONT>
For( x = 1, x <= N Items( xList ), x++,
xyCorrList = {};
For( y = 1, y <= N Items( yList ), y++,
Insert Into(
xyCorrList,
Correlation(
Column( dt, xList[x] ) << get as matrix || (Column( dt, yList[y] ) <<
get as matrix)
)[1, 2]
)
);
dt2 << new column( xList[x], values(xyCorrList));
);Betreff: Wie berechne ich Korrelationen: Nicht quadratisch (ABCXYZ von ABCXYZ), sondern rechteckig (ABC von XYZ) (Scripting, JSL)Hallo @ Newbie2Jumpie ,
Sieht so aus, als hätten Sie bereits eine Skriptlösung von Jim, aber ich habe ein Add-In da draußen, das Ihrer Meinung nach das tut, was Sie wollen: eine Tabelle mit Korrelationen zwischen einer Reihe bestimmter X und bestimmter Ys anstatt aller möglichen Kombinationen (wie Sie es tun) würde in Multivariate bekommen).
Korrelieren Sie Y durch X-Add-In
Hoffentlich hilft das,
@julianisch
Betreff: Wie berechne ich Korrelationen: Nicht quadratisch (ABCXYZ von ABCXYZ), sondern rechteckig (ABC von XYZ) (Scripting, JSL)Hallo @ Newbie2Jumpie
die anderen gaben dir eine direkte antwort auf deine frage. Lassen Sie mich eine andere Lösung anbieten, für die JMP meiner Meinung nach wirklich gut ist.
warum nicht versuchen, paarweise Korrelationen unter dem roten Dreieck (oder in Einstellungen). Diese Tabelle kann in eine Datentabelle exportiert und dann nach Belieben gefiltert werden. Ich finde das viel nützlicher als die großen Korrelationsmatrizen, bei denen alle Zahlen doppelt vorkommen.