Índices financeiros do fluxo de caixa

Análise de Demonstrativos Financeiros em Python

Rohan Chatterjee

Risk Modeler

Lendo dados em JSON

  • Dados "no mundo real" nem sempre vêm em planilhas
  • Às vezes vêm no formato JSON ("JavaScript Object Notation")
  • Empresas podem compartilhar demonstrações financeiras em JSON
  • Podemos ler arquivos JSON no Python usando pandas
cash_flow = pd.read_json("cash_flow_statement.json")
print(cash_flow.head())

Esta imagem mostra as 5 primeiras linhas dos dados do fluxo de caixa carregados.

Análise de Demonstrativos Financeiros em Python

Razão fluxo de caixa / lucro líquido

  • Proporção do fluxo de caixa das atividades operacionais para o lucro líquido

  • Atividades operacionais são as atividades centrais do negócio

  • Razão alta indica que o negócio gera boa parte do caixa com atividades operacionais

Fórmula:

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

Análise de Demonstrativos Financeiros em Python

Razão de fluxo de caixa operacional

  • Proporção do fluxo de caixa das atividades operacionais para passivos circulantes
  • Mede quantas vezes a empresa pode quitar obrigações de curto prazo com o caixa gerado pelo core do negócio
  • Razão acima de 1 indica caixa mais que suficiente para cobrir obrigações de curto prazo

Fórmula:

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

Análise de Demonstrativos Financeiros em Python

Imputando valores ausentes

  • Dados "no mundo real" frequentemente têm valores ausentes
  • Pode haver dados do numerador de uma razão, mas faltar o denominador, ou vice-versa
  • Solução: imputar valores ausentes usando dados de outras empresas
Análise de Demonstrativos Financeiros em Python

Imputando valores ausentes

  • No DataFrame chamado dataset mostrado, algumas entradas de "Total Current Liabilities" estão ausentes, indicadas por NaN

Esta imagem mostra as linhas superiores de um fluxo de caixa em que algumas entradas na coluna total liabilities têm valores ausentes.

  • Passivos circulantes ausentes de uma empresa podem ser imputados usando valores não ausentes dessa empresa
Análise de Demonstrativos Financeiros em Python

Imputando valores ausentes

  • Preenchemos valores ausentes com a média dos valores não ausentes por empresa:
imputation = dataset.groupby("company")["Total Current Liabilities"].transform("mean")

dataset["Imputed Total Current Liabilities"] = dataset["Total Current Liabilities"].fillna(imputation)
  • Após a imputação, dataset fica assim:

Esta imagem mostra as linhas superiores de um fluxo de caixa onde algumas entradas na coluna total liabilities têm valores ausentes. Há outra coluna chamada imputed total current liabilities com os valores imputados.

  • Use percentis para ser conservador
Análise de Demonstrativos Financeiros em Python

Imputando com percentis

  • Imputar um valor ausente com o 70º percentil (pior valor não ausente) é mais conservador.

  • Calcular razões com essa imputação conservadora pode ser mais prudente quando a razão orienta decisões.

  • Imputando com o 70º percentil, por 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)
Análise de Demonstrativos Financeiros em Python

Vamos praticar!

Análise de Demonstrativos Financeiros em Python

Preparing Video For Download...