1180_de-DE
Berechnen der Fläche zwischen zwei Spline-Anpassungen (bivariat)Ich habe Fit-Spline der bivariaten Plattform verwendet, um fluorometrische Spektralkurven zu parametrisieren, und die Vorhersageformel für meine Proben und Blindproben gespeichert. Ich möchte die Fläche unter dem Peak schätzen, oder genauer gesagt, die Fläche zwischen den Kurven der Probe und der Blindprobe innerhalb eines bestimmten Wellenlängenintervalls.
Ich könnte dies sicherlich mit einigem Aufwand in Matlab tun, aber es wäre sinnvoll, den gesamten Workflow innerhalb von JMP beizubehalten. Ich denke, mein Ansatz würde darin bestehen, Schichten zusammenzufassen, deren Geometrie durch die Spline-Vorhersageformelmatrix bestimmt wird. Allerdings bin ich mir nicht sicher, wie ich die Vorhersageformel interpretieren und verwenden soll.
Irgendwelche Ideen, die mich in die richtige Richtung führen könnten, wie ich dieses Problem mit JMP/JSL angehen kann? Danke!Betreff: Fläche zwischen zwei Spline-Anpassungen berechnen (bivariat)Dieses Skript funktioniert, weshalb ich mich frage, warum es bei meinem nicht funktionierte, da es doch mit Ihrem identisch sein sollte. Als ich sie verglich, entdeckte ich einen Tippfehler in meinem. Entschuldigung für die Verwirrung. Und vielen Dank für Ihre Hilfe! Ich habe jetzt ein funktionierendes Skript für die Stapelverarbeitung meiner Fluorometriedaten.
Das Einzige, was noch nervt, ist der Befehl Maximize(), der das Skript unterbricht, wenn es nicht konvergiert, also keine lokalen Maxima findet. Ich habe nicht herausgefunden, wie ich mit der Fehlerausgabe in JSL interagieren soll (z. B. „Wenn Ergebnis==Fehler, dann Toleranz ändern und wiederholen, sonst Max=Ergebnis“ oder ähnliches).
Danke noch einmal!Betreff: Fläche zwischen zwei Spline-Anpassungen berechnen (bivariat)Unter JMP 8.0.2 unter WinXP und unter Verwendung einer von JMP generierten Beispiel-Spline-Koeffiziententabelle, als ich dazu aufgefordert wurde, funktionierte das folgende Skript für mich ohne Fehler:
Betreff: Fläche zwischen zwei Spline-Anpassungen berechnen (bivariat)Durchsuchen Sie dieses Forum mit „Spaltenformelvariable“ oder etwas Ähnlichem, um ein Beispiel für die erfolgreiche Erstellung einer Spaltenformel per Skript zu finden, die auf eine im Voraus unbekannte Spalte verweist. Ich denke, das wird helfen.Betreff: Fläche zwischen zwei Spline-Anpassungen berechnen (bivariat)Danke! Es funktioniert perfekt und ich versuche es jetzt in JSL. Wenn jemand Interesse hat, kann ich das Skript hier posten, wenn es fertig ist.
Übrigens gibt es ein Problem mit der kumulativen Spalte. Wenn Sie dies manuell tun, fügen Sie die Formel hinzu
Wenn(Row() == 1, :Slice Area, :Cumulative Area[Row() - 1] + :Slice Area[Row()]) zu einer Spalte „Cumulative Area“ funktioniert es. Wenn ich es jedoch durch Skripterstellung mit dem Befehl << set Formula() mache, erhalte ich die Fehlermeldung „Illegal Reference (Recursion) at row...“. Die Spalte wird erstellt, jedoch ohne die Formel.Betreff: Fläche zwischen zwei Spline-Anpassungen berechnen (bivariat)Aus dem 8.0.1-Statistik- und Diagrammhandbuch:
„Die kubische Spline-Methode verwendet eine Reihe von Polynomen dritten Grades, die so zusammengefügt werden, dass die resultierende Kurve an den Verbindungsstellen (Knotenpunkten) kontinuierlich und glatt ist. Die Schätzung erfolgt durch Minimierung einer Zielfunktion, die eine Kombination aus der Fehlerquadratsumme und einem über die Kurvenausdehnung integrierten Krümmungsabzug darstellt. Eine Beschreibung dieser Methode finden Sie im Artikel von Reinsch (1967) oder im Text von Eubank (1988).
Wenn Sie einen Spline in „Y nach Diese Aktion erstellt eine neue Tabelle mit den Spalten X, A, B, C, D. Spalte X enthält die eindeutigen X-Werte aus den Daten in aufsteigender Sortierreihenfolge. Die anderen 4 Spalten sind die Koeffizienten des Polynoms dritten Grades, das in einem Intervall verwendet wird, beginnend mit dem Wert von X für dieselbe Zeile bis zum Wert von X für die nächste Zeile. Wenn der Wert für X in derselben Zeile X1 ist, lautet das Polynom für das Intervall:
A + B*(X-X1) + C*(X-X1)^2 + D*(X-X1)^3
der für X bis X2, dem nächsten „Knoten“, verwendet wird. Um die genaue Fläche unter dieser Kurve zwischen x1 und x2 zu finden, integrieren Sie einfach dieses Polynom von X1 nach X2, um Folgendes zu erhalten:
A*(X2-X1) + (B*(X2-X1)^2)/2 + (C*(X2-X1)^3)/3 + (D*(X2-X1)^4)/4
Sie müssen eine neue Spalte namens „Area Slice“ erstellen und diese Formel eingeben. Verwenden Sie in der JMP-Formel X für X1 und Lag(X,-1) für X2. Dann erhalten Sie eine Spalte mit Flächenausschnitten. Anschließend können Sie alle Flächenabschnitte hinzufügen, um die Gesamtfläche unter der Kurve vom Anfang bis zum Ende zu erhalten. Sie können bei Bedarf auch eine Spalte mit kumulierten Flächen erstellen.
Dadurch erhalten Sie einen genauen Wert und keinen Näherungswert für die Fläche unter dem Spline.
Dies kann wahrscheinlich per Skript erfolgen, aber ich habe es nicht versucht.
Um die Fläche zwischen zwei solchen Kurven zu erhalten, ermitteln Sie einfach die Fläche für beide auf diese Weise und subtrahieren Sie die eine von der anderen.
Michael