Фінансові коефіцієнти зі звіту про рух грошових коштів

Аналіз фінансової звітності в Python

Rohan Chatterjee

Risk Modeler

Зчитування даних у форматі JSON

  • «Польові» дані не завжди надходять у вигляді електронних таблиць
  • Іноді це формат JSON ("JavaScript Object Notation")
  • Компанії можуть ділитися фінансовою звітністю у JSON
  • Ми можемо зчитувати файли JSON у Python за допомогою pandas
cash_flow = pd.read_json("cash_flow_statement.json")
print(cash_flow.head())

На зображенні показано перші 5 рядків даних зі звіту про рух грошових коштів.

Аналіз фінансової звітності в Python

Коефіцієнт грошового потоку до чистого прибутку

  • Частка грошового потоку від операційної діяльності у чистому прибутку

  • Операційна діяльність — це основна діяльність бізнесу

  • Високий коефіцієнт означає, що бізнес генерує значну частку коштів з операційної діяльності

Формула:

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

Аналіз фінансової звітності в Python

Коефіцієнт операційного грошового потоку

  • Частка грошового потоку від операційної діяльності у поточних зобов'язаннях
  • Міра того, скільки разів компанія може погасити короткострокові зобов'язання за рахунок коштів з основної діяльності
  • Коефіцієнт понад одиницю означає, що бізнес генерує достатньо коштів, щоб покрити короткострокові зобов'язання

Формула:

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

Аналіз фінансової звітності в Python

Імпутація пропущених значень

  • «Польові» дані часто мають пропуски
  • Може бути чисельник для коефіцієнта, але бракувати знаменника, або навпаки
  • Рішення: імпутувати пропуски за даними інших компаній
Аналіз фінансової звітності в Python

Імпутація пропущених значень

  • У датафреймі dataset деякі значення «Total Current Liabilities» відсутні (NaN)

Зображення показує верхні рядки звіту про рух грошових коштів, де в колонці total liabilities є пропущені значення.

  • Пропущені поточні зобов'язання компанії можна імпутувати на основі її наявних значень
Аналіз фінансової звітності в Python

Імпутація пропущених значень

  • Заповнюємо пропуски середнім значенням для кожної компанії:
imputation = dataset.groupby("company")["Total Current Liabilities"].transform("mean")

dataset["Imputed Total Current Liabilities"] = dataset["Total Current Liabilities"].fillna(imputation)
  • Після імпутації dataset виглядає так:

Зображення показує верхні рядки звіту: в колонці total liabilities були пропуски; додано колонку imputed total current liabilities з імпутованими значеннями.

  • Щоб бути обережнішими, використовуйте перцентилі
Аналіз фінансової звітності в Python

Імпутація пропущених значень за перцентилями

  • Імпутація пропуску значенням 70-го перцентиля гірших наявних значень дає консервативнішу оцінку.

  • Обчислювати коефіцієнти з такою консервативною імпутацією доцільніше, якщо їх використовують для ухвалення рішень.

  • Імпутація за 70-м перцентилем у групах за 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)
Аналіз фінансової звітності в Python

Давайте потренуємось!

Аналіз фінансової звітності в Python

Preparing Video For Download...