キャッシュ・フロー計算書の財務比率

Pythonで学ぶ財務諸表分析

Rohan Chatterjee

Risk Modeler

JSONデータの読み込み

  • 現実のデータは必ずしもスプレッドシートではありません
  • JSON(JavaScript Object Notation)形式のこともあります
  • 企業は財務諸表データを JSON で共有する場合があります
  • pandas を使うと JSON をPythonに読み込めます
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で学ぶ財務諸表分析

営業キャッシュ・フロー比率

  • 営業活動によるキャッシュ・フローの流動負債に対する比率
  • 中核事業が生むキャッシュで短期債務を何回賄えるかの指標
  • 1超なら、短期債務を十分に賄える水準

式:

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

Pythonで学ぶ財務諸表分析

欠損値の補完

  • 現実のデータには欠損が多い
  • 分子はあっても分母が欠ける、またはその逆のことがある
  • 解決策:他社データで補完する
Pythonで学ぶ財務諸表分析

欠損値の補完

  • 表示の dataset DataFrame では、「流動負債合計」の一部が欠損し、NaN で示されています

この画像は、キャッシュ・フロー計算書の先頭行で、総負債列の一部に欠損値があることを示しています。

  • 企業ごとの非欠損値を用いて、その企業の欠損した流動負債を補完できます
Pythonで学ぶ財務諸表分析

欠損値の補完

  • 欠損は、企業ごとの非欠損値の平均で埋めます:
imputation = dataset.groupby("company")["Total Current Liabilities"].transform("mean")

dataset["Imputed Total Current Liabilities"] = dataset["Total Current Liabilities"].fillna(imputation)
  • 補完後の dataset は次のとおり:

この画像は、総負債列に欠損があり、別列「imputed total current liabilities」で補完された先頭行を示しています。

  • 保守的にするためパーセンタイルを用いる
Pythonで学ぶ財務諸表分析

パーセンタイルで補完する

  • 欠損を、その企業の非欠損値の70パーセンタイル(悪化側)で補完すると、より保守的になります。

  • 意思決定に使う比率なら、保守的な補完で計算する方が賢明な場合があります。

  • company でグループ化し、70パーセンタイルで補完:
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...