Hallo zusammen,
Ich habe ein Skript, in dem ich die Autokorrelation zweier Spalten in einer Datentabelle teste. Dies erfolgt in der Datei Big Clas.jmp.

Ich möchte diesem Skript ein Panel hinzufügen, das auch das Diagramm der Autokorrelation zwischen den beiden Spalten anzeigt – insbesondere versuche ich, die Spalte namens Lag und die Spalte namens Corr vs. Gewicht im oben gezeigten Zeitreihenbericht grafisch darzustellen.
Ich kann diese beiden Spalten als Liste von Zahlen in Matrixform abrufen, indem ich den Befehl <
Ich habe eine Variable im Speicher namens LagData, die lautet: [-39, -38, -37, -36, -35, -34, -33, -32, -31, -30, -29, -28, - 27, -26, -25, -24, -23,
-22, -21, -20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6 , -5,
-4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39]
Und eine weitere Variable im Speicher namens CorrData, die lautet:[-0.0647505789131993, -0.0562977495028363, -0.160576535513772, -0.0235481399032656,
-0,207169184582488, -0,177727203882624, -0,082867673832995, -0,301048676439611,
-0,18208292918265, -0,12254560898792, -0,249310826860239, -0,088652621497092,
-0,0624774347722481, -0,137178123667694, -0,136824220987067, -0,144133672506173,
-0,0234936933370152, -0,117060117438199, 0,00715972346191791, -0,0454901061021466,
0,045163426704645, 0,0733531363807509, 0,0781580458523421, 0,0903268534092898,
0,0715972346191779, 0,269592172788486, 0,201125615728702, 0,207931436509992,
0,240014075672996, 0,198879694870876, 0,242681957419262, 0,29961945407554,
0,123566482105113, 0,342536959922359, 0,348675810267083, 0,0338521525661397,
0,352909030793046, 0,122885900026984, 0,0684665570597841, 0,709166525410487,
-0,132073758081727, 0,239510444935181, 0,186710887313928, -0,0461434648971507,
0,148366893032136, -0,0517650728624969, -0,0831943532304971, 0,025549051212965,
0,0530445671693793, -0,0655672774069544, -0,107858647741894, -0,0662478594850834,
-0,125907684453877, -0,0405899151396176, -0,151470347308405, -0,0967923831515159,
-0,0551815948947048, -0,136388648457065, -0,141914974931473, -0,158684517336573,
-0,0462523580296514, -0,0891426405933452, -0,019900219964494, -0,22426540638509,
-0,0337568710752018, -0,13129789451266, -0,0399637796277388, -0,00593467572128552,
-0,217418750679112, 0,092137201737113, -0,0450409219305816, -0,106334143886885,
0,105109096146253, -0,174569303040105, 0,0144827866225865, 0,0175998525404177,
-0,0346688510598947, 0,0216697333676295, -0,0202813459282462]
Ich würde diese Matrizen gerne an Graph Builder senden können, um so etwas zu erhalten:

Aber GB gefällt es nicht, dass die Daten eine Liste von Zahlen sind – es möchte, dass die Eingaben für X() und Y() Spalten sind. Das obige Beispiel wurde erstellt, indem man mit der rechten Maustaste auf den Bericht klickte, „In Datentabelle umwandeln“ auswählte und dann wie gewohnt „GB“ verwendete. Ich würde es jedoch vorziehen, das nicht tun zu müssen.
Gibt es eine Möglichkeit, die Daten, die sich im Speicher befinden, statt als Spalten an GB zu senden? Ich habe den folgenden Code ausprobiert, aber er funktioniert nicht.
gb = Graph Builder(
Graph Spacing( 4 ),
Variables( X( LagData ), Y( CorrData ) ),
Elements( Points( X, Y, Legend( 3 ) ) )
);
Unten finden Sie meinen vollständigen Code, falls Sie interessiert sind.
//GUI for quickly reporting statistics and outlier analysis written by D. Schmidt, ver1.0
Names Default To Here( 1 );
Clear Symbols();
//the width of the column list box in pixels
lbWidth = 150;
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );//Current Data Table();
//Expression to recall roles
RecallRoles = Expr(
::ycolRecall = ColListY << GetItems;
::xcolRecall = ColListX << GetItems;
::ALRecall = AlBox << Get;
::FPRecall = FPBox << Get;
);
//Expression to clear roles
ClearRoles = Expr(
Try(
ColListY << Remove All;
ColListX << Remove All;
ALBox << Set( . );
FPBox << Set( . );
)
);
//User window
ValueDlg = Expr(
nwin = New Window( "GUI for visualizing cross correlations",
<<RETURN result=""></RETURN>
Alle Gedanken/Feedback dazu, wie man das macht, sind uns sehr willkommen.
Danke!,
DS