見出し画像

オープンデータ分析してみたら、「日本を少し変えちゃった」話

朝日新聞社デジタル機動報道部でデータジャーナリズムの取り組みに携わっている山崎です。もともとエンジニアとして入社した背景を武器に、データの分析やそのビジュアライゼーションを記事の執筆に活かしています。

今回はちょっとこちらのNoteにお邪魔して、4月に朝日新聞デジタルで配信がスタートした、オープンデータ分析による大型連載(←自分で言うな)「みえない交差点」のテクニカルな部分を紹介したいと思います。

1.そもそもどんな連載?

分析の元データとなったのは、警察庁がオープンデータとして公開している「交通事故統計情報のオープンデータ」です。

警察では、事故が起こった際に、天気や場所、日時、当事者の年代など、どのような人身事故だったかを詳細に記録しているのですが、個人情報などをのぞいた一部のデータを2019年分から公開しています。

このオープンデータに含まれる緯度・経度を活用して、事故が多発している場所を調べていったところ、街中にあるような小さな交差点でもし事故が多発していたとしても「警察の分析システムでは漏れなく集計することができない」という課題点を見つけ出した、というのが連載の趣旨です。

遮蔽物などで「見えにくい」のではなく、集計データでは見つからないという意味から「みえない交差点」というネーミングを考えました。

2.分析の方法は?

事故多発地点を見つけるアルゴリズムはこのような流れになっています。

事故多発交差点の抽出イメージ(朝日新聞デジタルより引用)

それぞれの事故同士の距離を約70万レコードあるオープンデータの緯度・経度から計算して、近距離で起こっている事故を回帰的に見つけていったという手法です。

最初からこの手法に行き着いた訳ではなく、当初は、緯度経度の小数点下3桁までが同じ地点を探してみたところ事故地点が重なっているデータが多そうという感触を得たので、アルゴリズムをちゃんと考えてみました。

試験的に導き出した際のソースはこんな感じ↓↓

import pandas as pd

#オープンデータの読み込み
df = pd.read_csv('./honhyo_2020.csv')

#小数点3位までの数値を計算(あらかじめ小数点表記に変換した緯度・経度の列を追加)
df["north_round"] = df["緯度"].round(3)
df["east_round"] = df["経度"].round(3)

#####道幅が狭い交差点に対象を絞る場合
#11 交差点-小(5.5m未満)-小
#14 交差点-中(5.5m以上)-小
#15 交差点-中(5.5m以上)-中
#17 交差点-大(13.0m以上)-小
#18 交差点-大(13.0m以上)-中
#19 交差点-大(13.0m以上)-大
df = df[df["発生日時  年"] == 2020]
df = df[(df["車道幅員"] == 11) | (df["車道幅員"] == 14) | (df["車道幅員"] == 15) | (df["車道幅員"] == 17) | (df["車道幅員"] == 18) | (df["車道幅員"] == 19)]

#緯度経度が同じデータをランキング
df_vc = df[["north_round", "east_round"]].value_counts()
df_vc = df_vc.reset_index()

#10回以上事故が起こっていると思われる交差点は17箇所くらいありそう
df_vc.head(20)
    north_round  east_round   0
0        33.483     130.538  17
1        34.672     135.176  13
2        34.711     135.511  13
3        34.698     135.502  12
4        34.760     137.734  12
5        34.681     135.521  12
6        35.121     138.846  12
7        35.661     140.484  12
8        35.162     136.910  11
9        34.682     135.497  11
10       34.697     135.518  10
11       35.741     139.707  10
12       35.698     139.894  10
13       34.698     135.504  10
14       34.774     135.385  10
15       40.627     141.225  10
16       34.698     135.501  10
17       35.698     139.655   9
18       34.680     135.636   9
19       35.342     136.864   9

10回近くかそれ以上の事故が起こっていると思われる交差点が全国で多くありそうと目星がついたので、もれなく事故多発地点を見つけるためのアルゴリズムを考え、行き着いたのが上記イラストのような方法でした。

さらに、国道のような広い道路の交差点ではなく、13メートル未満の道幅の道路同士が交わる生活道路のような小さな交差点を分析対象にして、調査や取材を重ねました。

3.分析の結果は?

最終的には、2年間で計78箇所の「みえない交差点」を発見しました!朝デジではデジタル地図サービスのMapboxを活用して、「みえない交差点」だけでなく、2年分の人身事故データ約70万件もマッピングするというビジュアライゼーションに挑戦しています。
オープンデータはCSVで公開されていますが、これをCSV→Geojson→タイルと変換することで軽量化を図り、スマホでも無理なく利用できるようにしました。

「みえない交差点・検索ページ」へのリンク

みえない交差点―地図編―

※リンク先を見て頂くと、都市圏を中心に事故が集中しているのが一目で分かると思います。通学路や家の周辺など、みなさんやご家族が頻繁に利用する道路でも事故が多い場所が実はあるかもしれません。ぜひ調べてみてください。

見つけ出した交差点は、場所によっては事故数が県下トップクラスの危険交差点も含まれていました。ではなぜ警察の分析システムでは全ての交差点を網羅的に検索して、事故多発交差点ランキングを作ることができないのか……。気になる原因は連載へ!!

4.見つけた場所をちょっとだけ紹介

今回、重点的に取材した地点が静岡県沼津市のとある交差点です。静岡県警によると、道路の幅を広げる工事の影響などから、年間に10回以上の事故が多発する交差点となってしまったそう。

そこで県警では、取材班の指摘を受けて、2方向の一時停止を4方向一時停止に変えるという規制変更と路面工事を実施しました。ここまで迅速に対策に動くのは予想外だったのですが、ある専門家の方から「日本変えちゃったね」と冗談半分で言われました。

静岡県沼津市にある市道交差点。取材班の指摘を受けて、道路に一時停止線が新たに引かれました

規制変更後には、事故数が大幅に減少したようです。よくこの場所を通るタクシードライバーからも「事故が多くて怖かった場所。停止線が増えて安心しました」という声がありました。

5.最後に

データジャーナリズムのお手本として個人的に目標としているのが、New York Timesによる「toxic waters」(汚染水域)という取り組みです。

これは、行政が公表しているデータと調査の元データの双方を比較・分析して、水質を把握していない地域があることを見いだした報道です。このように、公表されているデータと裏にある生データとの差異から、行政が見逃している視点を見つけ出すのがデータジャーナリズムの「お手本」の一つだと思っています。

連載の流れや、マップコンテンツの作成に当たっては、このNew York Timesの取り組みを参考にさせてもらいました。

念のために書いておくと、今回の記事が目指しているのはあくまで「課題解決」です。警察の分析システムの不十分さみたいなものを指摘だけして「首取ったった!」みたいには終わりたくありません。

2021年の年間の交通事故死者数は2636人だったようです。警察などでは、これまでは国道などの幹線道路の大きな交差点を重点的に対策してきたようですが、さらに事故を減らすため、重点的に生活道路への対策も実施することになってきています。

ただ、専門家によると「ではどこで対策すべきか?」ということを効率的に見つけ出す手法がまだ確立されていないという課題もあるそうです。

今回のデータ分析の手法やアルゴリズムがこういった課題を解決し、危険箇所の特定や事故減に少しでも貢献できればと願っています。

(デジタル機動報道部・山崎啓介)