Wie kann man abrupte Veränderungen charakterisieren?


13

Diese Frage ist möglicherweise zu grundlegend. Für einen zeitlichen Trend von Daten möchte ich den Punkt herausfinden, an dem "abrupte" Änderungen auftreten. In der ersten Abbildung unten möchte ich beispielsweise den Änderungspunkt mithilfe einer statistischen Methode ermitteln. Und ich möchte eine solche Methode auf einige andere Daten anwenden, deren Änderungspunkt nicht offensichtlich ist (wie in der zweiten Abbildung). Gibt es also eine übliche Methode für diesen Zweck?

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein


2
Der Begriff "Wendepunkt" hat eine besondere Bedeutung, die meiner Meinung nach nicht für eine plötzliche Pegelverschiebung (ob nach oben oder nach unten) gilt. Sie verwenden auch den Ausdruck "Änderungspunkt", und ich denke, das ist wahrscheinlich eine bessere Wahl. Bitte denken Sie nicht, dass dies zu einfach ist. Selbst grundlegende Fragen sind willkommen, ohne dass eine Entschuldigung erforderlich ist, und diese Frage ist nicht im entferntesten grundlegend.
Glen_b -State Monica

Vielen Dank. Ich habe den "Wendepunkt" in der Frage in "Änderungspunkt" geändert.
user2230101

Antworten:


11

Wenn die Beobachtungen Ihrer Zeitreihendaten mit den unmittelbar vorhergehenden Beobachtungen korrelieren, könnte Sie das Papier von Chen und Liu (1993) [ 1 ] interessieren. Es beschreibt eine Methode zur Erkennung von Pegelverschiebungen und vorübergehenden Änderungen im Rahmen autoregressiver Zeitreihenmodelle mit gleitendem Durchschnitt.[1]

[1]: Chen, C. und Liu, LM. (1993),
"Joint Estimation of Model Parameters and Outlier Effects in Time Series",
Journal der American Statistical Association , 88 : 421, 284-297


+1 Ich habe versucht (aber es ist mir nicht gelungen), mich an dieses Papier zu erinnern, um es zu finden. Es ist eine gute Referenz.
Glen_b -State Monica

6

Dieses Problem in Stats wird als (univariate) zeitliche Ereigniserkennung bezeichnet. Die einfachste Idee ist die Verwendung eines gleitenden Durchschnitts und einer Standardabweichung. Jeder Messwert, der außerhalb der 3 Standardabweichungen liegt (Faustregel), wird als "Ereignis" betrachtet. Es gibt natürlich fortgeschrittenere Modelle, die HMMs oder Regression verwenden. Hier ist eine einführende Übersicht über das Gebiet .


5
Dies ist der einzige öffentlich zugängliche Beitrag im gesamten Web, der den Ausdruck "Univariate zeitliche Ereigniserkennung" enthält! Was ist Ihre Quelle für diesen Begriff?
whuber

Entschuldigung, wenn es verwirrend war. Ereigniserkennung ist ein häufigerer Begriff, und Temporal wird manchmal separat verwendet. Univariate wird nicht häufig verwendet, da die Ansätze typischerweise multivariat sind, aber es ist sein Sonderfall.
user1669710

1
Die Antwort wurde bearbeitet, um Ihren Kommentar aufzunehmen. @whuber
user1669710

@ ser1669710 Danke. Das suche ich. Scheint, dass der gleitende Durchschnitt mein Problem nicht lösen kann. Ich muss mir das kompliziertere Modell ansehen.
user2230101

Ich möchte mehr über diese zeitliche Ereigniserkennung erfahren. Die Folien, die Sie gepostet haben, sind nett, aber ich habe mich gefragt, ob Sie den Link zu einem Übersichtsartikel haben, der das Feld etwas formeller beschreibt.
aaragon

1

