企業財務情報をインタラクティブに可視化する Part1
前回はXBRLからのデータ取得を行いました。今連載ではデータの可視化に挑戦します。可視化の手法を確立しておくことで、今後注記情報なども含めて構造化していこう・・・としている財務情報について、データを入れればサクッとみられるようにしておきたいと思います。
Part1では可視化手法とライブラリの選定を行います。
結論としては、以下で行います。
・ラインチャートとツリーマップの複合で可視化を行う。
・ライブラリはAltairを使用する。
結論に至った背景を、以下で紹介していきます。
財務情報の可視化方法
財務情報は以下のようなボックスで可視化されることが多いです。これは、会計上の表記(貸借対照表)をそのままトレースした可視化です。
ただ、個人的にこの図が見やすいと感じたことはないです。端的には玄人向けの可視化手法だと思います。
- 入り出、という関係(流れ)が一般的な左から右ではなく右から左
- 左右(借方/貸方)・上下(流動/固定)を解釈するのに事前知識が必要
- 数字の絶対的な大きさが表現されない(どの企業でもボックス全体の大きさが等しい)
- 形状の妥当性(自己資本比率など)を評価するのに事前知識だけでなく、比較対象(時系列や同業他社)が必要。
2と3を反映することで解釈性を向上させることはできます。Buffet Codeの表示例が以下になります。
ただ、数値の絶対値/形状の比率はいずれもラインチャートで表示できるので、その方が解釈性は高いと感じました。
1について、素直に上から下に流した図が以下になります(Sankey diagramという手法です)。これはかなり解釈性が高いと思います。
ただ、非定型の図なので表示領域をキープするのに難儀しそうです。
いいサンプルを見つけるのに結構苦労しました。売上や利益の単純なバーチャートやラインチャート、旧来のボックスなど・・・をかき分けて見つけたのが以下の可視化です。goinvoという会社がマサチューセッツ州 アーリントン町の予算可視化を請け負い作成したものです。
時系列変化はライン、構造はツリーマップで可視化しています。1つの図で変化と構造を表すのでなく、役割分担しています。またツリーマップはクリックすることでドリルダウンしていく形式をとっており、一度に全構造をさらしてしまうことによる複雑性の増大を防いでいます。
これは非常に納得感があったので、ありがたく参考にさせて頂くことにしました。
可視化ライブラリの選定
可視化の手法として複数チャートの複合を選択しました。そのため、複数の図を連動させることができるライブラリが必要です。端的に言えば、インタラクティブな可視化が可能なライブラリです。また、言語はPythonを想定します。
「Pythonでインタラクティブな図が描画できるライブラリ」は主に以下3つです。
この中で、2つのプロットを連動させることができそうなのはAltairとPlotlyでした(Bokehでもできるかもしれませんが)。
Altairはサンプルがあります。
Plotly(というかDash)もサンプルがあるのですが・・・
ちょっとやばい雰囲気だったのでAltairで行こうと思います。
Part2では、まずAltairの動作を確認してみようと思います。その後、実際のデータを入れていく予定です。