Fehlende Werte imputieren

Zeitreihen in R bearbeiten

Harrison Brown

Graduate Researcher in Geography

Regelmäßige und unregelmäßige Zeitreihen

Regelmäßige Zeitreihen:

  • Keine fehlenden oder NA-Werte
  • Gleichmäßige Abstände zwischen Intervallen

Probleme in der Praxis:

  • Ausfall von Sensoren/Equipment
  • Witterungsbedingungen
  • ...

Aggregation:

  • Stichprobenbildung auf niedrigere zeitliche Auflösung
  • Verringert Informationsgehalt
  • z. B. monatliche Summe täglicher Werte

Imputation:

  • Füllt fehlende Werte auf
  • Verschiedene Methoden zur Wertbestimmung
Zeitreihen in R bearbeiten

Imputation

Grafik eines Ausschnitts des Mauna-Loa-Datensatzes. In dieser Version fehlen Punkte, wodurch im Liniendiagramm „Lücken" entstehen. Diese Lücken stehen für NA-Werte in den Daten.

Diese Grafik ist eine vergrößerte Version des vorherigen Mauna-Loa-Plots. Die Lücken im Liniendiagramm sind deutlicher.

Zeitreihen in R bearbeiten

Werte mit zoo imputieren

na-dot-Funktionen aus zoo:

  • zoo::na.fill()

  • zoo::na.locf()

  • zoo::na.approx()

Zeitreihen in R bearbeiten

Fehlende Werte ermitteln

observations
2017-01-01 NA
2017-01-02  2
2017-01-03  2
2017-01-04  2
2017-01-05  4
2017-01-06  2
2017-01-07 NA
2017-01-08  1
2017-01-09  2
2017-01-10  2
...
sum(is.na(observations))
[1] 23
Zeitreihen in R bearbeiten

na.fill

observations
2017-01-01 NA
2017-01-02  2
2017-01-03  2
2017-01-04  2
2017-01-05  4
...
table(observations, useNA = 'ifany')
   1    2    3    4    5    6 <NA> 
  43   29   17   13    1    2   23

Grafik einer fiktiven Zeitreihe, deren y-Achse die Anzahl der „observations" pro Tag zeigt. Es gibt Lücken zwischen den Beobachtungen, verursacht durch fehlende NA-Werte im Datensatz.

Zeitreihen in R bearbeiten

na.fill

observations_fill <-
  na.fill(object = observations,
          fill = 0)

table(observations_fill)
 0  1  2  3  4  5  6 
23 43 29 17 13  1  2
autoplot(observations_fill)

Dies ist die „aufgefüllte" Version der Grafik „Daily observations" – die fehlenden NA-Werte wurden mit Nullen ersetzt (Konstantfüllung).

Zeitreihen in R bearbeiten

na.locf

autoplot(scores)
Warning message:
Removed 12 row(s) containing
missing values (geom_path).

Grafik der fiktiven Zeitreihe „Monthly Test Scores". Die Linie endet abrupt, was darauf hindeutet, dass ab einem bestimmten Punkt NA-Werte fehlen. Gezeigt werden fiktive Testergebnisse von 2005 bis 2008 mit allgemeinem Aufwärtstrend. Nach 2007 fehlen Werte.

scores_locf <- na.locf(scores)
autoplot(scores_locf)

„Aufgefüllte" Version der Grafik „Monthly Test Scores" mit LOCF (Last Observation Carried Forward). Nach 2007 werden die Werte durch den letzten nicht-NA-Wert ersetzt.

Zeitreihen in R bearbeiten

Lineare Interpolation

na.approx()

Folie 1 einer „Animation", die den Ablauf der linearen Interpolation zeigt. Die Abbildung zeigt ein konzeptionelles Diagramm mit x- und y-Achse und Werten auf einer Linie. Zwischen linken und rechten Werten gibt es eine große „Lücke", in der die Daten NA sind.

Zeitreihen in R bearbeiten

Lineare Interpolation

na.approx()

Folie 2 einer „Animation" zur linearen Interpolation. Die Lücke zwischen beiden Datenhälften wird durch eine gepunktete rote Linie überbrückt: Lineare Interpolation verbindet die nächsten nicht-NA-Werte beidseits der fehlenden Daten.

Zeitreihen in R bearbeiten

Lineare Interpolation

na.approx()

Folie 3 einer „Animation" zur linearen Interpolation. Die rote, gepunktete Linie wird durch eine durchgezogene schwarze Linie ersetzt – die fehlenden Werte wurden per linearer Interpolation aufgefüllt.

Zeitreihen in R bearbeiten

na.approx

maunaloa_approx <-
  na.approx(maunaloa_missing)

autoplot(maunaloa_approx) +
  labs(
    x = "Index",
    y = "CO2 Concentration",
    title = "Approximated Data Points"
  )

Plot der Mauna-Loa-Zeitreihe, in dem fehlende NA-Werte per linearer Interpolation „aufgefüllt" wurden. Es ist kaum erkennbar, wo zuvor Werte fehlten – ein Hinweis auf die Genauigkeit dieser Methode.

Zeitreihen in R bearbeiten

Lass uns üben!

Zeitreihen in R bearbeiten

Preparing Video For Download...