Hallo alle,
Um Sie schnell zu orientieren: Ich arbeite mit ELISA-Daten (Dosis-Wirkungs-Kurve), also ist meine unabhängige Variable der Verdünnungsfaktor, meine abhängige Variable die Absorption, und ich habe mehrere Zeitpunkte, die ich nach mehreren Tieren betrachte. Ich möchte in der Lage sein, den EC50 - Verdünnung bei halbmaximaler Reaktion - mit einer nichtlinearen, sigmoidalen Kurvenanpassung zu finden. Ich verwende derzeit ein 4-Parameter-Modell (Probit 4P).
Grundsätzlich möchte ich ein Skript schreiben, das die Daten aus den Parameterschätzungen in eine Tabelle einfügt, den Mittelpunkt zwischen der oberen und der unteren Asymptote für jede Kurve findet und diesen Wert dann in einer benutzerdefinierten inversen Vorhersage verwendet, um die zu erhalten EC50. Ich bin mir ziemlich sicher, dass ich die zweiten beiden Teile machen kann, wenn ich nur die verdammten Parameterschätzungen bekommen könnte!
Hier ist, was ich für die Kurvenanpassung habe:
For ( i = 1, i <= N items (Mice), i++,
FC = Fit Curve (
Y ( :Data ),
X (:Dilution ),
Group (:Timepoint),
By(:Animal)
Fit Probit 4P,
Where (:Animal == eval(Mouse_names[i])), //thist isn't referencing the variable the way i expect but using either eval( ) or char( ) seems to be a work-around?...
SendToReport(
Dispatch(
{"Plot"},
"7",
ScaleBox,
{Format( "Fixed Dec", 12, 0 ), Min( 0 ), Max( 4 ), Inc( 2 ),
Minor Ticks( 0 )}
),
Dispatch(
{"Plot"},
"6",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Min( 0.0000001 ),
Max( 0.1 ), Inc( 2 ), Minor Ticks( 0 )}
),
Dispatch(
{"Plot"},
"13",
ScaleBox,
{Format( "Fixed Dec", 12, 0 ), Min( 0 ), Max( 4 ), Inc( 2 ),
Minor Ticks( 0 )}
),
Dispatch(
{"Plot"},
"16",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Min( 0.0000001 ),
Max( 0.1 ), Inc( 2 ), Minor Ticks( 0 )}
),
Dispatch(
{"Probit 4P", "Plot"},
"7",
ScaleBox,
{Format( "Fixed Dec", Use thousands separator( 1 ), 12, 0 ), Min( 0 ),
Max( 4 ), Inc( 2 ), Minor Ticks( 0 )}
),
Dispatch(
{"Probit 4P", "Plot"},
"6",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Min( 0.0000001 ),
Max( 0.1 ), Inc( 2 ), Minor Ticks( 0 )}
),
Dispatch(
{"Probit 4P", "Plot"},
"13",
ScaleBox,
{Format( "Fixed Dec", Use thousands separator( 1 ), 12, 0 ), Min( 0 ),
Max( 4 ), Inc( 2 ), Minor Ticks( 0 )}
),
Dispatch(
{"Probit 4P", "Plot"},
"16",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Min( 0.0000001 ),
Max( 0.1 ), Inc( 2 ), Minor Ticks( 0 )}
)
)
);
FC << journal;
FC << close window;);
Das funktioniert gut für mich und ich habe die Ausgabe eines Journals mit jeder Fit-Kurve mit dem Modellvergleich, Diagramm der Daten, Modellinformationen (einschließlich Vorhersagemodell, Zusammenfassung der Anpassung, *~*Parameterschätzungen*~*, Korrelation von Schätzungen , Kovarianz der Schätzung und Diagramme der modellierten Kurve).Ich kann manuell mit der rechten Maustaste auf die Parameterschätzungen und "Make Into Combined Data Table" klicken, weiß aber nicht, wie ich das in einem Skript machen soll.Idealerweise hätte ich am Ende nur eine Datentabelle mit Spalten für Tier, Parameter (Wachstumsrate, Wendepunkt, untere Asymptote, obere Asymptote) Gruppe (das sind meine Zeitpunkte), Schätzung, Standardfehler, untere 95 %, obere 95%.
Jede Hilfe wäre sehr willkommen! Vielen Dank!
Verwenden
jrn["Correlation of Estimates"][MatrixBox(1)] << Make Combined Data Table;
Gehen Sie zu Hauptmenü > Hilfe > Bücher > JMP Scripting Guide, öffnen Sie dann die PDF-Datei und blättern Sie zu Kapitel 11, Anzeigebäume.
Ein JMP-Bericht ist eine Liste verschachtelter Anzeigefelder.Hier erfahren Sie, wie Sie Objekte finden und Nachrichten senden.
jrn << show tree structure;
//or right click on a reveal button to the left of an outline box
// then select Edit, Show Tree Structure
Genial!Vielen Dank für die Antwort - es funktioniert definitiv genau für das, wofür ich es brauche !! Ich versuche nur noch herauszufinden, was unter Ihrem Code vor sich geht, damit ich ihn in Zukunft in verschiedenen Anwendungen verwenden kann.
Wird das Journal nur nach Namen indiziert, angegeben, dass ich die Tabellenbox haben möchte, und eine neue Datentabelle erstellt?
Ich hatte andere Antworten wie gesehen
dt2 = bivRep [1] [TableBox(3)] << Make Combined Data Table;
konnte aber nicht herausfinden, was wirklich los war. Würde dieser das dritte Tabellenfeld nehmen, das im ersten Abschnitt (?) von bivRep gefunden wird, und in ein neues dt schreiben?
Ich erkunde ein wenig, aber mehr und konnte die Zusammenfassung der Passform mit erhalten
jrn["Summary of Fit"][Table Box (1)] << Make Combined Data Table;
konnte aber nicht herausfinden, wie man so etwas wie die Korrelation der Schätzungen für Woche 5 erhält.
Ich habe es versucht:
covar_pre = jrn["Covariance of Estimates"]["Week 5"][Table Box(1)] << Make Combined Table;
Und bekam den Fehler:
Cannot subscript Display Box{400} in access or evaluation of 'Subscript' , jrn["Covariance of Estimates"]["pre"][/*###*/Table Box( 1 )]
In the following script, error marked by /*###*/
paramEst = jrn["Covariance of Estimates"]["Week 5"][/*###*/Table Box( 1 )] <<
Make Combined Data TableIch denke, *diese* Ausgabe ist keine Tabellenbox? Ich bin mir nicht sicher, um welche Art von Daten es sich handelt, und bin mir nicht sicher, wie ich es herausfinden soll.
Hallo,
Sobald Sie einen Zugriff auf Ihr Journal haben, können Sie wie unten gezeigt durch das Journal navigieren (ähnlich dem Beitrag von @gzmorgan0 ), um die Datentabelle der kombinierten Parameterschätzungen zu generieren.
jrn = Current Journal();
paramEst = jrn["Parameter Estimates"][Table Box( 1 )] << Make Combined Data Table;
Ich hoffe, das ist hilfreich!
Hier ist ein Beispiel, nicht genau Ihr spezifisches Beispiel (dieses Beispiel verwendet By). Ich kenne Ihre Erfahrung im Navigieren in einem Berichtsfenster nicht.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Nonlinear Examples/Bioassay.jmp" );
obj = Fit Curve( Y( :Toxicity ), X( :log Conc ), By( :formulation ) );
obj << Fit Logistic 4P( Custom Inverse Prediction( Response( 0.9 ) ) );
//you can get one table using Make Combined Data Table
est_tbl= report(obj[1])["Parameter Estimates"][TableBox(1)] << Make Combined Data Table;
est_tbl << Set Name("Parameter Estimates");
inv_tbl = report(obj[1])["Inverse Prediction"]["Predicted Values"][TableBox(1)] << Make Combined Data Table;
inv_tbl << Set Name("Inverse Prediction");
Hoffe das hilft.