財務指標に対するバギングを用いた企業格付けの分析
2011SE024 後藤 謙治 2011SE078 井上 広大 2011SE208 岡 敬宏
指導教員: 河野 浩之
精度を有する．この再構築モデルに企業情報を当てはめる

はじめに1ことで，中小企業約 120 万社の予測倒産率が得られる．

本研究では，EDIUNET による企業の格付けを正しい出力データとして財務指標を用いて分析する．その中で，高2.2

財務データと財務指標

い精度でいかに間違いを少なくしつつ判別できるか，また企業は会計制度を持つことで，経営に関する情報を貨幣そこに費やす時間の短縮を目指す．そこで，Weka を用い単位で収集，要約，分析し，報告するための会計情報を整てデータベースに格納した上場企業約 2300 件の財務デー備することができる．このような会計情報は，複式簿記のタにバギングを利用し，EDIUNET の格付けの通り正しく原理に従って作成される財務諸表に要約される．財務諸判別し分析するシステムを実装する．本論文は全 5 章から 表は，貸借対照表，損益計算書，株主資本等変動計算書，構成され，2 章では，本研究に類似した先行研究の比較， キャッシュ・フロー計算書等から構成される．貸借対照表，財務データと財務指標について説明する．3 章では，問題 損益計算書，キャッシュ・フロー計算書は 4 半期ごとに作定義とそれに基づく提案内容，バギングの説明をする．4成され，これらは一般に主要財務 3 表と呼ばれる．本研究章では，PostgreSQL へのデータの格納，Weka による格

では，主要財務 3 表の主な財務データを扱う．

付けの分析手順と得られた結果，生成されたルールの検証

次に，財務指標とは財務諸表の数字をもとに割り出したについて説明する．5 章では，本研究のまとめを説明する． 比率のことである．有価証券報告書から会社の様子を知

データマイニングの手法と先行研究の比較

りたいとき，また数社と比較した時は，財務比率を算出し本章では，2.1 節で本研究に類似した先行研究，2.2 節で借対照表や損益計算書，キャッシュ・フロー計算書に記載

2

本研究で扱う財務データと財務指標について説明する．
先行研究の比較2.1

表 1 は，財務分析を決定木によって行う本研究と類似した先行研究の比較である．
表 1 先行研究比較

[4]

[5]

[8]

・企業の財務データを含むデータベースから学習した
決定木を利用し，信用リスクを定量化
・領域ルール，決定木・エラー率は 0.190
・企業情報から倒産モデルを再構築し，有効性を検証
・バギング学習，決定木，サンプリング
・Cap50 値は 70%
・個々の信用リスクの分析における決定木法の特徴・利点を研究し，実証分析を行う
・決定木，サンプリング
・予測精度 81.06%

表 1 の [5] は，企業情報ベンダーが提供する約 42 万件のてその数値を用いると非常に分かりやすい．財務比率と貸されている会計数値との大きな違いは，財務比率が規模の大小を問わず比較可能であるという点である．例えば，売上高や純資産，利益などは規模の大きい企業の方が規模の小さい企業よりも大きい方が一般的であるから，会計数値の大きさによって業績の良し悪しを測ろうとすると，規模の大きい企業という結果となる可能性が高い．これに対して，財務比率は割合を示すものであるから，規模の大きい企業の比率が大きいとは限らない．したがって，これらの財務比率は，企業の収益性や流動性，効率性などを測定するためには有効な手段であると考えられる．
財務データと財務指標の各項目の解説は [1][2][3][6] を参考にして説明する．

決定木を用いた財務分析の提案

3

本章では，3.1 節で問題提起と提案内容，3.2 節でバギングのアルゴリズムについて説明する．

3.1

先行研究での問題点をふまえた提案

予測倒産率から倒産モデルを再構築する研究である．企業

先行研究 [5] での問題点は，判別精度が Cap50 値で情報ベンダーの倒産モデルは未公開のため，モデルを再構築し，構造を推定することで中小企業の与信フレームを考70% とまずまずの値だが間違いが少なくないことである．
90% 以上が高精度モデルであるため，より精度を高める必える．再構築アプローチによるモデル開発は，企業情報ベ要がある．また格付けを正確に判断するためには景気や業ンダーから提供された倒産率を目的変数に，企業情報を説種を加味して判断することが必要だが，先行研究では省略明変数とし，モデル構造を推定する方法である．ターゲッ

