Moving Average Schätzung Matlab


Angenommen, ich habe eine beobachtete Zeitreihe yt, die ich vermutlich geglättet habe. Es scheint eine signifikante Autokorrelation bei Verzögerung 1 und 2 zu sein, daher nehme ich an, dass die beobachtete Reihe yt die Form hat: yt theta0 xt theta1 x (1 - theta0 - theta1) x wobei xt die ursprüngliche Reihe ist. Wie kann ich die ursprüngliche Reihe wiederherstellen xt klar Ich brauche eine Methode, um theta0 und theta1 zu schätzen und dann die relevante Transformation anzuwenden. Aber wie zu tun, dass ich nicht sehen, wie ein Arima-Prozess hier gelten. Jan 16, 2010 at 12:07 Ihr Modell kann als Arima-Modell geschrieben werden, oder genaue MA (2) - Modell: yt ztalpha1 z alpha2 z, ARIMA-Modelle sind in der Regel mit Koeffizienten 1 für zt postuliert, weil Sie immer bewegen können Multiplikative Konstante auf die Varianz der Störungen. Yt theta0xttheta1 x (1-theta0-theta1) x wird MA (2) - Modell So können Sie MA (2) - Modell und dann wiederherstellen theta0 und theta1 aus alpha1 und alpha2: Hier ist das Beispiel in R: Sie können xt als residuals wiederherstellen Des arima-Modells: Wie Sie sehen, hat das Verfahren Koeffizienten mit der Genauigkeit von 3 Dezimalstellen wiederhergestellt. Die gewonnene xt wird ebenfalls auf ähnliche Genauigkeit wiederhergestellt. Der Unterschied ist die Initialisierung. Das ARIMA-Modell geht davon aus, dass der Prozess unendlich ist, aber die Daten sind niemals unendlich, so dass jede Einschätzung eine Initialisierung voraussetzt. Wie aus dem Plot hervorgeht, haben die ersten Elemente der wiederhergestellten xt den größten Fehler, aber dann stabilisiert sich der Fehler. Da ARIMA-Modelle über das Kalman-Filterverfahren geschätzt werden, können Sie es selbst mit der richtigen Initialisierung umsetzen. Beachten Sie, dass in diesem Beispiel eine ziemlich große Stichprobe von 10000 Elementen verwendet wurde. Weniger Daten würden in schlechter Präzision führen, sollten Sie einige Tests, um das Ausmaß der Auswirkungen der Stichprobengröße auf die Präzision der Wiederherstellung zu sehen. Antwort # 2 am: März 16, 2010, um 15:48 Uhr mpiktas, es hängt von den Daten. Einige Serien sind bekannt als abhängig von vorherigen Erfahrungen oder das Verständnis des Prozesses. Zum Beispiel ist es einfach nicht vernünftig, davon auszugehen, dass Kautionsguthaben oder Flächentemperaturen unabhängig oder sogar nicht autokorreliert sind. Ich muss nicht testen. Im Allgemeinen können Sie nicht auf Unabhängigkeit prüfen, selbst wenn Sie die Daten beobachten. Ndash Aksakal Sie können mit der Annahme beginnen, dass Ihre beobachtete Variable aus dem wahren Wert erhalten wird als yt theta0 xt theta1 x et Es würde helfen, zu wissen, was der Prozess der zugrunde liegenden Variable ist, seine xt beta0 beta1 X ut wobei et, ut Fehler sind. Wenn diese Gleichungen dann sinnvoll sind, können Sie sie mit dem Kalman-Filter abschätzen, siehe Beispiel hier. Als nächstes testen Sie, ob theta0theta11, wenn es statistisch hält, dann vielleicht Ihre Spezifikation hält, so können Sie mit einem eingeschränkten Fit fortsetzen. Sie müssen die Erwartungen aber: Glättung führt zu Datenverlust, im Allgemeinen. So können Sie nicht reproduzieren die ursprüngliche Serie genau. Thats, warum mit Kalman-Filter mussten wir eine Annahme über die beobachteten und wahren Prozesse zu machen, d. H. Wir mussten einige externe Daten injizieren, um verlorene Daten (aus Glättung) zu kompensieren, um die wahre Serie wiederherzustellen. Beantwortet Jan 15 16 at 14:37 Groß, danke. Dieses half :) ndash Ant Jan 15 16 am 22:45 Deine Antwort 2017 Stapel-Austausch, IncMoving Durchschnittliche Trendschätzung Dieses Beispiel zeigt, wie man den langfristigen Trend mit einer symmetrischen gleitenden Durchschnittsfunktion schätzen kann. Dies ist eine Faltung, die Sie mit conv implementieren können. Die Zeitreihe ist monatlich internationale Fluggesellschaft Passagiere zählt von 1949 bis 1960. Laden Sie den Airline-Datensatz (DataAirline). Die Daten zeigen einen linearen Trend und eine saisonale Komponente mit Periodizität 12. Die Periodizität der Daten ist monatlich, so dass ein 13-term gleitender Durchschnitt eine vernünftige Wahl für die Schätzung des langfristigen Trends ist. Verwenden Sie das Gewicht 124 für die ersten und letzten Bedingungen und das Gewicht 112 für die Innenausdrücke. Fügen Sie die gleitende durchschnittliche Trendschätzung dem beobachteten Zeitreihenplot hinzu. Wenn Sie den im Aufruf von conv. Beobachtungen am Anfang und Ende der Serie gehen verloren. Hier hat der gleitende Durchschnitt die Fensterlänge 13, so dass die ersten und letzten 6 Beobachtungen keine geglätteten Werte aufweisen. MATLAB und Simulink sind eingetragene Warenzeichen von The MathWorks, Inc. Bitte lesen Sie mathworkstrademarks für eine Liste anderer Marken, die Eigentum von The MathWorks, Inc. sind. Andere Produkt - oder Markennamen sind Warenzeichen oder eingetragene Warenzeichen der jeweiligen Eigentümer. Wählen Sie Ihr Land Ich muss einen gleitenden Durchschnitt über eine Datenreihe innerhalb einer for-Schleife berechnen. Ich muss den gleitenden Durchschnitt über N9 Tage bekommen. Das Array Im-Berechnen ist 4 Reihe von 365 Werten (M), die selbst Mittelwerte eines anderen Satzes von Daten sind. Ich möchte die Mittelwerte meiner Daten mit dem gleitenden Durchschnitt in einem Diagramm darstellen. Ich googeln ein wenig über gleitende Durchschnitte und den conv Befehl und fand etwas, das ich versuchte, in meinem Code umzusetzen: So grundsätzlich berechne ich meinen Durchschnitt und plot ihn mit einem (falschen) gleitenden Durchschnitt. Ich wählte die wts Wert direkt an der Mathworks-Website, so dass ist falsch. (Quelle: mathworks. nlhelpeconmoving-average-trend-estimation. html) Mein Problem aber ist, dass ich nicht verstehe, was dieses wts ist. Könnte jemand erklären, wenn es etwas mit den Gewichten der Werte zu tun hat: das ist in diesem Fall ungültig. Alle Werte werden gleich gewichtet. Und wenn ich das völlig falsch mache, könnte ich etwas Hilfe dabei haben Mein aufrichtigster Dank. Die Verwendung von conv ist eine hervorragende Möglichkeit, einen gleitenden Durchschnitt zu implementieren. In dem Code, den Sie verwenden, ist wts, wie viel Sie jeden Wert wiegen (wie Sie ahnen). Die Summe dieses Vektors sollte immer gleich Eins sein. Wenn Sie jeden Wert gleichmäßig gewichten und eine Größe N bewegten Filter dann tun möchten, würden Sie tun möchten Mit dem gültigen Argument in conv wird mit weniger Werten in Ms, als Sie in M ​​haben. Verwenden Sie diese, wenn Sie dont die Auswirkungen von Nullpolsterung. Wenn Sie die Signalverarbeitung Toolbox haben, können Sie cconv verwenden, wenn Sie einen kreisförmigen gleitenden Durchschnitt ausprobieren möchten. Etwas wie Sie sollten die conv und cconv Dokumentation für weitere Informationen lesen, wenn Sie havent bereits. Sie können Filter verwenden, um einen laufenden Durchschnitt zu finden, ohne eine for-Schleife zu verwenden. Dieses Beispiel findet den laufenden Durchschnitt eines 16-Element-Vektors unter Verwendung einer Fenstergröße von 5. 2) glatt als Teil der Curve Fitting Toolbox (die in den meisten Fällen verfügbar ist) yy glatt (y) glättet die Daten in dem Spaltenvektor Y unter Verwendung eines gleitenden Durchschnittsfilters. Die Ergebnisse werden im Spaltenvektor yy zurückgegeben. Die Standardspanne für den gleitenden Durchschnitt ist 5.

Comments

Popular Posts