Revisione dei dati in input

Progettare pipeline di forecasting per la produzione

Rami Krispin

Senior Manager, Data Science and Engineering

Domanda oraria di elettricità negli USA

Grafico a serie temporale che mostra tendenze stagionali nella domanda di elettricità anno su anno

Progettare pipeline di forecasting per la produzione

Analisi della stagionalità

Grafico di serie temporale con tendenze stagionali della domanda di elettricità a livello orario e giornaliero

Progettare pipeline di forecasting per la produzione

Analisi dell'autocorrelazione

Grafico ACF con ritardi giornalieri e settimanali

Progettare pipeline di forecasting per la produzione

L'API EIA

Sito EIA

Progettare pipeline di forecasting per la produzione

L'API EIA

API EIA

  • Nessuna API key richiesta per completare questo corso 🎉
1 https://www.eia.gov/opendata/
Progettare pipeline di forecasting per la produzione

L'API EIA

import requests
import pandas as pd
import os






Progettare pipeline di forecasting per la produzione

L'API EIA

import requests
import pandas as pd
import os

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



Progettare pipeline di forecasting per la produzione

L'API 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
Progettare pipeline di forecasting per la produzione

L'API EIA

eia_api_key = os.getenv('EIA_API_KEY')

get_request = get_request + "?api_key=" + eia_api_key
  • eia_api_key è personale e va ottenuta dal sito EIA
1 https://www.eia.gov/opendata/
Progettare pipeline di forecasting per la produzione

L'API EIA

data = requests.get(get_request).json()
df = pd.DataFrame(data['response']['data'])
Progettare pipeline di forecasting per la produzione

L'API 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    
Progettare pipeline di forecasting per la produzione

L'API EIA

API EIA

1 Sito API EIA: https://www.eia.gov/opendata/ 2 Dashboard API EIA: https://www.eia.gov/opendata/browser/
Progettare pipeline di forecasting per la produzione

Preparazione dei dati

Formato input per i pacchetti statsforecast e mlforecast:

  1. unique_id - ID della serie
  2. ds - timestamp della serie
  3. y - valori della serie
df = pd.read_csv("data/data.csv")
ts = df[["period", "value"]]
ts["period"] = pd.to_datetime(ts["period"])
ts = ts.sort_values("period")
Progettare pipeline di forecasting per la produzione

Preparazione dei dati

Formato input:

  1. unique_id - ID della serie
  2. ds - timestamp della serie
  3. y - valori della serie
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
Progettare pipeline di forecasting per la produzione

Preparazione dei dati

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
Progettare pipeline di forecasting per la produzione

Passiamo alla pratica !

Progettare pipeline di forecasting per la produzione

Preparing Video For Download...