Coleção series-temporais
Tabela para série
Monta uma série a partir de uma coluna de valores e, opcionalmente, uma de tempo.
O que o bloco faz
Transforma uma coluna de uma tabela numa série temporal. É a porta de entrada
de todo dado seu: lido por data/read, limpo e filtrado na coleção
data, e só então virado série aqui.
A frequência é declarada aqui, uma vez
Frequência é quantas observações formam um ciclo: 12 para mensal, 4 para trimestral, 1 para anual, 7 para diária com ciclo semanal, 24 para horária com ciclo diário. Ela viaja com a série, e é por ela que a diferença sazonal sabe usar defasagem 12, a decomposição corta ciclos de 12 e o correlograma marca as defasagens 12, 24, 36. Errar aqui erra todo o fluxo — por isso é o único lugar em que se digita.
Tempo: ordena e confere a grade
Com Tempo preenchido, as linhas são ORDENADAS por ele (a tabela pode vir embaralhada) e duas coisas viram card vermelho:
- instante repetido — dois valores para o mesmo mês. Agregue antes num
data/group_summarise. - período faltando — a linha de maio sumiu. Isto é o que mais importa: um
tsé só um vetor com início e frequência, e sem a checagem junho passaria a ser chamado de maio, deslocando o calendário inteiro dali em diante, com o card verde. A mensagem diz entre quais datas está o buraco. Se não há dado naquele mês, a linha tem de existir com o valor em branco (NA) — e depois umseries/interpolatedecide o que pôr lá.
A grade só é conferida onde há calendário: coluna de DATA com frequência 12, 4 ou 1, e coluna de ANO inteiro com frequência 1. Nesses casos o início sai da própria coluna. Para as outras frequências (7, 24, 52…) a coluna só ordena e confere repetição; o início vem do campo Início.
Sem Tempo, a série segue a ordem das linhas da tabela, e começa em Início (ou no período 1).
Série simulada
Não há gerador aqui, e é de propósito: sortear é trabalho da coleção data.
Uma coluna criada num data/mutate com as.numeric(arima.sim(list(ar = 0.7), n())) dá um AR(1) do tamanho da tabela; ligue a tabela aqui, com Valor
apontando para essa coluna.
Antes de continuar
Termos que esta página usa, em poucas palavras. As definições completas estão no glossário.
- Repetição
- Cada unidade experimental que recebe o mesmo tratamento. As repetições permitem estimar o erro experimental; medir várias vezes a mesma unidade não é repetição.
- Sazonalidade
- Um padrão que se repete em intervalos fixos do calendário, como mais chuva em janeiro ou mais vendas em dezembro. O período sazonal é o comprimento do ciclo: 12 para dados mensais com ciclo anual.
Quando usar
Converta uma tabela preparada na coleção Dados em série temporal. Informe a coluna numérica, a frequência e, quando disponível, a coluna que define a ordem e o calendário.
Configuração
- Valor — coluna numérica com os valores da série. Obrigatório. Coluna de
texto é recusada: converta antes num
data/convert. - Tempo — coluna que ordena as linhas e, quando é data ou ano, dá o início e tem a grade conferida. Vazio usa a ordem da tabela.
- Frequência — observações por ciclo (12 mensal, 4 trimestral, 1 anual).
- Início —
anoouano, período(2019, 7é julho de 2019). Só vale sem Tempo ou quando o tempo não é data/ano; preencher os dois é recusado, porque seriam duas fontes para o mesmo fato.
Exemplo
library(trama)
reg <- tr_registry()
tr_use("trama.data", registry = reg)
tr_use("trama.series", registry = reg)
arquivo <- tempfile(fileext = ".csv")
dados <- data.frame(
mes = seq(as.Date("2022-01-01"), by = "month", length.out = 24),
vendas = round(100 + 8 * sin(2 * pi * (1:24) / 12) + 0.5 * (1:24))
)
write.csv(dados, arquivo, row.names = FALSE)
tr_flow(reg) |>
tr_add("ler", "data/read", path = arquivo) |>
tr_add("serie", "series/from_table", valor = "vendas", tempo = "mes",
frequencia = 12L, from = "ler")Como interpretar
Uma série (series/ts), que o card mostra como gráfico.