Pythonによる財務分析④ -バフェットコードを用いて完全レクチャー! (全8回)



Python初心者
Python初心者
データを財務指標に加工したいけど、どの指標にどうやって加工すればいいんだろう。。。

本記事では、バフェット・コードのAPIを使い「数百数千の財務データを取得し、集めたデータを加工する」という流れをサンプルコードとともに解説をします!

(記事にでてくるコードは配布しております。まとめにあるリンクからダウンロードください。)

本記事は、全8回に渡って掲載される「Pythonによる財務分析バフェットコードを用いて完全レクチャー!」シリーズの第4回です!

このシリーズを読むとわかること
Python初心者でも、数百数千の企業の財務データを分析出来るようになる!

最終的に重回帰分析といった機械学習的手法もマスターできる!

 

今回は、第3回バフェットコード様のAPIからcsv形式に保存した企業の財務データを読み込みます。

そして、読み込んだデータを12指標の財務指標とキャピタルゲイン(株式で売買した差益)に加工する流れをレクチャーしていきます!

また、全12指標の財務指標は、上原聡さまのブログ『せみりた日記』より、EXCEL財務分析ツールを参考にして加工します。

具体的には、ROEや売上高成長率、自己資本比率といった指標に加工をしていきます。   

この操作を学ぶことで、「データを分析する」ときの重要なデータ群を作成し、最終的に重回帰分析ができるようになります!

それでは一緒に学んでいきましょう!

「データをcsv形式で保存する」の流れを学べる第3回はコチラ!

街並み

Pythonによる財務分析③ -バフェットコードを用いて完全レクチャー! (全8回)

 

バフェットコードのAPIから保存したデータを読み込もう

グラフ モニター

3回にて保存したcsvデータを読み込み、3種類の財務データを表示させます。

3種類のデータとは、

  1. df_qフォルダにある「四半期の財務数値」
  2. df_dayフォルダにある「日別の株価指標」
  3. df_cフォルダにある「現在の株価指標」

のことです。

why
ここでいう日別の株価指標に関しては「過去1年間の日々の株価指標を四半期ごとに平均化させたもの」としているよ。

4回のファイルを新規作成する

まずは、第4回のファイルを新規作成します!

ディレクトリ

ファイル作成ができましたら、第4回のファイルにコードを書いていきます!

サンプルコードをLINE@にて配布していますので、そこから第4回のファイルをダウンロードするでも大丈夫です。

メッセージにて、「財務分析」とお送りいただければダウンロードができます。

友だち追加

 

pd.read_csvをもちいて保存したデータを読み込む

次に、pd.read_csvをもちいて前回保存したデータを読み込みます。

前回保存したデータとは、第3回にてバフェットコード様のAPIからcsv形式に保存した企業の財務データのことです。

この操作を行うことで、前回保存したものを表示させ、財務指標に加工することができるようになります!

下記のようなコードを書き、3つフォルダにある企業のデータを取り出します。

ここでは、フォルダにcsv形式で保存している一社のデータを読み込ませます。

仮に複数社を読み込ませると、このあと財務指標に加工するときに全ての企業を読み込ませ、計算途中でエラーがどこかで出てしまった際、エラーを特定することが非常に困難になるためです。

一つ企業を使い、計算式のフォーマットができたら、for文で保存している全企業のデータを加工させる流れになります。

python コード

今回は、銘柄コード『1400』の財務データを読み込みました。

実際に読み込まれたか確認をしましょう。

python 出力結果

変数df_qを出力すると、前回取得した『四半期の財務数値』が読み込まれたことがわかります。



Pythonによる財務分析」で使いたい財務指標に加工しよう!

データを読み込ませたところで、財務分析で必要な財務指標に加工していきましょう!

加工に入る前に、「財務指標の簡単なおさらい」と12指標の引用元のサイトの紹介」をします。

why
ただ闇雲に加工するのではなく、財務指標について理解してからの方が学習効率が高いからね!

 それでは順番にみていきましょう!

財務指標の簡単なおさらい

財務指標とは企業を評価する際、決算短信や有価証券報告書といった財務データをもちいて分析するときに便利なツールのことです。

具体的には、株主が拠出した資本に対してどれだけの利益を生み出したのかを示す「ROE」といった指標が挙げられます。

ここで注意したいのが、財務指標やその大枠の財務分析は、企業評価のうちの一つの分析に過ぎないということです。

他にも定性的な分析である、事業分析や経営戦略分析など様々な分析を行う必要が考えられます。

しかしながら、今回は「Pythonによる財務分析」ですので、定性的な分析はせずあくまでも会計数値のみを用いて企業の予測を行います!

今回つかう12指標の引用元のサイトの紹介

今回、12指標を作成するにあたり、上原聡さまのブログ『せみりた日記』より、EXCEL財務分析ツールの「財務分析スコア」で用いられている12指標を使用しました。

