Die Daten bestehen aus optischen Spektren (Lichtintensität gegen Frequenz), die zu unterschiedlichen Zeiten aufgenommen wurden. Die Punkte wurden in einem regelmäßigen Raster in x (Zeit), y (Frequenz) erfasst. Um die zeitliche Entwicklung bei bestimmten Frequenzen zu analysieren (ein schneller Anstieg, gefolgt von einem exponentiellen Abfall), möchte ich einen Teil des in den Daten vorhandenen Rauschens entfernen. Dieses Rauschen kann für eine feste Frequenz wahrscheinlich als zufällig mit Gauß-Verteilung modelliert werden. Zu einem festgelegten Zeitpunkt zeigen die Daten jedoch eine andere Art von Rauschen mit großen Störspitzen und schnellen Schwingungen (+ zufälliges Gaußsches Rauschen). Soweit ich mir vorstellen kann, sollte das Rauschen entlang der beiden Achsen unkorreliert sein, da es unterschiedliche physikalische Ursprünge hat.
Was wäre ein vernünftiges Verfahren, um die Daten zu glätten? Das Ziel ist nicht, die Daten zu verzerren, sondern "offensichtliche" verrauschte Artefakte zu entfernen. (und kann eine Überglättung eingestellt / quantifiziert werden?) Ich weiß nicht, ob eine Glättung in einer Richtung unabhängig von der anderen sinnvoll ist oder ob es besser ist, in 2D zu glätten.
Ich habe Dinge über die Schätzung der 2D-Kerneldichte, die 2D-Polynom- / Spline-Interpolation usw. gelesen, bin aber mit dem Jargon oder der zugrunde liegenden statistischen Theorie nicht vertraut.
Ich verwende R, für das ich viele Pakete sehe, die verwandt erscheinen (MASS (kde2), Felder (glatt.2d) usw.), aber ich kann hier nicht viele Ratschläge finden, welche Technik ich anwenden soll.
Ich freue mich, mehr zu erfahren, wenn Sie bestimmte Referenzen haben, auf die Sie mich hinweisen können (ich höre, MASS wäre ein gutes Buch, aber vielleicht zu technisch für einen Nicht-Statistiker).
Bearbeiten: Hier ist ein Dummy-Spektrogramm, das für die Daten repräsentativ ist, mit Schnitten entlang der Zeit- und Wellenlängendimensionen.
Das praktische Ziel hierbei ist es, die exponentielle Abklingrate in der Zeit für jede Wellenlänge (oder Bins, wenn sie zu verrauscht sind) zu bewerten.
Antworten:
Sie müssen ein Modell angeben, das das Signal vom Rauschen trennt.
Es gibt die Rauschkomponente auf dem Messpegel, die Sie als Gauß annehmen. Die anderen Komponenten, abhängig von den Messungen:
"Dieses Rauschen kann für eine feste Frequenz wahrscheinlich als zufällig mit Gauß-Verteilung modelliert werden." Klärungsbedürftig - Ist die Rauschkomponente angesichts der Frequenz allen Zeitpunkten gemeinsam? Ist die Standardabweichung für alle Frequenzen gleich? Usw.
"Zu einem festgelegten Zeitpunkt zeigen die Daten jedoch eine andere Art von Rauschen mit großen Störspitzen und schnellen Schwingungen." Wie trennen Sie das vom Signal, denn vermutlich sind Sie an einer Variation der Intensität über die Frequenz interessiert. Unterscheidet sich die interessante Variante irgendwie von der uninteressanten und wenn ja, wie?
Störschwingungen oder nicht-Gaußsches Rauschen sind im Allgemeinen kein großes Problem, wenn Sie eine realistische Vorstellung von ihren Eigenschaften haben. Sie kann modelliert werden, indem die Daten transformiert werden (und dann ein Gauß-Modell verwendet wird) oder indem explizit eine nicht-Gauß-Fehlerverteilung verwendet wird. Das Modellieren von Rauschen, das über Messungen korreliert ist, ist schwieriger.
Abhängig davon, wie Ihr Rausch- und Datenmodell ist, können Sie die Daten möglicherweise mit einem Allzweckwerkzeug wie den GAMs im mgcv-Paket modellieren, oder Sie benötigen ein flexibleres Werkzeug, das leicht zu einem ganz benutzerdefinierten Bayes'schen Setup führt . Es gibt Tools für solche Modelle, aber wenn Sie kein Statistiker sind, dauert es eine Weile, bis Sie lernen, sie zu verwenden.
Ich denke, entweder eine spezifische Lösung für die Spektralanalyse oder das mgcv-Paket sind Ihre besten Wetten.
quelle
Eine Zeitreihe von Spektren legt mir ein kinetisches Experiment nahe , und es gibt eine gut etablierte Menge chemometrischer Literatur darüber.
Was weißt du über die Spektren? Um welche Art von Spektren handelt es sich? Können Sie vernünftigerweise erwarten, dass Sie nur zwei Arten haben, Edukt und Produkt?
Sie sagen, dass Sie einen exponentiellen Abfall (in den Konzentrationen) schätzen möchten. Dies zusammen mit der Bilinearität legt für mich eine multivariate Kurvenauflösung (MCR) nahe. Dies ist eine Technik, mit der Sie Informationen (z. B. reine Komponentenspektren einiger Substanzen oder Annahmen zum Konzentrationsverhalten wie den exponentiellen Abfall) während der Modellanpassung verwenden können.
Anna de Juan, Marcel Maeder, Manuel Martínez Romà Tauler: Kombination von Hart- und Weichmodellierung zur Lösung kinetischer Probleme, Chemometrics and Intelligent Laboratory Systems 54, 2000. 123–141.
Soweit ich weiß, ist es durchaus üblich, die Konzentrationen nach einem bestimmten, z. B. kinetischen Modell zu glätten, aber es ist weitaus seltener, die Spektren zu glätten. Der Algorithmus erlaubt dies jedoch. Ich habe Anna im Sommer gefragt, ob sie Glättungsbeschränkungen auferlegen, aber sie hat mir gesagt, dass dies nicht der Fall ist (und gute Spektroskopiker hassen es, zu glätten, anstatt gute Spektren zu messen ;-)). Oft wird es auch nicht benötigt, da die Aggregation der Informationen aus allen Spektren bereits gute Schätzungen der reinen Komponentenspektren ergibt.
Ich habe in letzter Zeit zweimal "Komponentenspektren" (tatsächlich Hauptkomponenten) geglättet ( Dochow et al . : Raman-on-Chip-Gerät und Detektionsfasern mit Faser-Bragg-Gitter zur Analyse von Lösungen und Partikeln, LabChip, 2013 und Dochow el al. : Quarz-Mikrofluidik-Chip zur Identifizierung von Tumorzellen durch Raman-Spektroskopie in Kombination mit optischen Fallen (AnalBioanalChem, akzeptiert), aber in diesen Fällen sagte mir mein spektroskopisches Wissen, dass ich dies tun darf. Ich wende ziemlich regelmäßig eine Downsampling- und Glättungsinterpolation auf meine Raman-Spektren an (
hyperSpec::spc.loess
).Woher wissen, was zu viel Glättung ist? Ich denke, die einzig mögliche Antwort ist "Expertenwissen über die Art der Spektroskopie und des Experiments".
edit: Ich habe die Frage noch einmal gelesen und du sagst, du willst den Zerfall bei jeder Wellenlänge schätzen. Stimmt das jedoch oder möchten Sie den Zerfall verschiedener Arten mit überlappenden Spektren abschätzen?
quelle
Sie haben die Spline-Interpolation erwähnt, aber das FDA-Paket nicht erwähnt, das die oben erwähnte Basisfunktionserweiterung ziemlich gut und leicht zugänglich implementiert. Der Satz simultaner Messungen für Zeit, Frequenz und Intensität (geordnet als dreidimensionales Array) könnte als ein bivariates Funktionsdatenobjekt erfasst werden, siehe. zB die Funktion 'Data2fd'. Darüber hinaus sind in der Verpackung mehrere Glättungsverfahren verfügbar, die alle darauf ausgelegt sind, weißes Rauschen oder "Rauheit" bei Messungen von inhärent glatten Prozessen zu beseitigen.
Der Wikipedia- Artikel formuliert das Problem des weißen Rauschens in der FDA wie folgt:
Die FDA stellt die Tools für diese Fälle bereit. Übersetzt sich das nicht auf Ihren Fall?
In Bezug auf die FDA: Ich war es auch nicht, aber das Buch von Ramsay und Silverman über die FDA (2005) macht die Grundlagen sehr gut zugänglich, und Ramsay Hooker und Graves (2009) übersetzen die Erkenntnisse aus dem Buch direkt in R-Code. Beide Bände sollten als E-Books in einer Universitätsbibliothek für Statistik, Biowissenschaften, Klimatologie oder Psychologie verfügbar sein. Google wird auch einige weitere Links aufrufen, die ich hier nicht zusammen posten kann.
Entschuldigung, dass ich keine direktere Lösung für Ihr Problem anbieten kann. Die FDA hat mir jedoch sehr geholfen, als ich herausgefunden habe, wofür es ist.
quelle
Als einfacher Physiker und nicht als Statistikexperte würde ich einen einfachen Ansatz verfolgen. Die beiden Dimensionen sind unterschiedlicher Natur. Es wäre sinnvoll, die Zeit mit einem Algorithmus zu glätten und die Wellenlänge mit einem anderen zu glätten.
Die tatsächlichen Algorithmen, die ich verwenden würde: für die Wellenlänge Savitzky-Golay mit einer höheren Ordnung, 6 vielleicht 8.
Wenn dieses Beispiel typisch ist, machen es ein plötzlicher Sprung und ein mehr oder weniger exponentieller Rückgang mit der Zeit schwierig. Ich hatte einfach so experimentelle Daten und verrauschte Bilder. Wenn einfache, unkomplizierte Methoden nicht ausreichen, versuchen Sie es mit einem Gaußschen Glätter, unterdrücken Sie jedoch dessen Wirkung in der Nähe des Sprungs, wie er von einem Kantendetektor erkannt wird. Glätten und verbreitern Sie die Ausgabe des Kantendetektors, normalisieren Sie sie auf 0,0 bis 1,0 und wählen Sie damit Pixel für Pixel zwischen dem Originalbild und dem Gaußschen geglätteten Bild.
quelle
@baptiste: Ich bin froh, dass du die Handlung hinzugefügt hast, wie ich vorgeschlagen habe. Es hilft sehr:
Wenn ich das richtig verstehe, besteht Ihr praktisches Ziel darin, die exponentielle Abklingrate für jede Wellenlänge zu bewerten. dann lass uns genau das tun! Definieren Sie eine Funktion, die Sie für jede Wellenlänge separat minimieren möchten, und minimieren Sie sie.
Schauen wir uns eine einzelne Wellenlänge an, wie in Ihrem Diagramm unten rechts.
Wenn Sie später der Meinung sind, dass benachbarte Wellenlängen ähnliche Abklingkonstanten haben sollten, können Sie dies in ein ausführlicheres Optimierungskriterium einbeziehen.
Wenn überhaupt, würde ich vorschlagen, dass Sie ein Buch lesen, das Sie unbedingt lesen müssen: Boyds konvexe Optimierung .
Hoffe das hilft!
quelle