Financiële ratio’s uit het kasstroomoverzicht

Financiële overzichten analyseren in Python

Rohan Chatterjee

Risk Modeler

JSON-data inlezen

  • Data uit de praktijk staat niet altijd in spreadsheets
  • Soms komt het in JSON (JavaScript Object Notation)
  • Bedrijven kunnen hun financiële overzichten delen in JSON
  • We kunnen JSON inlezen in Python met pandas
cash_flow = pd.read_json("cash_flow_statement.json")
print(cash_flow.head())

Deze afbeelding toont de bovenste 5 rijen van de geladen kasstroomgegevens.

Financiële overzichten analyseren in Python

Kasstroom/ nettowinst-ratio

  • Aandeel kasstroom uit operationele activiteiten t.o.v. nettowinst

  • Operationele activiteiten zijn de kernactiviteiten van het bedrijf

  • Hoge ratio betekent dat veel cash uit operationele activiteiten komt

Formule:

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

Financiële overzichten analyseren in Python

Operating cash flow-ratio

  • Aandeel kasstroom uit operationele activiteiten t.o.v. kortlopende schulden
  • Meet hoe vaak kortlopende verplichtingen kunnen worden betaald uit kasstroom van de kernactiviteiten
  • Een ratio > 1 betekent voldoende kasstroom om kortlopende verplichtingen te dekken

Formule:

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

Financiële overzichten analyseren in Python

Ontbrekende waarden imputeren

  • Data “in het wild” heeft vaak ontbrekende waarden
  • Soms is de teller van een ratio beschikbaar, maar de noemer niet (of andersom)
  • Oplossing: imputeer ontbrekende data met data van andere bedrijven
Financiële overzichten analyseren in Python

Ontbrekende waarden imputeren

  • In de DataFrame dataset ontbreken sommige waarden van "Total Current Liabilities", aangeduid met NaN

Deze afbeelding toont de bovenste rijen van een kasstroomoverzicht waar in de kolom total liabilities enkele waarden ontbreken.

  • Ontbrekende kortlopende schulden voor een bedrijf kun je imputeren met beschikbare waarden van datzelfde bedrijf
Financiële overzichten analyseren in Python

Ontbrekende waarden imputeren

  • We vullen ontbrekende waarden met het gemiddelde van de niet-ontbrekende waarden per bedrijf:
imputation = dataset.groupby("company")["Total Current Liabilities"].transform("mean")

dataset["Imputed Total Current Liabilities"] = dataset["Total Current Liabilities"].fillna(imputation)
  • Na imputatie ziet dataset er zo uit:

Deze afbeelding toont de bovenste rijen van een kasstroomoverzicht met ontbrekende waarden in total liabilities. Er is een extra kolom imputed total current liabilities waar de missende waarden zijn ingevuld.

  • Neem percentielen voor een conservatieve schatting
Financiële overzichten analyseren in Python

Imputeren met percentielen

  • Imputeren met de 70e percentiel van de ongunstige niet-ontbrekende waarden geeft een meer conservatieve schatting.

  • Ratio’s met zo’n conservatieve imputatie zijn vaak verstandiger voor besluitvorming.

  • Imputeren met het 70e percentiel, gegroepeerd 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)
Financiële overzichten analyseren in Python

Laten we oefenen!

Financiële overzichten analyseren in Python

Preparing Video For Download...