されている．これを踏まえた上での改善点は，動作時間をトは予測倒産率 z% 以上を負事例，x% 未満を正事例にす短くしつつ，分析結果の精度向上をすることである．

る．再構築モデルを安定化するために，バギング学習によ財務分析を行う上で，間違った分類をいかに少なくする

り複数の決定木の平均値を予測倒産率とする．再構築モデ

かということが最も重要であり，企業の信用リスクを正確

ルは Cap50 値が 70% 前後であり，ビジネス利用に可能なに判断しなければならない．また，分析時間を短縮することで使いやすい分析ができるようにしていく．

表 2 実験で扱う財務データの一部

本研究では，EDIUNET の格付け分析のために多くの資本金1818854235664業種

情報通信市場

東184937

売上高

財務指標を説明変数とした決定木のアルゴリズムを使用す

当期純利益

る．また，決定木の精度向上を行うために，アンサンブル学習のバギングを利用する．
また，実験データのクレンジングを行い余分なデータを減らし，バギングで識別器 (決定木) の個数を適切に設定す

総資本ることで処理にかかる時間を短縮する．
また財務分析では業界や企業規模の違いによって，財務データのとる値が大きく変わるので，各業界ごとに分けて分析を行う．そうすることで信用の高い分析結果を得ると同時に，業種の違いによるルールの違いなどが検証できる．

4.2

PostgreSQL によるデータ格納

本研究では postgreSQL を用いて財務データの格納を行う．はじめに実験に用いるデータの入った EXCEL ファ

3.2

バギングの適用

イルを CSV 形式に変換し，コマンドを使ってテーブルに数回分析した結果を統合・組み合わせるものである．アルdata.csv のデータ約 2300 件を格納する．図 1 のようにテーブルを作り，そこの EXCEL の財務データをコピーす

ゴリズムは，まず「教師付き標本」をブートストラップでることで格納する．

bagging とは袋詰めの意味であり，異なるデータ群で複B 回抽出したデータを判別関数 (決定木) を利用すること
で B 個の弱学習器を作成する．次に B 個の学習器から最終的な 1 つの判別関数，判別器を決定する．その際，判別問題と回帰問題の 2 つの場合に分類手法が異なる．判別問
題の場合は各弱学習器に標本を入れて各サンプルについて多数決を用いて最も多いラベルを正しいラベルとする．回
帰問題の場合は，各学習器に標本を入れて各サンプルの出力された平均をとる．

4Weka を用いて財務分析を行う
本章では実際に Weka のアルゴリズムを用いて財務分析

図 1 PostgreSQL でのデータ格納を行った結果を示す．4.1 節で分析に用いるデータの紹介と実験環境，4.2 節で PostgreSQL へのデータの格納，4.3節では Weka による実験手順，4.4 節で Weka の実験結果，4.5 節で生成された決定木のルール検証を説明する．

