Dados e séries de referência¶
Copie o nome e passe para get_data; o resultado é uma pd.Series com
DatetimeIndex regular, pronta para o fit.
from autohybts.datasets import get_data
y = get_data("ozone")
Nome |
O que é |
Frequência |
Pontos |
Origem |
|---|---|---|---|---|
|
sintética: tendência, sazonalidade semanal e ruído AR(1) |
diária |
730 |
gerada pela AutoHybTS |
|
sintética: nível + ruído branco (controle negativo) |
diária |
730 |
gerada pela AutoHybTS |
|
sintética: demanda esparsa (venda em ~25% dos dias, tamanho 1 + Poisson) |
diária |
730 |
gerada pela AutoHybTS |
|
sintética: preço diário de uma commodity (safra anual, choques persistentes e choque de oferta) |
diária |
1095 |
gerada pela AutoHybTS |
|
passageiros aéreos, 1949–1960 |
mensal |
144 |
|
|
temperatura em Nottingham, 1920–1939 |
mensal |
240 |
|
|
mortes acidentais nos EUA, 1973–1978 |
mensal |
72 |
|
|
manchas solares, 1749–1983 |
mensal |
2820 |
|
|
consumo de gás no Reino Unido, 1960–1986 |
trimestral |
108 |
|
|
lucro por ação da Johnson & Johnson, 1960–1980 |
trimestral |
84 |
|
|
ozônio total em Halley Bay (Antártida), 1956–2000 |
anual |
45 |
|
|
vazão do rio Nilo, 1871–1970 |
anual |
100 |
|
|
linces capturados no Canadá, 1821–1934 |
anual |
114 |
|
|
nível do lago Huron, 1875–1972 |
anual |
98 |
|
|
manchas solares, 1700–1988 |
anual |
289 |
|
|
M4; troque |
várias |
— |
competição M4 (GitHub) |
|
M3; exige o extra |
várias |
— |
pacote R |
Maiúsculas e minúsculas não importam (get_data("Ozone") também funciona). A lista
está em autohybts.datasets.NAMED_SERIES.
De onde vêm os dados¶
A biblioteca não embute nenhuma série real: cada uma é baixada na primeira vez que é pedida, guardada em cache e lida dali nas vezes seguintes. São quatro origens:
Provedor |
Fonte |
Licença |
|---|---|---|
sintéticas |
geradas na hora por |
parte da AutoHybTS |
|
Rdatasets: um site que
publica em CSV os conjuntos de dados de centenas de pacotes R. O endereço de cada
CSV vem do índice |
a do pacote R de origem |
|
CSVs oficiais da competição M4 no repositório
Mcompetitions/M4-methods
(pasta |
dados da competição M4 (Makridakis et al.) |
|
arquivo do pacote R Mcomp 2.8 no
CRAN, lido em Python pela biblioteca |
GPL-3 (pacote |
Na coluna Origem, pacote::nome é o pacote R e o nome do objeto, como se escreve no
R. datasets é o pacote que já vem com o R; DAAG é o pacote do livro Data
Analysis and Graphics Using R. Os dois chegam pelo Rdatasets, e o R não precisa estar
instalado. get_data("ozone") equivale a
load_dataset("rdatasets", package="DAAG", name="ozone", target="Annual",
time_col="Year", frequency="YS"). O manifesto de cada arquivo no cache guarda a URL, a
licença e a versão do provedor.
Para ver o catálogo completo de cada provedor:
from autohybts.datasets import list_datasets
list_datasets() # provedores (sem download)
list_datasets("m4", subset="daily")
list_datasets("rdatasets", search="ozone")
Cache e segurança¶
Os arquivos vão para
~/.cache/autohybts/datasets(ouAUTOHYBTS_DATA_DIR), uma pasta por provedor. Nada é baixado na instalação nem noimport.Só HTTPS, só domínios aprovados por provedor, com tempo limite, poucas tentativas e tamanho máximo. Redirecionamentos também precisam ficar em HTTPS e nos domínios aprovados.
Nomes de pacote e de dataset viram nome de arquivo no cache e só aceitam letras, dígitos e
._+-(nada de/,\ou..).Cada arquivo tem um manifesto (URL, data de acesso, SHA-256, tamanho, licença, versão). Um arquivo alterado depois do download é recusado (
DatasetIntegrityError); os arquivos do M4 diário e o pacoteMcomptêm o checksum fixado no código.offline=Trueusa só o cache e diz o que falta (DatasetUnavailableError).Arquivos sem hash fixado são confiados no primeiro download; faça esse download numa rede confiável.
M4¶
from autohybts import AutoHybridExperiment
from autohybts.datasets import list_datasets, load_benchmark
list_datasets("m4", subset="daily")
series = load_benchmark("m4", subset="daily", series_id="D1")
series.train, series.test, series.descriptor.horizon
exp = AutoHybridExperiment(fh=series.descriptor.horizon,
test_size=len(series.test)).fit(series.full())
full() junta treino e teste oficial; test_size=len(series.test) sela o teste
oficial. As datas do M4 vêm de M4-info.csv (anos com dois dígitos, sabidamente pouco
confiáveis); quando não formam um índice válido, um calendário sintético é usado e
descriptor.extra["index_source"] == "synthetic".
M3¶
Do pacote R Mcomp (CRAN, GPL-3). Ler o arquivo R requer o extra datasets.
from autohybts.datasets import load_benchmark
m3 = load_benchmark("m3", subset="monthly") # BenchmarkDataset
panel = m3.panel(m3.series_ids[:5]) # PanelFrame, testes oficiais no fim
Outras séries do Rdatasets¶
Fora da tabela acima, o Rdatasets é um catálogo heterogêneo: a biblioteca não adivinha qual coluna é o tempo nem qual é o alvo. Olhe a tabela bruta e diga as duas, com a frequência:
from autohybts.datasets import load_dataset, raw_dataset
raw_dataset("rdatasets", package="datasets", name="AirPassengers") # colunas: time, value
air = load_dataset("rdatasets", package="datasets", name="AirPassengers",
target="value", time_col="time", frequency="MS")
y = air.full() # load_dataset devolve um BenchmarkSeries
Tempo em anos decimais (objetos ts do R) é convertido para YS, QS ou MS
e conferido; datas em texto passam por pd.to_datetime.
Tabelas sem coluna de data, como airquality (só Month e Day), são montadas
à mão a partir da tabela bruta:
import pandas as pd
d = raw_dataset("rdatasets", package="datasets", name="airquality")
idx = pd.to_datetime(dict(year=1973, month=d["Month"], day=d["Day"]))
oz = pd.Series(d["Ozone"].to_numpy(), index=idx, name="Ozone").asfreq("D")
oz = oz.interpolate(limit_direction="both") # 37 dias faltando: escolha como tratar
Nota
Por padrão, missing="reject" recusa valores ausentes no fit
(DataValidationError). Para preenchimento causal explícito,
missing="ffill" usa somente o último valor observado; lacunas iniciais sem
histórico continuam inválidas. A interpolação acima é uma escolha de preparação,
que pode usar valores posteriores e não deve atravessar uma origem de validação.
Veja Diagnóstico da série para o contrato de tratamento de ausentes.
Aviso
A licença de cada dataset do Rdatasets é a do pacote R de origem. A biblioteca não redistribui dados: consulte a origem antes de republicar.
Ver também
Séries com covariáveis (load_exog_dataset): veja Variáveis exógenas.
Tutoriais: 05. Benchmarks: M4, M3 e Rdatasets, 17. Estudo com as séries clássicas de benchmark.
Ver também
Tutorial executável do piloto M4: auditoria, custo e retomada. 22. Projeto com o M4 diário: seleção guardada, retomada e custo.