2017-12-01 3 views
1

Ich habe einen Zeitreihendatensatz für Wassertemperatur, Lufttemperatur und Flussrate in einem Fluss. Ich habe ein GAM-Modell erstellt, um die Wassertemperatur basierend auf Lufttemperatur und -fluss vorherzusagen. Allerdings habe ich die Autokorrelation in den Datensätzen nicht berücksichtigt. Jeder Datenpunkt innerhalb der Prädiktoren und der abhängigen Variablen sind nicht unabhängig (d. H. Die Lufttemperatur an Tag 2 ist nicht unabhängig von der Lufttemperatur an Tag 1).Autokorrelation in verallgemeinerten additiven Modellen (GAM)

Kann mir jemand mit dem entsprechenden Code helfen, irgendeine Art von Autokorrelationsmaß (AR1?) In mein Modell aufzunehmen. Wie ich es verstehe, muss ich die gamm() Funktion anstelle der gam() Funktion verwenden?

Mein aktuelles Modell sieht wie folgt aus:

model <- gam(W.T.Mean ~ s(T.Mean) +s(Discharge), data = Pre_regulation_temp)

W.T.Mean mittlere tägliche Wassertemperatur ist. T.Mean ist mittlere tägliche Lufttemperatur. Entlastung ist mittlere tägliche Flow

Vielen Dank im Voraus

Antwort

0

Sie haben tatsächlich mehrere Möglichkeiten

  1. gamm() mit correlation = corAR1(form = ~ time) (wo time ist die Variable, die Sie die Bestellung in der Zeit der gleichmäßig verteilten Beobachtungen geben
  2. bam() und einen bekannten Wert von rho, den Parameter AR (1), angeben:

Das heißt, das Problem für die Inferenz ist, dass bedingt das geschätzte Modell (d. H. Auswirkungen von Kovariaten) die Antwort ist unabhängig und identisch verteilt. Anders ausgedrückt erwarten wir, dass die Residuen des Modells unabhängig (nicht autokorreliert) sind. Wenn der momentane (glatte) Effekt der Lufttemperatur auf die Wassertemperatur ausreicht, um die Modellresiduen unabhängig zu lassen, müssen Sie nicht unbedingt etwas tun, um das Modell zu korrigieren.

Wenn jedoch der geschätzte glatte Effekt der Lufttemperatur ziemlich wackelig ist, könnte dies darauf hindeuten, dass der geschätzte Effekt durch Autokorrelation in den Daten beeinflusst wird. Ich würde eine relativ einfache Beziehung zwischen Luft- und Wassertemperatur erwarten, mit sättigenden Effekten sowohl an den unteren als auch oberen Enden & mdash; Sie können nicht Wasser weniger als 0 gehen lassen, aber Lufttemperaturen können gut darunter gehen, & ebenfalls am oberen Ende erhalten Sie nicht die gleiche Erhöhung der Wassertemperatur für eine Einheit Erhöhung der Lufttemperatur. Überprüfen Sie daher die geschätzte Glättung, um zu sehen, ob der Effekt komplexer ist als erwartet. Wenn dies der Fall ist, sollten Sie versuchen, mit gamm() zu passen und sehen, wie sich die geschätzte Glätte ändert. Wenn es keinen großen Unterschied macht, würde ich zu meinem ursprünglichen gam() zurückkehren und die Autokorrelationsfunktion der Modellresiduen betrachten. Wenn das ein Problem mit der Autokorrelation zeigt, dann müssen Sie es entweder durch Hinzufügen von Termen korrigieren gam() Modell oder wechseln Sie zurück zu gamm() mit correlation = .... angegeben und verwenden Sie das für die Inferenz.

Andere, komplexere Option ist die Verwendung des brms Pakets, das auch Modelle mit AR- oder ARMA-Korrelationsstrukturen schätzen kann.

Verwandte Themen