Indicatori finanziari dal rendiconto finanziario

Analizzare i bilanci con Python

Rohan Chatterjee

Risk Modeler

Caricare dati JSON

  • I dati reali non arrivano sempre in fogli di calcolo
  • A volte sono in formato JSON (JavaScript Object Notation)
  • Le aziende possono condividere i loro rendiconti finanziari in JSON
  • Possiamo leggere file JSON in Python con pandas
cash_flow = pd.read_json("cash_flow_statement.json")
print(cash_flow.head())

Questa immagine mostra le prime 5 righe dei dati del rendiconto finanziario caricati.

Analizzare i bilanci con Python

Rapporto cassa/reddito netto

  • Quota del flusso di cassa da attività operative sul reddito netto

  • Le attività operative sono le attività core del business

  • Un rapporto alto indica che gran parte della cassa viene dalle attività operative

Formula:

$$\dfrac{\text{Cash flow from operating activities}}{\text{Net income}}$$

Analizzare i bilanci con Python

Operating cash flow ratio

  • Quota del flusso di cassa da attività operative sulle passività correnti
  • Misura quante volte l’azienda può coprire le obbligazioni a breve con la cassa generata dal core business
  • Un rapporto > 1 indica cassa sufficiente per gli obblighi a breve

Formula:

$$\dfrac{\text{Cash flow from operating activities}}{\text{Current liabilities}}$$

Analizzare i bilanci con Python

Imputare i valori mancanti

  • I dati “reali” hanno spesso valori mancanti
  • A volte c’è il numeratore di un rapporto ma manca il denominatore, o viceversa
  • Soluzione: imputa i mancanti con dati di altre aziende
Analizzare i bilanci con Python

Imputare i valori mancanti

  • Nel DataFrame dataset mostrato, alcune voci di "Total Current Liabilities" mancano, indicate con NaN

Questa immagine mostra le prime righe di un rendiconto finanziario in cui alcune voci della colonna total liabilities hanno valori mancanti.

  • Le passività correnti mancanti per un'azienda si possono imputare usando i valori non mancanti della stessa azienda
Analizzare i bilanci con Python

Imputare i valori mancanti

  • Riempiamo i mancanti con la media dei valori non mancanti per azienda:
imputation = dataset.groupby("company")["Total Current Liabilities"].transform("mean")

dataset["Imputed Total Current Liabilities"] = dataset["Total Current Liabilities"].fillna(imputation)
  • Dopo l'imputazione, dataset appare così:

Questa immagine mostra le prime righe di un rendiconto finanziario con alcuni valori mancanti nella colonna total liabilities. C’è un’altra colonna chiamata imputed total current liabilities con i mancanti imputati.

  • Usa i percentili per essere prudente
Analizzare i bilanci con Python

Imputare con i percentili

  • Imputare un valore mancante con il 70° percentile dei peggiori valori non mancanti è più conservativo.

  • Calcolare i rapporti con un’imputazione più conservativa è più prudente se il rapporto serve per decisioni.

  • Imputazione con 70° percentile, raggruppando per company:
imputation = dataset.groupby("company")["Total Current Liabilities"]\
    .transform(lambda x: np.nanquantile(x, 0.7))

dataset["Imputed Total Current Liabilities"] = dataset["Total Current Liabilities"]\
    .fillna(imputation)
Analizzare i bilanci con Python

Ayo berlatih!

Analizzare i bilanci con Python

Preparing Video For Download...