見出し画像

市町別死因分析①データ処理に苦戦 データアナリストへの道#3

デジテック for YAMAGUCHI 運営事務局 兼 Y-BASEスタッフのハラマルです。大変なことになりましたね。何がって、サッカーの天皇杯です!我らがレノファ山口が、銀河系スター軍団のヴィッセル神戸と対戦することになりましたからね!こんな対戦を見ることができる機会は滅多にありませんから、かなり山口県内はざわついているのではないか?と予想されます。いや~、楽しみですね~。チケット争奪戦にならないか心配です。

さて、お祝いでビールが進んだからか、周りからの「さらに太ったね」指摘が相次いでおります。最近は笑って過ごせないくらいになってきました。そんなことをきっかけに、次に扱ってみるデータは「死因」にしてみようかと思います。極端&単純ですみません!山口県の方の死因ってどうなんだろう?市町別の分析なんかできたりするんでしょうか?

データを探してみた

では、まず、データがあるのか探してみましょう。すると、山口県庁のHPに早速、発見しました。

統計年報があるようで、「人口動態」、「食中毒」、「地域保健活動」、「医療」、「母体保護」、「老人保健事業報告」、「生命表」といった項目があります。たくさんあり過ぎて、ちょっと目移りしてしまいそうなので、他のデータを見てみるのは、今後の楽しみに取っておくことにします。

死因となると、どれかな?人口動態に「死亡」(「脂肪」ではありません!)という項目があります。きっとこれでしょうね。クリックしてみると、ここだけでも、たくさんのデータがありますね。表が9つもあります。第22表のタイトルが「死亡数,死因・性・市町別」となっていますので、これかな?と。

第22表「死亡数、死因・性・市町別」2020年・山口県

あ、そうそう。こんな感じです!これがあれば市町別の分析ができますね。
・・・いや、あれ?この形式、どうやって使えばいいんだろう?

よく見ると、B列に死亡数の総数があり、C列は男性・D列は女性という内訳になっていますね。ところが、そこから右になると、総数はなく、男女別の数字が並んでいます。
それに、G列からAB列のタイトルは「再掲」になっていますね。これは、E・F列「感染症及び寄生虫症」の内数になっているようです。
あらら、さらに、Excelの別シートにも表があります。特に説明はありませんが、どうやら、この表の右端の続きが別シートになっているようです。

う~ん、困ったことになりました。この統計年報は、印刷したり画面上で見ることを意識してデザインされているようです。

これを、ExcelなりTableauなりを使って分析しようとデータとして扱うためには、少なくとも、市町名と男女別に行を分けてデータ整理する必要があるように思います。
例えば、最初の下関市の行では、B列から右に、総数(男女計)、男性、女性、男性、女性というようになっているので、これを、下関市・男性という行と、下関市・女性という行を分ける必要があるのではないでしょうか?

また、それをどうやってそれを作りましょうか?
①1行ずつ挿入していって手作業で男女を別の行に分ける
②男性と女性とを別の行にした表を作成し、そこに、この表から関数を使って数字を引っ張ってくる
という2つの方法がパッと思いつきましたが、どれも、大変そうですし、その作業をしている間に数字を取り違えてしまう危険性があるような気がします。

そして、その問題をクリアしても、この「再掲」と書かれている部分、普通にやったらダブルカウントになってしまうので、そこをどう処理したものか?という問題が残ります。

この辺りがオープンデータ化の課題ですね。統計データとしてオープンにはなっているけれど、オープンデータとして扱うための形式に整理されていないものがいろんなところに散見されます。
が、おそらく、形式を変更するには手間がかかる上、データを提供する側としては、その手間をかけるメリットもない(認識していない)ということで、従来の形式で提供されているのではないでしょうか。

ですが、考え方によっては、この表、統計データとして使うのであれば印刷して使う人もいないのではないでしょうか?見やすさを意識したデザインが必要なんでしょうか?ぱっと見、よくわからなくても、データとして扱える形式でHP掲載してしまえばいいのではないかとも思いますが、どうでしょうねぇ?

市町別の死因分析なんて、思い立ったはいいけど、これを扱うのはちょっと手間がかかりそうだなぁ、やっぱ、辞めようかなとモチベーションも下がってきてしまいましたが、他にデータがないか探してみることにします。

