2017-05-18 6 views
2

Diese Frage ist weniger über die Programmierung als über Mathematik, aber ich möchte einige Meinungen.Python Exponential/lineare Kurvenanpassung

Ich versuche, das exponentielle Abklingverhalten von this curve zu modellieren, aber wie Sie sehen können, gibt es ein gewisses Maß an Fluktuationen/Rauschen bei den niedrigeren Werten. Wie kann ich dieses Geräusch beseitigen/dämpfen, so dass meine Passform davon nicht abhängig ist?

Ich arbeite mit dem Protokoll dieser Kurve, also verwende ich lineare Regressionen für die Anpassung. Ich habe die Methode der kleinsten Quadrate verwendet, aber die Steigung der Geraden variiert stark (um etwa 20%), abhängig vom gewählten Zeitintervall.

Ich habe über zwei andere Methoden gehört, die helfen könnten:

  • Weighted Methode der kleinsten Quadrate, aber ich weiß nicht, wie ich mit einem Gewicht von meine Punkte gehen würde.
  • Geringste absolute Abweichungen, scheinbar kleine Werte sind mit dieser Methode weniger relevant.

Ich möchte die Versuchs- und Fehlerphase vermeiden. Hast du eine Idee?

Edit: Der Code erfolgt mit Python

+0

Bitte fügen Sie die Daten und den Code verwenden, und vielleicht auch den 'python'-Tag hinzufügen. – Cleb

+0

Die Anpassung des exponentiellen Zerfalls mit linearen Methoden an logarithmisch komprimierten Daten ist nicht korrekt. Versuchen Sie, das Netz nach "kinetischer Modellierung" zu durchsuchen. Viele Pakete existieren, um diese Art von Problemen zu lösen. Ein Beispiel ist kinfit ein 'R'-Paket. –

+0

Könnten Sie näher erläutern, warum es falsch ist, es mit einem linearen Modell anzupassen? Ich habe bis jetzt korrekte Ergebnisse erhalten, es vereinfacht die Gleichung und die Parameter im Spiel sind intuitiver. –

Antwort

2

Wenn in log-Raum des abklingenden Teil des Datums linear sieht nicht so aus, dann ist es kein einfacher Verfall. Tatsächlich sehen die Daten eher wie eine Summe aus einem exponentiellen Zerfall und einem konstanten Hintergrund aus. Versuchen Sie also ein Modell wie a*exp(-b*x)+c. Die Kurve im Bild ist die rechte Seite eines Gaußschen Peaks (die Schwänze fallen mehr oder weniger exponentiell ab) mit konstantem Offset. Die Anpassung (grüne Linie) ist eine Funktion wie oben angegeben.

fit of simulated data

+0

Ja, das ist es, das Hinzufügen des 'c'-Parameters hilft dabei, die Anpassung in Schach zu halten. Vielen Dank. Haben Sie eine bestimmte Anpassungsfunktion verwendet? –

+0

Einfach nur die kleinsten Quadrate, über 'scipy.odr'. Das Bild ist ein Screenshot einer peak-o-mat-Sitzung (http://lorentz.sf.net). –