Reamostragem e agregação de observações

Manipulando Dados de Séries Temporais em R

Harrison Brown

Graduate Researcher in Geography

Frequência de amostragem

Frequência:

  • Número de observações por ano
  • ex.: semanal, diária, mensal, ...

Resolução temporal:

  • "Alta resolução": amostragem frequente
  • "Baixa resolução": amostragem esparsa
  • "Alta" e "baixa" são subjetivas

Diagrama conceitual com duas grades: uma de baixa resolução e outra de alta resolução. O diagrama destaca dados amostrados com mais ou menos frequência.

Manipulando Dados de Séries Temporais em R

Agregação

  • Alta resolução -> baixa resolução
  • Aplica função como mean, sum, max no intervalo escolhido
  • ex.:
    • sum mensal de dados diários
    • mean semanal de valores horários
    • ...
  • Não dá para "desfazer" a agregação
  • Total mensal -> valores diários?
  • Fornece estatísticas para descrever padrões nos dados
  • Agregar reduz informação
Manipulando Dados de Séries Temporais em R

Agregando dados com xts

xts:

  • eXtensible Time Series
  • Estende o pacote zoo e a classe de objetos zoo
  • Funções apply.*()
yearly_mean <-
  apply.yearly(x = maunaloa,
               FUN = mean)
autoplot(yearly_mean) + 
  labs(...)

Gráfico do conjunto de dados Mauna Loa, agregado para calcular a média anual. Diferente dos dados originais, com forte variação dentro de cada ano, este gráfico tem uma linha bem suave, pois a resolução de amostragem é bem menor.

Manipulando Dados de Séries Temporais em R

Agregando dados com xts

Gráfico da série temporal de Mauna Loa, com concentrações de dióxido de carbono amostradas semanalmente. Há uma tendência geral de alta, com um pico sazonal anual.

Gráfico do conjunto de dados Mauna Loa, agregado para calcular a média anual. Diferente dos dados originais, com forte variação dentro de cada ano, este gráfico tem uma linha bem suave, pois a resolução de amostragem é bem menor.

Manipulando Dados de Séries Temporais em R

Funções apply-dot

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)
Manipulando Dados de Séries Temporais em R

Endpoints e 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
...
Manipulando Dados de Séries Temporais em R

Vamos praticar!

Manipulando Dados de Séries Temporais em R

Preparing Video For Download...