厚生労働省のオープンデータ(労働災害-死亡災害)のスクレイピング、前処理、Shinyアプリ化に関するGihubレポジトリです。
このレポジトリで作成したウェブアプリは、https://factory-health.shinyapps.io/sibou-saigai/です。
厚生労働省の公開データとして、労働災害の死亡災害のデータは職場のあんぜんサイトで公開されています。しかし、公開されているファイルは、
- エクセルファイルであり開くために特定のソフトウェアに依存している
- 複数年度のデータの結合が難しい
- 2行に渡った列名
- 列名内の一部にルの結合が行われている
- 表記ゆれがある
- 入力ミスと思われる各種コード
- 提供されているマスターデータ(職場のあんぜんサイトでWordファイルで提供)を利用しても
- コードと名前が一致しない(一つのコードに保健衛生、保健・衛生、保健衛生業など微妙に違うバリエーションが存在する)
- コードに表記ゆれが存在する(1と01の混在など)
- マスターがない列で年度毎に微妙に記載されている範囲が違う
- 発生時間が0~1、1~2などの1刻みの年度と、0~2、2~4などの2刻みの年度の混在
- 事業場規模が、0~9としてある年度と、0と1~9と分かれている年度の混在
- 事業場規模が300~としかかかれておらず、他の、300~499、500~・・・と細かく分かれている年度と結合しようとするとうまくいかない
等、多数の課題があり、分析や利活用するための形とするには一定程度のデータ加工(前処理)のスキルが必要です。
先行研究1では、上記の問題の一部について解決されて、より機械判読に適した形のCSVファイルが成果物として労働安全衛生総合研究所のウェブサイトに公開されていますが、
- CSVファイルが年度毎に分かれている
- 平成3年から30年のデータまでしか公開されていない(2023年時点では令和3年度まで職場のあんぜんサイトで公開されている)
- 結合した場合に範囲などの整合性がとれない問題は対応されていない(一部、300~を300~499と置き換えているなど正確でない可能性のあるデータが含まれている)
- 具体的にどのような手順でデータが加工されたかの情報が公開されていない
などから、データを利用しようとした場合にデータ結合の手間が発生することや、最新の情報を含むためにはもとのエクセルファイルの処理が必要となるものの、その処理の行い方が公開されていないため、各企業の安全衛生担当者が自社の安全衛生活動に利用しようとした場合に手間や工数がかかる状況は持続していると考えられました。
このレポジトリでは、
- 平成3年から令和4年度(2023年時点の最新分)までのエクセルファイルを一つにしたCSVを作成すること
- 全ての年度で可能な限り誤分類を減らす(分類できない場合は、分類不能と明記する)ような処理を行うこと
- CSVを作成する工程をウェブスクレイピングから出力までを全てR言語で実施し、そのスクリプトを本レポジトリに公開すること
- R Shinyで簡易的に集計・事例抽出を行うアプリケーションを作成してShinyapps.ioへ公開、そのスクリプトを本レポジトリに公開すること
を目的としています。
とくに、Rスクリプトを全て公開することで、
- データ処理のスキルがある企業の労働安全衛生担当者の方などが、データを利活用しやすくなること
- 製作者(私)が意図していないミスや、見落としていた誤分類などの指摘・改善を通して、より使いやすいデータセットになる可能性
を期待しています。
また、アプリケーションを公開することで、PC操作が得意でない各企業の労働安全衛生担当者が自社での死亡事故のリスク低減の一助になれば、嬉しく思います。
-
scraping_sibou.R
で、- 職場のあんぜんサイトからExcelファイルを
dldata_sibou
フォルダへダウンロードを行う - 各種前処理の実施(
sibou_codes.xlsx
に含まれるコードと名前の対応表をもとにした置き換えなど) - 前処理を行った結果の
死亡データ_統合.csv
への出力 - 結果をshinyアプリで利用するために便利な形式、
death_by_accident_data.rds
での出力
- 職場のあんぜんサイトからExcelファイルを
-
sibou_codes.xlsx
は、職場のあんぜんサイトで公開されているWordファイル、rousai_db_siyou1109.doc
のマスターデータと思われる表を3つのシートに分けて手作業で保存したものになります。(この表の作成にもRでWordファイルから作成するべきでしたが、手間が大きかったため手作業でファイルを作成しています。) -
sibou_app.R
が、Shinyapps.io上で動作しているアプリの本体です。動作に必要な別のファイルはdeath_by_accident_data.rds
とsibou_codes.xlsx
となります。
scraping_sibou.R
がデータの前処理工程全てになります。コメントは適宜つけていますが、メモ程度です。
Footnotes
-
濱島 京子, 機械判読の観点からみた労働災害データベースの課題, 労働安全衛生研究, 2022, 15 巻, 2 号, p. 177-188, 公開日 2022/09/30, [早期公開] 公開日 2022/07/26, Online ISSN 1883-678X, Print ISSN 1882-6822, https://doi.org/10.2486/josh.JOSH-2022-0009-CHO, https://www.jstage.jst.go.jp/article/josh/15/2/15_JOSH-2022-0009-CHO/_article/-char/ja ↩