次に，データベースと Weka を連携させるために JDBCを利用する．ダウンロードは (http://jdbc.postgresql.org/download.html) から行う．まず，Weka にデータベースを読み込ませる為，props ファイル内に JDBC URL
4.1 実験データとソフトウェアの実験環境を 記 述 す る ．Weka の フ ォ ル ダ 内 の weka.jar に デ ー タ
本研究で使用する財務データは財務分析.jp(http://wwベ ー ス 関 連 の 設 定 が 書 か れ た DatabaseUtils.props のw.financial-analysis.jp/) の財務諸表一覧 (貸借対照表， 雛 形 が 多 数 あ る の で ，そ れ を 利 用 す る ．DatabaseU損 益 計 算 書 ，キ ャ ッ シ ュ・フ ロ ー 計 算 書) か ら ダ ウ tils.props を用意し，C ドライブ直下におく．本研究ではン ロ ー ド す る ．ま た ，該 当 す る 企 業 の 格 付 け を EDI- データベースに対応する DatabaseUtils.props.postgresql
UNET(http://ediunet.jp/) から探して入力し，財務諸表 を 編 集 す る ．同 様 に し て ，weka.jar を 開 い て 中 ののデータが欠けていたり格付けのない企業に関しては分 weka/experiment/DatabaseUtils.props を編集する．
析が行えないので除外する．実験ではこの作業で揃った約最後に JAVA を動かすために，環境変数を入力する．
2300 件の企業の財務データを扱う．
Weka のエクスプローラーにある「DB を開く」から，URL
本来であれば複数の格付けを利用したデータにするべき と PostgreSQL のユーザー名とパスワードを入力したのちだが，それぞれの格付けに共通して対応する企業が少なく， 接続ボタンでデータベースと Weka を連携させる．
実験データが極端に減るため本実験では EDIUNET の格
4.3 Weka による実験手順
付けのみを正しい出力データとして使用する．
また，システムの実験環境は Windows8，Intel Core i3，JDBC によって Weka からデータベースを読み込むこと

メモリ 8GB である．表 2 は用いる財務データの一部をができたら，データベース内の財務データを用いて，クエ表す．

リーに図 2 の SELECT 文で各財務指標を求めるために必要な計算式を入力し財務指標の計算する．

時間が長くなるので本研究では 100 を上限とする．

4.4

Weka の実験結果

表 3 は業種ごとの J48 とバギングで出た ROC Area の分析結果である．件数はその業種の企業数，P は 1 つの識

図 2 Weka で財務指標を計算するコマンド

別器 (決定木) に含まれるデータの総データに対する割合，
I は識別器 (決定木) の個数，J48 と bagging はそれぞれのROC Area を表す．

また業種別に分析するために，１種類ずつ業種でデータ

表 3 決定木とバギングの業種別の ROC Areaを分けた上で Weka の分析を行う．本研究では EDIUNETの格付けに対して決定木やバギングのアルゴリズムを用いて，格付けに対する精度やルールを出す．また，バギングを用いる場合には，1 つの識別器 (決定木) に含まれるデータの総データに対する割合 P と，識別器 (決定木) の個数 Iを調整することでより高い ROC Area を求める．

ROC Area とは ROC 曲線の下の面積比率であり，分析精度を表す数値である．

業種
情報通信
小売
陸運業
サービス
その他製品
建築
食料品
卸売
金属
科学
不動産
機械
電子機器
平均

件数

1912274922178
13110120566
15563
171
189

P
8979
39419050
4181
11197939
80

I8771
9102982290
11108109bagging
0.703
0.645
0.655
0.627
0.67
0.679
0.68
0.623
0.566
0.6060.598
0.556
0.533
0.626

J48
0.603
0.533
0.63
0.527
0.562
0.568
0.545
0.531
0.457
0.468
0.589
0.536
0.522
0.544

業種別に財務指標によって分析した結果，決定木のアルゴリズム J48 で行った分析とバギングのアルゴリズムで
図 3 情報通信業における P の変化による ROC行った分析の実験結果には差が出た．情報通信の場合には，決定木のアルゴリズムに比べてバギングのアルゴリズ

図 3 は，情報通信業の企業における P の変化によって推移する ROC Area の値を示したグラフである．I は初期値の 10 のまま P を変化させることで，最も高い ROC Areaを示す P の値を求める．

ムの方が約 10%ROC Area の数値が大きい．つまりバギングを行ったことで，より精度の高い結果を得られた．
また，業種によって精度のバラつきが大きく，最大でROC Area70.3% という結果を出すものもあれば，ROCArea 約 50% のランダムで精度が良くないものも数業種ある．
先行研究はこの値が約 70% であるが，評点というものを分析に含めたときの精度である．評点とは，財務情報や会社情報から独自の基準で企業を評価したもので，説明力が強いので説明変数に含めるとモデル全体が引きずられる．
先行研究は評点を含めないと精度が 60% 以下のランダムモデルになっているため，評点を含まず行った本研究は業種によって精度の向上ができている．
なお，表 3 に載っていない業種は企業のデータ数が少な

図 4 情報通信業における I の変化による ROC

く，バギングを行うことが難しいため分析できなかった．
図 5 は，情報通信業の分析において，P を 89 に固定し，

図 4 は，情報通信業の企業における I の変化によって推で ROC Area が最も高くなった値に固定し，I を変化させI を増加させたときのグラフである．このグラフから I と分析時間は比例することが分かる．本研究では I の上限を100 にしたため，分析時間は平均で約 1 秒だった．この分最も高い ROC Area を求めた．I に上限はないが，あまり析時間はシステムを実務で扱う場合にも，滞りなく作業で大きな値にすると過学習によって精度が下がったり，分析きる時間である．

移する ROC Area の値を示したグラフである．P は図 3

良く，分類は正しい．資本金は大きいほど大企業で安定力があり，正しく格付けできている．この結果，情報通信業において生成された決定木のルールは信頼できると確認できた．また，他の業界においてもルールの信頼性が確認できた．
決定木のルールは業種ごとに大きく違うが，重要である
ことが多かいのは経常利益，市場，キャッシュ・フロー，
図 5 I の変化による分析時間の増加

固定負債，売上高経常利益率，売上高総利益率である．

54.5

生成された決定木のルール検証

今回分析した結果からできた決定木は，細かい分類まで入れるとかなり複雑なものになってしまうため，minNu-mObj(葉節点に含まれる最小データ数) の項目を大きめに設定する．情報通信業ではこの値は 20 である．
図 6 は情報通信業の企業を J48 のアルゴリズムで分析し，生成した決定木である．

まとめ
本研究では，企業の財務データから財務指標を求め，Weka によって EDIUNET の格付け精度分析を行った．
分析には Weka におけるバギングのアルゴリズムを用いることで ROC Area やルールを求め，格付けの信頼性やルールを検証した．そして，JDBC を用いることで，PostgreSQL に格納されたデータを Weka から読み込むことができるように連携させた．
その結果，業種によっては ROC Area が最大 70.3% という値を出すことができ，先行研究に比べて 0.3% 精度が向上した．また，Weka でのバギングの分析時間は約 1 秒であり，システムを実務で扱う場合にも滞りなく作業できる時間である．そして，生成された決定木のルールは，財務的な面から見てもおおよそ正しいルールを得ることができた．

参考文献[1] 船橋健二, 辻達博, 藤井邦明, 長谷川和彦, 図解 中小企業の経営分析, 税務経理協会, pp.26-71, 2005.
[2] 飯田信夫, 21 世紀のスタンダードがわかる 35 の財務指標, 中央経済社, pp.22-191, 1999.
[3] 倉田 三郎, 藤永 弘, 石崎 忠司, 坂下 紀彦,
分析, 同文舘出版, pp.1-68, 2008.

図 6 J48 のアルゴリズムで生成した決定木[4] 森本康彦, 福田剛志, 松澤裕史, 領域分割決定木を利用した信用リスク管理, 電子情報通信学会研究報告,
データ工学, Vol.93, pp.1-8, 1998.
[5] 小野潔,

この決定木が本当に正しいルールを示しているのかを検証する．はじめに経常利益で分かれており，企業の利益が高いほど格付けが良くなるのは正しい．次に流動負債合計によって分かれるが，負債の合計が大きいほど格付けが良くなっている．本来なら負債が少ないほうが企業のリスクが少なく格付けは高くなるはずだが，企業データが大企業ばかりになったための判別だと考えられる．企業の規模に応じて負債の額も大きいため，負債が大きいほど大企業で安定性があると判別する可能性がある．売上高総利益率は高いほど良く，情報通信業の平均は約 40% である．判別では約 2% とかなり低い値にはなっているが高いほど格付けが良くなっている．投資キャッシュ・フローのマイナス値は小さいほど良く，格付けが正しくできている．固定比率は，株主資本に対する負債の割合なので値が小さいほど

入門 経営

データマイニングを用いた中小企業の信用リスクの推定モデル,

社団法人日本オペレーションズ・リサーチ学会シンポジウム, Vol.55, pp.13-22, 2006.

[6] 斎藤 孝一,

ケースで学ぶ財務諸表分析 -基本戦略と財務指標の関係-,

同文館出版, pp.1-78, 2013.

[7] 株式会社 ALBERT 巣山剛, データ分析部, システム開発・コンサルティング部, データ集計・分析のためのSQL 入門, 株式会社マイナビ, pp.56-82, 2014.
[8] Yu Yanping, Qian Zhengming, Yang Min, Guan Rui,Fang Liting, Guo Penghui, Research on the Application of Decision Tree to the Analysis of IndividualCresit Risk. International Conference on Information Engineering Lecture Notes in Information Technology, Vol.25, pp.209-214, 2012.