理由としては、12指標が収益性や成長性など様々な観点で均等に分かれており、分析対象としてバランスが非常に良いためです。

他方、無料で分析ツールがダウンロードできるため、excelでの操作とPythonでの操作感の比較も楽しんで頂ければと考えています!



Pythonによる財務分析」で必要な、成長性指標に加工しよう

成長性指標は、企業が過去からどの程度成長したか明らかにする指標です

成長性指標が良い場合、今後も企業が成長し株価や時価総額が上がることが想定されるため、投資家にとって非常に重要な指標となります。

今回は、そんな成長性指標の中でも「売上成長率」と「営業利益成長率」に加工します。

売上成長率

売上高成長率とは、会社の売上がどの程度成長したかを示す指標です。

why
今回は加工の方法を説明するため、各財務指標の詳しい説明は割愛するよ!

計算式は以下のようになります。

売上成長率 式

出典:「商道」様

計算式をもとに作成しましょう!

今回の成長性指標の作成方法は、Pythonによる財務分析①の「Pythonで財務データを加工しよう!」以降にも書かれていますので参考にしてください!

下記のコードのコードを書き、各四半期の成長率を作成します!

今回は、成長性指標を2つ作成するため、同じコードを書くことを避けるべく各四半期の成長率を求める流れを関数化させています!

python コード

その後、加重平均(四半期ごとに重みを加え平均)を行い、四半期ごとの指標の数値を一つにまとめます。

本記事では、より現在の業績を重視するため、時系列の移り変わりに重みをつけることが出来る加重平均をとっています。

もし、単純平均など別の計算方法で求めたい場合は、書き換えるようお願いします。

また、今回は企業ごとに決算データの欠損があるなどの関係で、四半期ごとに数百数千の財務データをひとつひとつ見比べることが不可能と判断したため、加重平均を行い四半期ごとの指標の数値を一つにまとめ算出しています。

今回も、同じコードを書くことを避けるべく、加重平均を行い算出する流れを関数化します。

python コード

加重平均をした上で、『売上成長率』を算出できました!

営業利益成長率

営業利益とは、企業が本業で稼いだ利益で、営業利益の前期に対する伸び率を示す指標です。

計算式は以下のようになります。

 

営業利益成長率 式

売上成長率で作成した関数をもとに、加重平均を算出します。

python コード

加重平均した上で、営業利益成長率を算出できました!

 

Pythonによる財務分析」で必要な、収益性指標に加工しよう

収益性指標は企業が事業活動からどれくらい稼いでいるかを分析する指標です。

収益性指標が良い場合、

こちらも同様に株価や時価総額を上げる可能性が高まります。

特に「ROE」といった指標は株価に密接に関係しており、「ROE」を上昇させると企業価値を上昇させることができます。

そのため、こちらも投資家にとって非常に重要な指標となります。

今回は、そんな収益性指標の中でも「ROE」と「売上高営業利益率」に加工します。

ROE(自己資本利益率)

ROEとは、投下した自己資本に対して企業がどれだけの利潤を上げられるのかを示す指標です。

こちらは、バフェットコード様のAPIより既にROEが加工済みのため、計算式を省きます。

それでは早速加重平均を求めていきましょう!

python コード

加重平均を求めるとnan(欠損値)と返されました。

確認のため、元のデータも見ましたがこちらも全てnanと表示されています。

こちらは正常な動きをしており、この企業においてはROEを算出できないということがわかります。

このように、企業によって財務データの一部が欠損している場合もあるため注意しましょう。

売上高営業利益率

売上高利益率とは、企業の売上高に対し、営業利益がしめる割合を示す指標です。

こちらも、バフェットコード様のAPIより既にROEが加工済みのため、計算式を省きます。

それでは早速加重平均を求めていきましょう!

python コード

こちらも、加重平均を求めるとnan(欠損値)と返されました。

確認のため、元のデータも見ましたが今回は1つだけnanと表示されています。

この場合、残りのデータもnanとするのは惜しいので、加重平均を行う前にnanを除去し残りのデータのみを使うようにします。

下記のように加重平均の関数を書き換えます。

これにより、欠損値のデータを全て除去することが出来ます。

一方、先ほどのROEのような全て欠損値の場合データがなくなってしまいエラーが出てしまいます。

そのため、全て欠損値だった場合に欠損値を返すようにします。

python コード

その後、売上高営業利益率を再度算出していきます。

python コード



Pythonによる財務分析」で必要な、労働生産性指標に加工しよう

労働生産性指標とは、「労働者1人あたりが生み出す成果」を表す指標です。

この指標は、企業評価の分析指標としてはかなりマイナーです。

しかし、近年働き方改革が叫ばれ人的資源が意識されるようになり、徐々に投資家にも重視されつつある指標かと思います。

今回は、そんな労働生産性指標の中でも「1人当たり売上高」と「1人当たり営業CF」に加工します。

