Wskaźniki finansowe z rachunku przepływów pieniężnych

Analiza sprawozdań finansowych w Pythonie

Rohan Chatterjee

Risk Modeler

Wczytywanie danych JSON

  • Dane z rzeczywistości nie zawsze mają postać arkuszy kalkulacyjnych
  • Czasem są dostępne w formacie JSON („JavaScript Object Notation")
  • Spółki mogą udostępniać dane finansowe w formacie JSON
  • Pliki JSON można wczytać do Pythona za pomocą pandas
cash_flow = pd.read_json("cash_flow_statement.json")
print(cash_flow.head())

Obraz przedstawia 5 pierwszych wierszy wczytanych danych rachunku przepływów pieniężnych.

Analiza sprawozdań finansowych w Pythonie

Wskaźnik przepływów pieniężnych do zysku netto

  • Udział przepływów pieniężnych z działalności operacyjnej w zysku netto

  • Działalność operacyjna stanowi podstawową działalność przedsiębiorstwa

  • Wysoki wskaźnik oznacza, że znaczna część gotówki pochodzi z działalności operacyjnej

Wzór:

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

Analiza sprawozdań finansowych w Pythonie

Wskaźnik operacyjnych przepływów pieniężnych

  • Udział przepływów pieniężnych z działalności operacyjnej w zobowiązaniach bieżących
  • Miara zdolności do spłaty zobowiązań krótkoterminowych z gotówki generowanej przez podstawową działalność
  • Wskaźnik powyżej jedności oznacza, że spółka generuje wystarczającą gotówkę na pokrycie zobowiązań krótkoterminowych

Wzór:

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

Analiza sprawozdań finansowych w Pythonie

Uzupełnianie brakujących wartości

  • Dane rzeczywiste często zawierają brakujące wartości
  • Licznik wskaźnika może być dostępny, ale mianownik może być brakujący – i odwrotnie
  • Rozwiązanie: uzupełnienie brakujących danych na podstawie danych innych spółek
Analiza sprawozdań finansowych w Pythonie

Uzupełnianie brakujących wartości

  • W DataFrame o nazwie dataset niektóre wartości „Total Current Liabilities" są brakujące – oznaczone jako NaN

Obraz przedstawia pierwsze wiersze rachunku przepływów pieniężnych, gdzie w kolumnie zobowiązań bieżących widoczne są brakujące wartości.

  • Brakujące zobowiązania bieżące można uzupełnić na podstawie dostępnych wartości dla danej spółki
Analiza sprawozdań finansowych w Pythonie

Uzupełnianie brakujących wartości

  • Brakujące wartości uzupełniamy średnią z dostępnych wartości dla danej spółki:
imputation = dataset.groupby("company")["Total Current Liabilities"].transform("mean")

dataset["Imputed Total Current Liabilities"] = dataset["Total Current Liabilities"].fillna(imputation)
  • Po uzupełnieniu dataset wygląda następująco:

Obraz przedstawia pierwsze wiersze rachunku przepływów pieniężnych z brakującymi wartościami w kolumnie zobowiązań bieżących oraz dodatkową kolumną z uzupełnionymi wartościami.

  • Aby być zachowawczym, można użyć percentyli
Analiza sprawozdań finansowych w Pythonie

Uzupełnianie brakujących wartości percentylami

  • Uzupełnienie brakującej wartości 70. percentylem najgorszych wartości dostępnych daje bardziej zachowawczy wynik.

  • Obliczanie wskaźników na podstawie zachowawczego uzupełnienia może być bardziej ostrożne przy podejmowaniu decyzji.

  • Uzupełnianie brakujących wartości 70. percentylem, grupując po 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)
Analiza sprawozdań finansowych w Pythonie

Czas na ćwiczenia!

Analiza sprawozdań finansowych w Pythonie

Preparing Video For Download...