Revisando os dados de entrada

Projetando Pipelines de Previsão para Produção

Rami Krispin

Senior Manager, Data Science and Engineering

Demanda horária de eletricidade nos EUA

Série temporal mostrando tendências sazonais na demanda de eletricidade ano a ano

Projetando Pipelines de Previsão para Produção

Análise de sazonalidade

Série temporal mostrando tendências sazonais na demanda de eletricidade em nível horário e diário

Projetando Pipelines de Previsão para Produção

Análise de autocorrelação

Gráfico ACF mostrando defasagens diárias e semanais

Projetando Pipelines de Previsão para Produção

A API da EIA

Site da EIA

Projetando Pipelines de Previsão para Produção

A API da EIA

API da EIA

  • Não é necessária chave de API para concluir este curso 🎉
1 https://www.eia.gov/opendata/
Projetando Pipelines de Previsão para Produção

A API da EIA

import requests
import pandas as pd
import os






Projetando Pipelines de Previsão para Produção

A API da EIA

import requests
import pandas as pd
import os

api_url = "https://api.eia.gov/v2/"
api_path = "electricity/rto/region-data/"



Projetando Pipelines de Previsão para Produção

A API da EIA

import requests
import pandas as pd
import os

api_url = "https://api.eia.gov/v2/"
api_path = "electricity/rto/region-data/"
get_request = api_url + api_path + "data/&data[]=value"

print(get_request)
https://api.eia.gov/v2/electricity/rto/region-data/data/&data[]=value
Projetando Pipelines de Previsão para Produção

A API da EIA

eia_api_key = os.getenv('EIA_API_KEY')

get_request = get_request + "?api_key=" + eia_api_key
  • eia_api_key é pessoal e deve ser obtida no site da EIA
1 https://www.eia.gov/opendata/
Projetando Pipelines de Previsão para Produção

A API da EIA

data = requests.get(get_request).json()
df = pd.DataFrame(data['response']['data'])
Projetando Pipelines de Previsão para Produção

A API da EIA

data = requests.get(get_request).json()
df = pd.DataFrame(data['response']['data'])

print(df.head())
     period           respondent    respondent-name                              value
0    2022-04-06T07    AVA           Avista Corporation                           462894.0    
1    2024-04-06T07    AZPS          Arizona Public Service Company               463663.0    
2    2024-04-07T07    BANC          Balancing Authority of Northern California   464916.0    
3    2024-04-07T07    BPAT          Bonneville Power Administration              459376.0    
4    2024-04-07T07    CAL           California                                   441989.0    
Projetando Pipelines de Previsão para Produção

A API da EIA

API da EIA

1 EIA API website: https://www.eia.gov/opendata/ 2 EIA API dashboard: https://www.eia.gov/opendata/browser/
Projetando Pipelines de Previsão para Produção

Preparação dos dados

Formato de entrada para os pacotes statsforecast e mlforecast:

  1. unique_id - ID da série
  2. ds - timestamp da série
  3. y - valores da série
df = pd.read_csv("data/data.csv")
ts = df[["period", "value"]]
ts["period"] = pd.to_datetime(ts["period"])
ts = ts.sort_values("period")
Projetando Pipelines de Previsão para Produção

Preparação dos dados

Formato de entrada:

  1. unique_id - ID da série
  2. ds - timestamp da série
  3. y - valores da série
ts = ts[["period", "value"]]
ts["period"] = pd.to_datetime(ts["period"])
ts = ts.sort_values("period")

ts = ts.rename(columns = {"period": "ds", "value": "y"})
ts["unique_id"] = 1
Projetando Pipelines de Previsão para Produção

Preparação dos dados

print(ts.head())
     ds                     y           unique_id
0    2022-04-06 23:00:00    462894.0    1
1    2022-04-07 00:00:00    463663.0    1
2    2022-04-07 01:00:00    464916.0    1
3    2022-04-07 02:00:00    459376.0    1
4    2022-04-07 03:00:00    441989.0    1
Projetando Pipelines de Previsão para Produção

Vamos praticar!

Projetando Pipelines de Previsão para Produção

Preparing Video For Download...