1人当たり売上高

1人当たり売上高とは、企業の従業員が1人当りどれだけ売上高を生み出したのかを示す指標です。

今回も、バフェットコード様のAPIより既に1人当たり売上高が加工済みのため、計算式を省きます。

python コード

1人当たり営業CF

1人当たり営業CFとは、企業の従業員が1人当りどれだけ営業CFを生み出したのかを示す指標です。

今回も、バフェットコード様のAPIより既に1人当たり営業CFが加工済みのため、計算式を省きます。

python コード

Pythonによる財務分析」で必要な、効率性指標に加工しよう

効率性指標とは、資産をどの程度効率的に活用しているのかを分析する指標です。

こちらの指標は、企業のトレンドを確認したり、同業他社との比較を行うことに主に利用されます。

今回は、そんな効率性指標の中でも「総資産回転率」と「CCC」に加工します。

総資産回転率

総資産回転率は、資産を効率的に売上に結びついているかを示す指標です。

今回も、バフェットコード様のAPIより既に総資産回転率が加工済みのため、計算式を省きます。

python コード

CCC(キャッシュコンバージョンサイクル)

CCCは、仕入れ代金を払ってから売上を現金で回収するまでの期間を示す指標です。

計算式は以下のようになります。

CCC 式

計算式をもとに、CCCの加重平均を算出します。

python コード

 

Pythonによる財務分析」で必要な、安全性指標に加工しよう

安全性指標は企業が倒産する可能性を判断する指標です。

企業が倒産した場合、株式の価値が大幅に低下するがゼロになるため、こちらも投資家にとって重要な指標となります。

今回は、そんな収益性指標の中でも「ROE」と「売上高営業利益率」に加工します。

自己資本比率

自己資本比率とは、総資産に対する自己資本の割合を示す指標です。

今回も、バフェットコード様のAPIより既に自己資本比率が加工済みのため、計算式を省きます。

python コード

ネットD/Eレシオ

ネットD/Eレシオ(英語:Net Debt Equity Ratio)とは、純有利子負債(Net Debt)を

Equity)で割って算出される、企業の財務の健全性をはかるための指標です。

計算式は以下のようになります。

ネットDレシオ 式

計算式をもとに、ネットD/Eレシオの加重平均を算出します。

python コード

 

Pythonによる財務分析」で必要な、株主還元性指標に加工しよう

株主還元性指標は、株式会社がその事業活動によって獲得した利益株主還元しているかを示す指標です。

株主に対して積極的に利益を還元している企業は、投資家からも評価されることが多く人気があります。

一方で、株主還元を行うことは資本を減らすことにもなるため注意が必要です。

今回は、そんな株主還元性指標の中でも「配当性向」と「DOE」に加工します。

配当性向

配当性向とは、企業の純利益から配当金へ回している割合を数値にした指標です。

計算式をもとに、配当性向の加重平均を算出します。

配当性向 式

計算式をもとに、配当性向の加重平均を算出します。

python コード

実行させると配当性向がnanでした。

DOE

DOEとは株主資本に対して、株式会社(企業)がどの程度の利益配分を行っているかを示す指標です。

今回も、バフェットコード様のAPIより既にDOEが加工済みのため、計算式を省きます。

python コード

実行させるとDOEnanでした。

「Pythonによる財務分析」で必要な、キャピタルゲインに加工しよう

最後に株価をキャピタルゲインに加工します。

キャピタルゲインとは株式や債券など、保有している資産を売却することによって得られる売買差益のことです。

本シリーズで最終的に行う重回帰分析では、こちらのキャピタルゲインの予測を行います。

今回のキャピタルゲインの計算式は以下になります。

why
本来は、売買のタイミングは株主により異なるよ。

キャピタルゲイン 式

今回、現在の株価を重要視するために、「日別の株価指標」と「現在の株価指標」を結合し、結合したデータで加重平均をとります。

その際、現在の株価が欠損である可能性を考慮し、エラーを出さないためにif文を作成しています。

python コード

まとめ

4回では、Pythonで本格的な財務析を行うための、12指標の財務指標とキャピタルゲイン(株式で売買した差益)に加工するといったことをレクチャーしてきました!

この記事で「データを分析する」ときの重要なデータ群を作成し、重回帰分析への道のりを一歩すすめることができました。

次回の第5回では、「加工したデータを確認しクレンジングを行う」流れに入っていきます。

実は、全企業の財務データをある方法で確認すると、欠損値(nan)や無限(inf)、が発見されます。

このままでは分析結果に影響を及ぼすため、クレンジングを行います!

 

記事にでてくるコードはLINE@にて配布をしております!
ラインのメッセージ欄に「財務分析」とお送りいただければ、ダウンロードリンクを送付いたします!

 

コード配布はLINE@にて!!
  友だち追加

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA