Ratios financiers à partir de l'état des flux de trésorerie

Analyser les états financiers avec Python

Rohan Chatterjee

Risk Modeler

Lire des données JSON

  • Les données « dans la nature » ne sont pas toujours dans des chiffriers
  • Parfois, elles sont au format JSON (« JavaScript Object Notation »)
  • Les entreprises peuvent diffuser leurs états financiers en JSON
  • On peut lire des fichiers JSON dans Python avec pandas
cash_flow = pd.read_json("cash_flow_statement.json")
print(cash_flow.head())

Cette image montre les 5 premières lignes des données de l'état des flux de trésorerie chargées.

Analyser les états financiers avec Python

Ratio flux d'exploitation / bénéfice net

  • Proportion des flux de trésorerie d'exploitation par rapport au bénéfice net

  • Les activités d'exploitation sont les activités de base de l'entreprise

  • Un ratio élevé indique qu'une grande part de la trésorerie provient des activités d'exploitation

Formule :

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

Analyser les états financiers avec Python

Ratio de trésorerie d'exploitation

  • Proportion des flux de trésorerie d'exploitation par rapport aux passifs à court terme
  • Mesure le nombre de fois où l'entreprise peut régler ses obligations à court terme avec la trésorerie issue des activités de base
  • Un ratio supérieur à 1 indique une trésorerie suffisante pour couvrir les obligations à court terme

Formule :

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

Analyser les états financiers avec Python

Imputation des valeurs manquantes

  • Les données « dans la nature » ont souvent des valeurs manquantes
  • On peut avoir le numérateur d'un ratio, mais pas son dénominateur, ou l'inverse
  • Solution : imputer les valeurs manquantes avec des données d'autres entreprises
Analyser les états financiers avec Python

Imputation des valeurs manquantes

  • Dans le DataFrame dataset ci‑dessous, certaines valeurs de « Total des passifs à court terme » sont manquantes, indiquées par NaN

Cette image montre les premières lignes d'un état des flux de trésorerie où certaines valeurs de la colonne total des passifs sont manquantes.

  • On peut imputer les passifs à court terme manquants d'une entreprise avec ses valeurs non manquantes
Analyser les états financiers avec Python

Imputation des valeurs manquantes

  • On remplit les valeurs manquantes par la moyenne des valeurs non manquantes de chaque entreprise :
imputation = dataset.groupby("company")["Total Current Liabilities"].transform("mean")

dataset["Imputed Total Current Liabilities"] = dataset["Total Current Liabilities"].fillna(imputation)
  • Après imputation, dataset devient :

Cette image montre les premières lignes d'un état des flux de trésorerie avec des valeurs manquantes dans la colonne total des passifs. Une autre colonne, total des passifs à court terme imputés, contient les valeurs imputées.

  • Utiliser des percentiles pour être conservateur
Analyser les états financiers avec Python

Imputation avec des percentiles

  • Imputer une valeur manquante avec son 70e centile des pires valeurs non manquantes donne une estimation plus prudente.

  • Calculer les ratios avec cette imputation plus conservatrice peut être plus avisé si le ratio sert à la prise de décision.

  • Imputer au 70e centile, groupé par 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)
Analyser les états financiers avec Python

Passons à la pratique !

Analyser les états financiers avec Python

Preparing Video For Download...