Fehlende Daten ersetzen – I
Wie du in der vorherigen Übung gesehen hast, fehlen in deinen vierteljährlichen BIP-Daten mehrere Beobachtungen. Dein Aufruf von summary() hat dort sogar 80 fehlende Datenpunkte gezeigt!
Wie du dich aus dem ersten xts-Kurs erinnerst, stellen xts und zoo verschiedene Funktionen zur Behandlung fehlender Werte bereit.
Die einfachste Technik ist der Befehl na.locf(), der die letzte Beobachtung vor dem fehlenden Wert nach vorne fortschreibt (daher „last observation carried forward“, kurz locf). Dieser Ansatz ist oft sinnvoll, besonders wenn du beim Wachstum in deinen Daten eher konservativ vorgehen möchtest.
Ein ähnlicher Ansatz funktioniert in die entgegengesetzte Richtung, indem die erste Beobachtung nach dem fehlenden Wert rückwärts übertragen wird („next observation carried backward“, kurz nocb). Das lässt sich ebenfalls mit na.locf() umsetzen, indem du das Argument fromLast auf TRUE setzt.
Welche Methode am besten ist, hängt von der Art deiner Daten und deinen Annahmen darüber ab, wie sich die Werte im Zeitverlauf verändern.
Diese Übung ist Teil des Kurses
Fallstudie: Zeitreihendaten von Städten in R analysieren
Anleitung zur Übung
- Verwende
na.locf(), um die fehlenden Werte ingdp_xtsbasierend auf der letzten fortgeschriebenen Beobachtung zu füllen. Speichere dieses neue xts-Objekt alsgdp_locf. - Verwende einen weiteren Aufruf von
na.locf(), um fehlende Werte ingdp_xtsbasierend auf der nächsten Beobachtung, die rückwärts übertragen wird, zu füllen. Setze dafür das ArgumentfromLastaufTRUE. Speichere dieses neue xts-Objekt alsgdp_nocb. - Plotte jedes dieser Objekte mit
plot.xts(). Nutze den vorgegebenenpar()-Befehl, um beide Plots gemeinsam anzuzeigen. - Frage in jedem Objekt (
gdp_locfundgdp_nocb) das BIP für 1993 ab.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Fill NAs in gdp_xts with the last observation carried forward
gdp_locf <-
# Fill NAs in gdp_xts with the next observation carried backward
gdp_nocb <-
# Produce a plot for each of your new xts objects
par(mfrow = c(2,1))
plot.xts(___, major.format = "%Y")
plot.xts(___, major.format = "%Y")
# Query for GDP in 1993 in both gdp_locf and gdp_nocb