Ich verwende eine nichtlineare Methode der kleinsten Quadrate, um eine analytische Funktion an einige experimentelle Daten anzupassen. Ich muss dem Algorithmus einige anfängliche Schätzwerte geben, also versuche ich herauszufinden, wie dies automatisch gemacht wird (und nicht mit dem Auge, was ich getan habe).
Dies sind einige simulierte Daten, die durch Hinzufügen von normalverteiltem Zufallsrauschen zur Analysefunktion erstellt werden
Ich versuche, die Position dieser Schrittänderung in den Daten zuverlässig zu erkennen. Ich hatte nur begrenzten Erfolg, indem ich die mittlere Varianz in den Datenpunkten berechnet und nach Punkten in den Daten gesucht habe, die sich erheblich von diesem Wert unterscheiden, aber dieser Ansatz scheint durch das Signal-Rausch-Verhältnis sehr begrenzt zu sein.
Ich hoffe auf eine Richtung, in die ich schauen muss, um mein Problem zu lösen, da ich überhaupt nicht viele Statistiken kenne.
Vielen Dank!
-Edit Einfügen bin Link zu xy Daten
quelle
Antworten:
Es mag einige ausgefeiltere Methoden dafür geben, aber hier ist mein erster Gedanke.
Sie möchten im Grunde genommen die Ableitung der Funktion nehmen und herausfinden, wo sie am größten ist. Numerisch können Sie einfach den Unterschied zwischen Datenpunkten nehmen und herausfinden, welche beiden Punkte den größten Unterschied aufweisen. Dann ist der Mittelpunkt der x-Werte für diese beiden Punkte Ihr Ort der größten Änderung.
Diese einfache Methode ist anfällig für Rauschen. Sie können die Daten also zuerst mit einem Filter filtern, der die Daten nicht nach rechts oder links verschiebt. Wenn Sie einen einfachen FIR-Filter verwenden, filtern Sie von vorne nach hinten und das Ergebnis von hinten nach vorne. Das Ergebnis ist ein doppelt gefilterter und NICHT verschobener Datensatz. Befolgen Sie dann die obigen Schritte, um den Punkt mit der größten Differenz zwischen den Werten zu finden.
Sie können auch komplexere numerische Differentialberechnungen verwenden, die mehr als die Differenz zweier Punkte verwenden.
quelle
Ihre Daten deuten visuell auf eine asymptotische (allmähliche) Änderung der neuen Ebene hin. Zeitreihenmethoden können häufig verwendet werden, um diese Art von Strukturen zu erkennen, selbst wenn die Daten keine Zeitreihen sind. Bitte posten Sie Ihre Daten und ich kann dies möglicherweise mit "Spielzeug" demonstrieren, das mir zur Verfügung steht. Wenn Ihre Daten Zeitreihen sind, muss man, wie @jason reflektiert, effektiv mit dem Rauschmodell umgehen, um die Struktur korrekt zu "sehen".
BEARBEITET BEI DATENEMPFANG:
Die Modellierung ist häufig ein iterativer Ansatz mit Zwischenschritten, die wertvolle Hinweise auf ein nützliches Modell liefern. Ich nahm Ihre Daten und stellte sie AUTOBOX vor (eines meiner Spielzeuge, an deren Entwicklung ich mitgewirkt habe). Ein erstes Diagramm deutete stark auf einen longitudinalen (chronologischen) Datensatz hin, in dem die X-Reihe in festen Intervallen angegeben wird. AUTOBOX schlug automatisch ein Standard-ARIMA-Modell (mit Interventionserkennung) vor, das das instationäre X durch einen differenzierenden Operator ersetzt. Hier ist das tatsächliche / Fit / Prognose-Diagramm und das vorgeschlagene Modell.
Bei der Prüfung bot sich ein anderes mögliches Modell an, das eine Verzögerungsstruktur für eine Indikatorvariable enthält. Ich habe im Zeitraum 76 einen Impuls eingeführt (ein dynamischer Prädiktor, der ausdrücklich bis zu einem möglichen Verzögerungseffekt von 50 Perioden zulässt) (Beginn des Übergangs), um die Beziehung zwischen dem ursprünglichen Y und dem vom Benutzer vorgeschlagenen X zu behandeln, um mehr zu erreichen Untersuchen Sie die Wirkung von X vollständig, als akzeptieren Sie die vollständige Aufhebung von X.
Es folgt das Diagramm der tatsächlichen Anpassungsprognose für diesen Ansatz und das identifizierte robuste Übertragungsfunktionsmodell. mit Restplot und Rest-ACF hier
Das endgültige Modell erfasst die Dynamik in bestimmten Verzögerungen des dynamischen Prädiktors sowie einige Impulse und eine angemessene Speicherstruktur.
Selbst die leistungsstärksten Analysepakete benötigen häufig eine Anleitung, wenn sie mit komplexen Datensätzen der realen Welt wie diesem umgehen, da nichts mit dem kreativen menschlichen Verstand vergleichbar ist.
quelle
Eine Technik besteht darin, alle Werte der x-Variablen auf die Standardabweichung der Daten davor und danach zu testen. Für eine echte Schrittfunktion ist die Summe dieser beiden an der Schrittposition minimal, und das Minimum sollte ein guter Startparameter für Ihre nichtlineare Funktion sein.
Hier ist eine grafische Darstellung Ihrer Originaldaten (schwarz), der Standardabweichung vor x (blau), nach x (rot) und der Summe der letzten beiden (grün).
quelle
Ich erkenne, dass diese Frage alt ist. Aber ich wollte da draußen eine andere Methode werfen. Canny schrieb eine Arbeit (A Computational Approach to Edge Detection), in der er dieses Problem im zweidimensionalen Fall der Kantenerkennung in Bildern löste. Sie können die Zeitung lesen, wenn Sie möchten, aber um auf den Punkt zu kommen, können Sie eine sehr gute Annäherung an den Änderungspunkt erhalten, indem Sie Folgendes tun:
woχ ist ein Skalierungsfaktor.
In meiner Erfahrung mit dieser Methode habe ich festgestellt, dass die Auswahl der richtigen Skalierungsparameter schwierig ist. Aber es kann noch mehr Arbeit geben, die mir nicht bekannt ist.
Ich habe Cannys Artikel zusammengefasst und hier ein Beispiel gegeben .
quelle
Sie können Wavelet-transformierte Zeitreihen mit Kurzperiodentypen haar / db4 untersuchen . Ich habe keine Zeiger, sondern nur einige Suchbegriffe. Versuchen Sie "Wavelet Change Point Detection".
Es gibt mehrere R-Pakete auf Wavelets, siehe Zeitreihen-Aufgabenansicht: https://cran.r-project.org/web/views/TimeSeries.html
Hier finden Sie ein Beispiel: http://it.mathworks.com/help/wavelet/examples/detecting-discontinuities-and-breakdown-points.html?requestedDomain=www.mathworks.com
Zur Theorie siehe Mallat et Hwang-Artikel: "Singularitätserkennung und -verarbeitung mit Wavelets"
Siehe verwandte Antwort: Anwendung von Wavelets auf zeitreihenbasierte Anomalieerkennungsalgorithmen
quelle