Come faccio a calcolare le correlazioni: non quadratico (ABCXYZ by ABCXYZ), ma rettangolare (ABC by XYZ) (scripting, JSL)Ciao,
Questa volta potrei avere una semplice domanda. Non riesco proprio a trovare nulla di appropriato.
Vorrei semplicemente calcolare le correlazioni. Non "quadratico", ad esempio coefficienti di colonne ABCXYZ da ABCXYZ, ma "rettangolare", ad esempio coefficienti di colonne ABC da colonne XYZ. Qualche idea su come potrei riuscirci con JMP?
Nulla di bello...
Saluti!
Newbie2Jumpie
Ri: Come si calcolano le correlazioni: non quadratico (ABCXYZ by ABCXYZ), ma rettangolare (ABC by XYZ) (scripting, JSL)Non ho idea di cosa intendi con "non quadratico" o "rettangolare", ma potresti dare un'occhiata alla piattaforma multivariata o alla funzione JSL Correlation (). La scelta potrebbe dipendere da dove sono archiviati i dati (tabella dati o oggetto matrice).
Ri: Come si calcolano le correlazioni: non quadratico (ABCXYZ by ABCXYZ), ma rettangolare (ABC by XYZ) (scripting, JSL)Vorrei solo limitare i calcoli a due gruppi di colonne (AF) di (XZ):
"Quadratica"
ABCDEFXYZ
Un ccAA ...
B
C
D
E 81 coefficienti di correlazione
F
X
Y
Z ccZZ
"rettangolare"
X Y Z
Una ccAX ...
B
C 18 coefficienti di correlazione
D
E
F ... ccFZ
Ri: Come si calcolano le correlazioni: non quadratico (ABCXYZ by ABCXYZ), ma rettangolare (ABC by XYZ) (scripting, JSL)Ecco un semplice script che produrrà ciò che vuoi:

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 ) );
);Ri: Come si calcolano le correlazioni: non quadratico (ABCXYZ by ABCXYZ), ma rettangolare (ABC by XYZ) (scripting, JSL)Ciao Tx,
La "casella di testo" è un approccio interessante, sebbene completamente a me.
Come aggiusterò questo codice per ottenere questi coefficienti in una tabella JMP?
A JMP, almeno v14.0, non piace farlo utilizzando "textbox".
Cordiali saluti
Novizio
Ri: Come si calcolano le correlazioni: non quadratico (ABCXYZ by ABCXYZ), ma rettangolare (ABC by XYZ) (scripting, JSL)Sono un po 'confuso riguardo alla "casella di testo" a cui ti riferisci. Penso che potresti aver travisato la Table Box () la mia ultima risposta ha usato per creare la tabella di correlazione. In ogni caso, il codice funziona bene in JMP 14 o JMP 15 Comunque, di seguito sono riportate 2 modifiche al codice che ho inviato in precedenza. Ognuno di essi produce una tabella di dati JMP come output per le correlazioni.
Il primo prende semplicemente il codice originale e crea una tabella di dati dalla Table Box () prodotta dal codice originale.
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;
Questo secondo script produce direttamente la tabella dei dati di output. Non generare prima un Table Box ().
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));
);Ri: Come si calcolano le correlazioni: non quadratico (ABCXYZ by ABCXYZ), ma rettangolare (ABC by XYZ) (scripting, JSL)Ciao @ Newbie2Jumpie ,
Sembra che tu abbia già una soluzione di scripting da Jim, ma ho un componente aggiuntivo là fuori che penso faccia quello che vuoi: restituisci una tabella di correlazioni tra un insieme di X particolari e Y particolari piuttosto che tutte le possibili combinazioni (come te entrerebbe in multivariato).
Correlare Y per X componente aggiuntivo
Spero che sia d'aiuto,
@julian
Ri: Come si calcolano le correlazioni: non quadratico (ABCXYZ by ABCXYZ), ma rettangolare (ABC by XYZ) (scripting, JSL)Ciao @ Newbie2Jumpie
gli altri ti hanno dato una risposta diretta alla tua domanda. lasciami offrire un'altra soluzione per la quale penso che JMP sia davvero utile.
perché non provare le correlazioni Pairwise sotto il triangolo rosso (o nelle preferenze). questa tabella può essere esportata in una tabella di dati e quindi filtrata a piacere. lo trovo molto più utile delle grandi matrici di correlazione in cui tutti i numeri compaiono due volte.