4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

TISさんが作成した企業分析用データセット「CoARiJ」で遊んでみる②

Last updated at Posted at 2019-12-08

目的

  • 「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(月間相場表(内国株式)より)
  • 一覧は次の通り

image.png

  • 非財務データ
    • 年次報告書(EDINETより。XBRL file形式)
      • 上記を項目別にパースしたファイル(txt形式)
    • CSRレポート(pdf形式)
      • txt形式での提供はない
  • EDINETより取得した書類の種類は次の通り(FY2018年)

image.png

解析上の留意点

重複データあり

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(自己資本利益率)

スクリーンショット 2019-12-08 12.22.38.png
  • 「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さんに限って間違えはないと思うんだけどな。。。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?