Pythonで、EDINETで公開されている財務書類から、不正会計の兆候を検出プログラムを作成しました(非公開)。
精度が良く、金融庁で公表されている不正会計で課徴金の処分を受けた企業の財務諸表をEDINETからダウンロードして分析してみると、確かに多くの場合に当てはまるので、そこそこ使えるのではないかと期待しています。
「多くの場合に当てはまる」と書きましたが、残念ながら当てはまらない場合もあります。あくまで「不正会計の兆候あり」であって、不正をしているとまでは断定はできません。実際に不正をしているかどうかは詳細に分析してみないとわかりません。健康診断と同じです。
このようなシステムでは、必ず以下のパターンが現れます。
不正会計の兆候あり | 不正会計の兆候なし | |
不正会計をしている | パターン1 | パターン2 |
不正会計をしていない | パターン3 | パターン4 |
理想は、パターン1とパターン4しか出てこないシステムです。しかし実際には、パターン2とパターン3も紛れ込みます。パターン2が偽陰性、パターン3が偽陽性と呼ばれるものです。
これは病気の診断と似ています。癌と診断されたが実際は癌ではなかった、というのが偽陽性。反対に癌と診断されなかったが実際は癌だったというのが偽陰性。
どちらがより深刻かというと、当然偽陰性の方です。偽陽性の場合は、精密検査をした結果、シロだと判明するので、結果的には問題がありません。それに対して、偽陰性の場合は、実際には深刻な問題があるのにそれを見逃してしまうのですから、重大です。
しかし、一般的な異常検出システムは、偽陰性には無力です。今回作成したシステムも、基本的にはパターン1とパターン3しか出てきません。パターン4は問題なしなので無視していいので、あとはいかにパターン2を見逃さないかの注力する必要があります。これが今後の課題です。