Eine “Zeitreihe” ist eine zeitlich geordnete Folge von Beobachtungen, bei der sich die Anordnung der Merkmalsausprägungen zwingend aus dem Zeitablauf ergibt (etwa Aktienkurse, Bevölkerungsentwicklung, Wetterdaten).
Die einzelnen Zeitpunkte werden zu einer Menge von Beobachtungszeitpunkten \(T\) zusammengefasst, bei der für jeden Zeitpunkt \(t \in T\) genau eine Beobachtung vorliegt. Zeitreihen treten in fast allen Bereichen der Wissenschaft auf.
Das R-Paket tsibble stellt eine Datenstruktur (das tsibble - wie tibble aus dem tidyverse wobei ts für Time Series steht) sowie verschiedene Funktionen bereit, die das Arbeiten mit Zeitreihen vereinfachen.
if (!file.exists("daten/d_wind_raw.RData")) { d_wind_raw <-selectDWD(name ="Helgoland", res ="10_minutes", var ="wind", per ="historical", current =TRUE) |>dataDWD() |>bind_rows()save(d_wind_raw, file ="daten/d_wind_raw.RData")} else {load(file ="daten/d_wind_raw.RData")}
In tsibble: Zusatzinformation zu Index und Schlüssel
Plot der Rohdaten
ggplot(data = d_wind_raw_ts) +geom_line(mapping =aes(x = Datum, y = Geschwindigkeit))
Lücken im Datensatz, erste Lücke mit Linie verbunden!
Lücken listen mit count_gaps
d_wind_raw_ts |>count_gaps()
Lücken listen mit count_gaps
d_wind_raw_ts |>count_gaps() |>filter(.n >=10)
Lücken auffüllen mit fill_gaps
d_wind <- d_wind_raw_ts |>fill_gaps()
nrow(d_wind_raw_ts)
[1] 1454109
nrow(d_wind)
[1] 1474496
Fehlende Beobachtungen mit NA aufgefüllt.
Plot
ggplot(d_wind) +geom_line(mapping =aes(x = Datum, y = Geschwindigkeit))
\(\rightarrow\) Lücken werden als Lücken dargestellt
Starkwindereignisse
Ereignis: Windgeschwindigkeit innerhalb von 2 Stunden nicht unter 10 m/s und mindestens einmal über 20 m/s (Beispiel, kein Kriterium des DWD)
d_wind_stark <- d_wind |>mutate(v_min_120 =roll_minr(Geschwindigkeit, n =12, na.rm =TRUE),v_max_120 =roll_maxr(Geschwindigkeit, n =12, na.rm =TRUE) ) |>filter(v_min_120 >=10, v_max_120 >=20)
Funktionen roll_minr und roll_maxr suchen aus n = 12 Werten (aktuell und 11 vorangegangene) kleinsten und größten Wert heraus. Analog für Summe, Mittelwert und so weiter.
Plot
ggplot(data = d_wind_stark) +geom_line(mapping =aes(x = Datum, y = v_min_120))
\(\rightarrow\) Einzelne Ereignisse sind nicht zu unterscheiden!