目的
- 「CoARiJ」を用いて、(非)財務分析をする
- 経年での業績・ESG書きっぷり変化
- 伊藤レポートの検証
- 業績との相関というよりESG投資の実際
「CoARiJ」については下記参照
https://www.tis.co.jp/news/2019/tis_news/20191114_1.html
https://github.com/chakki-works/CoARiJ/blob/master/README.md
前回
やること
- データセットの確認
まとめ
- 財務データに間違いあり?解析するときはお気をつけください!!
データ
「CoARiJ」が提供するデータは次の通り
- 財務データ
- financial data(決算短信情報より)
- 誤りあり?
- stock data(月間相場表(内国株式)より)
- financial data(決算短信情報より)
- 一覧は次の通り
- 非財務データ
- 年次報告書(EDINETより。XBRL file形式)
- 上記を項目別にパースしたファイル(txt形式)
- CSRレポート(pdf形式)
- txt形式での提供はない
- 年次報告書(EDINETより。XBRL file形式)
- EDINETより取得した書類の種類は次の通り(FY2018年)
解析上の留意点
重複データあり
df_14 = pd.read_csv('../data/finance_reports/2014/2014/documents.csv', sep='\t')
dup_name = df_14[df_14.duplicated()].iloc[0]['filer_name']
df_14[df_14['filer_name'] == dup_name]
edinet_code sec_code jcn filer_name fiscal_year fiscal_period submit_date period_start period_end doc_id ... operating_income_on_sales ordinary_income_on_sales capital_ratio dividend_payout_ratio doe open high low close average
55 E00091 19710 2010001034861 中央ビルト工業株式会社 2014 FY 2015-06-24 2014-04-01 2015-03-31 S10053TB ... 7.78 7.41 31.99 14.01 1.69 139.0 208.0 108.0 118.0 139.25
56 E00091 19710 2010001034861 中央ビルト工業株式会社 2014 FY 2015-06-24 2014-04-01 2015-03-31 S10053TB ... 7.78 7.41 31.99 14.01 1.69 139.0 208.0 108.0 118.0 139.25
Edinet codeの揺れあり
df_14 = pd.read_csv('../data/finance_reports/2014/2014/documents.csv', sep='\t')
df_14 = df_14.groupby('edinet_code').max().reset_index()
df_14_part = df_14[['filer_name', 'fiscal_year', 'roa']]
dup_name = df_14_part[df_14_part['filer_name'].duplicated()].iloc[0]['filer_name']
df_14[df_14_part['filer_name'] == dup_name][['edinet_code', 'sec_code', 'jcn', 'filer_name', 'fiscal_year', 'fiscal_period', 'submit_date']]
edinet_code sec_code jcn filer_name fiscal_year fiscal_period submit_date
245 E00484 28140 5180001075845 佐藤食品工業株式会社 2014 FY 2015-06-26
263 E00510 29230 8110001002068 佐藤食品工業株式会社 2014 FY 2015-07-24
ROEマイナス企業なし(ミス?)
df_14 = pd.read_csv('../data/finance_reports/2014/2014/documents.csv', sep='\t')
df_14 = df_14.groupby('edinet_code').max().reset_index()
df_15 = pd.read_csv('../data/finance_reports/2015/2015/documents.csv', sep='\t')
df_15 = df_15.groupby('edinet_code').max().reset_index()
df_16 = pd.read_csv('../data/finance_reports/2016/2016/documents.csv', sep='\t')
df_16 = df_16.groupby('edinet_code').max().reset_index()
df_17 = pd.read_csv('../data/finance_reports/2017/2017/documents.csv', sep='\t')
df_17 = df_17.groupby('edinet_code').max().reset_index()
df_18 = pd.read_csv('../data/finance_reports/2018/2018/documents.csv', sep='\t')
df_18 = df_18.groupby('edinet_code').max().reset_index()
df = pd.concat([df_14, df_15, df_16, df_17, df_18])
df = df[~df.duplicated()]
df[df['filer_name'].isin(['佐藤食品工業株式会社', '株式会社アルファ', '株式会社フジコー'])]
print(len(df[df['roe'] < 0]))
>>> 0
0って。。。
正データとの突き合わせ
ジャパンディスプレイのROE(自己資本利益率)
- [有価証券報告書-第16期(平成29年4月1日-平成30年3月31日)]
(https://disclosure.edinet-fsa.go.jp/E01EW/download?uji.verb=W0EZA104CXP001003Action&uji.bean=ee.bean.parent.EECommonSearchBean&PID=W1E63011&SESSIONKEY=1575770510504&lgKbn=2&pkbn=0&skbn=1&dskb=&askb=&dflg=0&iflg=&preId=1&mul=ジャパンディスプレイ&fls=on&cal=2&yer=2018&mon=&pfs=5&row=100&idx=0&str=&kbn=1&flg=&syoruiKanriNo=&s=S100D87L)
- 「CoARiJ」の値
df[df['edinet_code'] == 'E30481'][['edinet_code', 'filer_name', 'fiscal_year', 'roe']]
edinet_code filer_name fiscal_year roe
3160 E30481 株式会社ジャパンディスプレイ 2014 4.13
3196 E30481 株式会社ジャパンディスプレイ 2015 2.92
3270 E30481 株式会社ジャパンディスプレイ 2016 10.64
2884 E30481 株式会社ジャパンディスプレイ 2018 734.39
- ROE全部+になっているし、そもそもFY2017のデータがない。
- 連結か単体でも値が変わってくるのかな?
- だとしてもROEマイナス企業が一つもないのはおかしい。
今後
-
データの精度がイマイチなので今のところこれ以上の分析は実施しない予定
-
CSRレポートがpdf形式なので解析に使うには数ステップかかる
-
ファイル名にedinetコードが記載されているのは有難い(これがあれば、他の情報とも紐付け楽だし)。
-
CSRレポートの色使いとか、写真数、文字数とかそこら辺から情報を抽出してみようかなと思ったが、GCPとかだといくらかかるんだろう。
-
いずれにせよ、対応させるべき業績データが合ってるかどうかわからないから一旦解析は止めとこう。
-
解析に間違いがあったら教えてください。
-
TISさんに限って間違えはないと思うんだけどな。。。