Resampling und Aggregation von Beobachtungen

Zeitreihen in R bearbeiten

Harrison Brown

Graduate Researcher in Geography

Stichprobenfrequenz

Frequenz:

  • Anzahl der Beobachtungen pro Jahr
  • z. B. wöchentlich, täglich, monatlich, …

Zeitliche Auflösung:

  • „Hohe Auflösung": oft beprobt
  • „Niedrige Auflösung": selten beprobt
  • „Hoch" und „niedrig" sind subjektiv

Konzeptgrafik mit zwei Gittern: eines in niedriger und eines in hoher Auflösung. Sie zeigt den Unterschied zwischen häufiger und seltener beprobten Daten.

Zeitreihen in R bearbeiten

Aggregation

  • Hohe Auflösung -> niedrige Auflösung
  • Wendet eine Funktion wie mean, sum, max auf das Intervall an
  • z. B.:
    • Monatliche sum aus täglichen Daten
    • Wöchentliche mean aus stündlichen Werten
  • Aggregation lässt sich nicht „rückgängig" machen
  • Monatssumme -> Tageswerte?
  • Liefert Kennzahlen, um Muster zu beschreiben
  • Aggregation reduziert Informationen
Zeitreihen in R bearbeiten

Daten mit xts aggregieren

xts:

  • eXtensible Time Series
  • Erweitert das Paket zoo und die zoo-Klasse
  • apply.*()-Funktionen
yearly_mean <-
  apply.yearly(x = maunaloa,
               FUN = mean)
autoplot(yearly_mean) + 
  labs(...)

Grafik des Mauna-Loa-Datensatzes, der auf Jahresmittelwerte aggregiert wurde. Im Gegensatz zu den starken Schwankungen im Original zeigt die Kurve hier eine sehr glatte Linie, da die Stichprobenauflösung viel niedriger ist.

Zeitreihen in R bearbeiten

Daten mit xts aggregieren

Grafik der Mauna-Loa-Zeitreihe mit wöchentlich gemessenen CO2-Konzentrationen. Die Kurve steigt insgesamt an und zeigt jährlich periodische, saisonale Spitzen.

Grafik des Mauna-Loa-Datensatzes, der auf Jahresmittelwerte aggregiert wurde. Im Gegensatz zu den starken Schwankungen im Original zeigt die Kurve hier eine sehr glatte Linie, da die Stichprobenauflösung viel niedriger ist.

Zeitreihen in R bearbeiten

apply-Punkt-Funktionen

daily_total <-
  apply.daily(hourly_sales,
              FUN = sum)
weekly_max <-
  apply.weekly(daily_temperature,
               FUN = max)
monthly_average <-
  apply.monthly(daily_price,
               FUN = mean)
apply.quarterly(sales_report,
                FUN = sum)
apply.yearly(monthly_salary,
             FUN = sum)
Zeitreihen in R bearbeiten

Endpoints und period.apply

xts::endpoints()

xts::period.apply()

biweekly_eps <-
  endpoints(x = daily_data,
            on = "weeks",
            k = 2)
biweekly_data <-
  period.apply(x = daily_data,
               INDEX = biweekly_eps,
               FUN = mean)
biweekly_data
2002-05-05 8.148611
2002-05-19 8.146776
2002-06-02 8.060020
2002-06-16 8.028224
2002-06-30 7.944792
2002-07-14 7.930159
...
Zeitreihen in R bearbeiten

Lass uns üben!

Zeitreihen in R bearbeiten

Preparing Video For Download...