Ji={0x<xi1xxi
x1<x2<<xmJiJaprilJdecemberxi

J1J2x1x2


1
PS - @ user1669710 und ich haben gleichzeitig Antworten gepostet. Ich habe dafür gestimmt, weil es offensichtlich besser recherchiert ist. Aber ich lasse dies hier, da es eine Alternative ist, die funktioniert und einfach zu implementieren ist.
Russ Lenth

1
Da es eine schrittweise Regression verwendet und viele Kandidatenvariablen verwendet, sieht dieses Verfahren verdächtig aus. Wo wurde es untersucht und welche Eigenschaften hat es? Wie ist der Vergleich mit anderen Changepoint- Methoden?
whuber

@whuber, mein Punkt genau. Deshalb habe ich für die andere Antwort gestimmt. Es wird nicht allzu günstig verglichen, wenn Sie einen sehr detaillierten Satz von Änderungspunktwerten haben. Und sonst könnte es das nicht einmal günstig vergleichen. Ich stelle es nur als Ad-hoc- Methode heraus und ich denke, ich habe es als solche präsentiert. Ich denke jedoch, dass eine solche Methode ein guter Weg ist, um Startwerte für die nichtlineare Methode zu erhalten.
Russ Lenth

Die Idee liegt einigen der effektiveren Changepoint-Methoden zugrunde, die ich gefunden habe, aber insbesondere die Verwendung der schrittweisen Regression lässt mich vermuten (obwohl ich mir nicht sicher bin), dass diese Methode nicht einmal vernünftige Ausgangspunkte für andere Methoden zur Verbesserung liefern könnte. Deshalb bin ich gespannt, ob es überhaupt studiert wurde.
whuber

Ich denke, es würde nur wenige Probleme mit der Auswahl aller Teilmengen geben, solange es wirklich eine bestimmte Anzahl von Sprüngen gibt (sagen wir zwei), da wir die zwei Sprünge finden würden, die die Daten am besten erklären. Andere Auswahlmethoden könnten ebenso problematisch sein wie in anderen Situationen. Ich denke, es hängt davon ab, wie wichtig es ist, die beste Antwort zu erhalten, im Vergleich zu einer guten Antwort und einer schnellen Antwort. Nicht alle Probleme sind gleich, auch nicht alle Kunden. Die beste Antwort der Welt ist ein völliger Misserfolg, wenn Sie es nicht erklären können.
Russ Lenth

1

Es gibt ein damit verbundenes Problem, eine Reihe oder Sequenz in Zaubersprüche mit idealerweise konstanten Werten zu unterteilen. Siehe Wie kann ich numerische Daten in natürlich bildende "Klammern" gruppieren? (zB Einkommen)

Es ist nicht ganz das gleiche Problem, da die Frage Zauber mit langsamer Drift in eine oder alle Richtungen nicht ausschließt, jedoch ohne abrupte Änderungen.

Eine direktere Antwort ist zu sagen, dass wir nach großen Sprüngen suchen, daher besteht das einzige wirkliche Problem darin, den Sprung zu definieren. Die erste Idee ist dann, nur die ersten Unterschiede zwischen benachbarten Werten zu betrachten. Es ist nicht einmal klar, dass Sie dies verfeinern müssen, indem Sie zuerst das Rauschen entfernen. Wenn Sprünge nicht von Rauschunterschieden unterschieden werden können, können sie sicherlich nicht abrupt sein. Auf der anderen Seite möchte der Fragesteller offensichtlich, dass abrupte Änderungen sowohl rampenförmige als auch schrittweise Änderungen umfassen, so dass einige Kriterien wie Varianz oder Reichweite innerhalb von Fenstern fester Länge erforderlich erscheinen.


1

Der Bereich der Statistik, nach dem Sie suchen, ist die Änderungspunktanalyse. Es ist eine Website , hier das gibt Ihnen einen Überblick über die Gegend und hat auch eine Seite für Software.

Wenn Sie ein RBenutzer sind, würde ich das changepointPaket für Änderungen im Mittelwert und das strucchangePaket für Änderungen in der Regression empfehlen . Wenn Sie Bayesianer sein wollen, dann ist das bcpPaket auch gut.

Im Allgemeinen müssen Sie einen Schwellenwert auswählen, der die Stärke der gesuchten Änderungen angibt. Es gibt natürlich Schwellenwerte, die in bestimmten Situationen empfohlen werden, und Sie können auch asymptotische Konfidenzniveaus oder Bootstrapping verwenden, um Vertrauen zu gewinnen.


1
Das OP identifizierte zwei Beispiele, von denen ich eines einen Schritt und das andere eine Rampe nennen würde, obwohl es immer Raum gibt, über Wörter zu streiten. Siehe auch meine Antwort hier. Wie gehen diese Methoden mit Rampen um? Haben sie ein stillschweigendes oder explizites Modell des schrittweisen Wandels?
Nick Cox

Danke für die Frage Nick. Im Allgemeinen hängt es davon ab, wie lang die Rampe ist. Wenn es sich um eine kurze Rampe handelt, wird sie als 1 Änderung behandelt. Wenn die Rampe länger ist, identifizieren die Änderungspunktmethoden häufig 2 Änderungen, 1 am Anfang der Rampe und 1 am Ende. Dies hängt natürlich von dem zugrunde liegenden Modell ab, das Sie annehmen.
Adunaic

1

Dieses Inferenzproblem hat viele Namen, einschließlich Änderungspunkte, Schaltpunkte, Unterbrechungspunkte, Regression unterbrochener Linien, Regression gebrochener Stöcke, bilineare Regression, stückweise lineare Regression, lokale lineare Regression, segmentierte Regression und Diskontinuitätsmodelle.

Hier finden Sie eine Übersicht über Änderungspunktpakete mit Vor- / Nachteilen und Arbeitsbeispielen. Wenn Sie die Anzahl der Änderungspunkte a priori kennen, lesen Sie das mcpPaket. Lassen Sie uns zunächst die Daten simulieren:

df = data.frame(x = seq(1, 12, by = 0.1))
df$y = c(rnorm(21, 0, 5), rnorm(80, 180, 5), rnorm(10, 20, 5))

Bei Ihrem ersten Problem handelt es sich um drei Intercept-Only-Segmente:

model = list(
  y ~ 1,  # Intercept
  ~ 1,  # etc...
  ~ 1
)
library(mcp)
fit = mcp(model, df, par_x = "x")

Wir können die resultierende Anpassung zeichnen:

plot(fit)

enter image description here

Hier sind die Änderungspunkte sehr gut definiert (eng). Fassen wir die Anpassung zusammen, um ihre abgeleiteten Positionen ( cp_1und cp_2) zu sehen:

summary(fit)

Family: gaussian(link = 'identity')
Iterations: 9000 from 3 chains.
Segments:
  1: y ~ 1
  2: y ~ 1 ~ 1
  3: y ~ 1 ~ 1

Population-level parameters:
    name   mean lower upper Rhat n.eff
    cp_1   3.05   3.0   3.1    1  6445
    cp_2  11.05  11.0  11.1    1  6401
   int_1   0.14  -1.9   2.1    1  5979
   int_2 179.86 178.8 180.9    1  6659
   int_3  22.76  19.8  25.5    1  5906
 sigma_1   4.68   4.1   5.3    1  5282

Sie können viel kompliziertere Modelle mcperstellen, einschließlich der Modellierung der Autoregression N-ter Ordnung (nützlich für Zeitreihen) usw. Haftungsausschluss: Ich bin der Entwickler von mcp.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.