Ratios financiers à partir du tableau des flux de trésorerie

Analyser les états financiers en Python

Rohan Chatterjee

Risk Modeler

Lire des données JSON

  • Les données « dans la nature » ne sont pas toujours sous forme de tableur
  • Parfois elles sont au format JSON (« JavaScript Object Notation »)
  • Les entreprises peuvent partager 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 du tableau des flux de trésorerie chargées.

Analyser les états financiers en Python

Ratio flux d'exploitation / résultat net

  • Part des flux de trésorerie d'exploitation par rapport au résultat net

  • Les activités d'exploitation sont le cœur du métier

  • Un ratio élevé indique que l'entreprise génère une large part de trésorerie via ses activités d'exploitation

Formule :

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

Analyser les états financiers en Python

Operating cash flow ratio

  • Part des flux de trésorerie d'exploitation par rapport aux passifs courants
  • Mesure combien de fois l'entreprise peut régler ses obligations à court terme avec la trésorerie issue du cœur d'activité
  • 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 en Python

Imputer les valeurs manquantes

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

Imputer les valeurs manquantes

  • Dans le DataFrame dataset ci-dessous, certaines valeurs de « Total Current Liabilities » manquent, indiquées par NaN

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

  • On peut imputer les passifs courants manquants d'une entreprise à partir de ses valeurs non manquantes
Analyser les états financiers en Python

Imputer les valeurs manquantes

  • Nous complétons 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 tableau des flux de trésorerie où certaines valeurs de la colonne total liabilities sont manquantes. Il comporte une autre colonne appelée imputed total current liabilities où les valeurs manquantes sont imputées.

  • Prendre des percentiles pour rester prudent
Analyser les états financiers en Python

Imputer 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 conservatrice peut être plus avisé si le ratio sert à décider.

  • Imputer via le 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 en Python

Passons à la pratique !

Analyser les états financiers en Python

Preparing Video For Download...