Reeșantionarea și agregarea observațiilor

Manipularea datelor de tip serie de timp în R

Harrison Brown

Graduate Researcher in Geography

Frecvența de eșantionare

Frecvență:

  • Numărul de observații pe an
  • ex.: săptămânal, zilnic, lunar, ...

Rezoluție temporală:

  • „Rezoluție ridicată" — eșantionat des
  • „Rezoluție scăzută" — eșantionat rar
  • „Ridicat" și „scăzut" sunt subiective

Diagramă conceptuală cu două grile: una cu rezoluție scăzută și una cu rezoluție ridicată, ilustrând ideea de date eșantionate mai frecvent sau mai rar.

Manipularea datelor de tip serie de timp în R

Agregarea

  • Rezoluție ridicată -> rezoluție scăzută
  • Aplică o funcție precum mean, sum, max pe intervalul ales
  • ex.:
    • sum lunar al datelor zilnice
    • mean săptămânal al valorilor orare
    • ...
  • Agregarea nu poate fi „inversată"
  • Total lunar -> valori zilnice?
  • Furnizează statistici pentru a descrie tipare în date
  • Agregarea reduce informația
Manipularea datelor de tip serie de timp în R

Agregarea datelor cu xts

xts:

  • eXtensible Time Series
  • Extinde pachetul zoo și clasa de obiecte zoo
  • Funcții apply.*()
yearly_mean <-
  apply.yearly(x = maunaloa,
               FUN = mean)
autoplot(yearly_mean) + 
  labs(...)

Grafic al setului de date Mauna Loa, agregat pentru a calcula media anuală. Spre deosebire de datele originale, care prezentau variații mari în cursul unui an, acest grafic are o linie foarte lină, deoarece rezoluția de eșantionare este mult mai scăzută.

Manipularea datelor de tip serie de timp în R

Agregarea datelor cu xts

Grafic al seriei de timp Mauna Loa, reprezentând concentrațiile de dioxid de carbon eșantionate săptămânal. Graficul prezintă o tendință generală ascendentă, cu un vârf sezonier periodic în fiecare an.

Grafic al setului de date Mauna Loa, agregat pentru a calcula media anuală. Spre deosebire de datele originale, care prezentau variații mari în cursul unui an, acest grafic are o linie foarte lină, deoarece rezoluția de eșantionare este mult mai scăzută.

Manipularea datelor de tip serie de timp în R

Funcțiile apply.

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)
Manipularea datelor de tip serie de timp în R

Endpoints și 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
...
Manipularea datelor de tip serie de timp în R

Să exersăm!

Manipularea datelor de tip serie de timp în R

Preparing Video For Download...