「e-Stat」の「人口動態調査」に「死亡」という項目があるのですが、ここにあるのは都道府県別(特別区・指定都市含む)までで、市町村別はないようです。じゃあ、都道府県別の分析に変えようかな?

と思っていたのですが、この「e-Stat」の下部の方に「保管統計表 都道府県編(報告書非掲載表)」という怪しい項目があるのを発見しました!
非掲載?でも公表しているデータ?何それ?

これを見ていくと「死亡数,都道府県・市区町村・死因(選択死因分類)・性別」という項目があります!都道府県別にデータが掲載されていますので、それを見てみます。

死亡数,都道府県・市区町村・死因(選択死因分類)・性別(2020年・山口県)

総数が18,477人で、さっきの山口県のHPのデータと同じ数値です。
最初(7行目~43行目)に県全体の総数があって、それ以降は、市町別に数字が並んでいるようです。
なんだ、あるんじゃないっすか。それなら、さっきのページに、市町別はこちらに掲載していますよという案内があると親切なのですが、何も非掲載という項目で載せなくても・・・。という愚痴はさておき。
こっちの方が扱いやすそうに見えますね。よし、それでは、このデータを使って分析してみることにします!

データを整理してみた

では、このデータを扱うために、整理してみます。
このままだと、きちんとデータが揃っているのかどうか分かりにくいので、一旦、行列を入れ替え、市町を縦に並べて表形式に整理し直しました。こんな感じです!

データ整理中(途中段階)

簡単に言いましたが、結構めんどうでした(笑)
でも、先ほどと違い、男女で分かれています。一か所、「再掲」があるのですが、項目名を見てみると、「Se05」の結腸がんと「Se06」の直腸がんを足して、「大腸がん」という区分での集計ということが分かりました。これは、一旦、このままで置いておきましょう。

さて、ここまで来ましたが、他の医療データなどを見てみると、「人口10万人あたり」というデータが使われているようです。そうすると、人口データも必要ですね。国勢調査の数値から、市町別・男女別を追加で表の右端に入力することにしました。

それと、作業をしていると、経年比較も必要かな?とも思うようになり、同じ作業を、2015年・2010年で実施し、同じ表に追記しました。
ところが、やってる途中で、2010年は市町合併(山口市+阿東町)前であることに気づき、比較するためには2010年の阿東町の数字を山口市に加算するなどの作業も発生してしまいました。
変なこと思いつくんじゃなかった~、と後悔しながら作業を続けます。

苦労の末、やっと整理ができました!
と思ったのですが、読んでいてお気付きになった方もいらっしゃると思います。実は、このデータ整理で、大きなミスを犯していました!

Tableauで作業しようとしたところ、あれ?うまくいかない・・・となり、気づいた次第です。
私が整理したつもりのデータも、データを横方向に所有しているので、このままだとうまく扱えないのです!かなりミスっちゃいました。

データを横方向に並べていったとき、隣の列同士に関係があるのか(例えば、内訳なのか)?、それとも、関係がないのか?といった情報を持っていないためだそうです。例えば、死因の上位を見てみようと思っても、どの列が死因なのかという情報がないため、ツールで処理することができません。

うむむむ。この段階で気づいたのは遅かったかもしれません。この表を、さらに並べ替えていくという方法もあるかと思いますが、私は既に力尽きてしまいましたので、どうにかならんのかと調べてみます。
すると、どうやらTableauの力を借りれば、表を作り直さなくても良さそうです!ほげー、そんな機能まであるんですか!?

Tableauにデータを接続し、死因に当たる列を選択し、「ピボットを作成」すると、一発でデータ同士を関連付けてくれました!助かります!

ピボット処理
ピボット後

こちらがピボットによって並び替えた状態です。並び替え前がデータを「横持ち」している状態で、悪い例です!正しくは、ピボット後のようにデータを縦方向に持つべきだということです。

最初からこの状態でデータを保有すればいいという事なんでしょうが、このあたり、勉強もせずにツールを使いながら覚えるということの要領の悪さですが、最初に思いつかずに失敗したというのは良い勉強になりました。

次からは、どのようにデータを持つべきか、先に設計しないといけないということがよく理解できました。

ここまででかなり疲労してしまいましたので、データ分析作業は次回に続きます。


この記事が参加している募集

最近の学び