介護DBオープンデータをLooker Studioで可視化してみた

2024/07/09に公開

はじめに

はじめまして! Rehab for JAPANでデータアナリストをしている迫田です。

近年、国内ではオープンデータの公開が急速に進んでいます。
政府統計の総合窓口であるe-Stat[1]やe-Govデータポータル[2]をはじめとして、様々な分野のデータが誰でも自由に利用できる環境が整ってきました。また、デジタル庁の政策ダッシュボード[3]に代表されるように、データの可視化によって情報をわかりやすく伝える取り組みも活発化しています。
一方で、介護領域に目を向けてみると、オープンデータの存在は認知されつつあるものの、それらを活用したデータ可視化はまだ十分に進んでいないのが現状です。

そこで、今回は厚生労働省より公開されている介護DBオープンデータ[4]を用いて、無料で利用可能なBIツールのLooker Studioによる可視化に挑戦してみました。
この記事を通して、少しでも介護データに関心を持っていただければ幸いです。

ターゲット

  • 介護データに関心のある方
  • Looker studioによるデータの可視化に関心のある方

要約

この記事では、厚生労働省より公開されている介護DBオープンデータを用いて、データの取得からLooker studioで地域別の介護サービス利用割合をマップの塗り分けグラフなどで可視化について説明しています。

介護DBオープンデータ

介護DBオープンデータとは、厚生労働省が保有する介護保険総合データベース(介護DB)のうち、要介護認定情報について、多くの人々がデータに基づいた知見に接することができるよう、介護給付費等実態統計では公表されていない基礎的な集計表を作成し、公表したものです。

以下のような目的や特徴があります。

  • 介護サービスの提供実態や要介護認定情報等のデータをわかりやすく示すことを目的としている。
  • 主要な集計項目は、申請区分、一次・二次判定結果、要介護度、認定調査項目、障害高齢者の日常生活自立度、認知高齢者の日常生活自立度など。
  • 集計表は、都道府県別、性・年齢階級別、要介護度別、保険者別に作成されている。
  • データの最小集計単位の原則に基づき、要介護者数などが一定数未満の場合は秘匿されている。
  • 介護給付実績との突合により、介護サービスの利用割合なども集計されている。

厚生労働省が公表する初の介護分野に特化したオープンデータであり、広く介護保険制度の実態を把握する基礎資料となるものです。

データの取得

今回は、第1回介護DBオープンデータ、第2回介護DBオープンデータのページより都道府県別の要介護認定情報を取得します。
また、要介護認定情報の集計データから現在の状況(在宅か施設か等)、二次判定結果、介護サービス利用者割合のデータに絞ってみていきます。

alt text
第1回介護DBオープンデータ
alt text
第2回介護DBオープンデータ

データ内容

2018年度のデータを開くと、1シート目に以下のような各シートの構成が表示されます。他の年度も同様の構造となっています。

alt text

今回、可視化したデータについては下記のようになっています。
alt text
現在の状況

alt text
二次判定結果

alt text
サービス利用割合

データ加工

データの可視化をするに当たって余計な行や列情報があるため削除し、可視化するためのデータセットをPythonにて作成しました。
以下に介護サービス利用者割合(%)のデータ加工の際に行った処理を記載します。

import requests
import pandas as pd

# データの取得(都道府県別の要介護認定情報)
def download_data(year, file_number):
    base_url = "https://www.mhlw.go.jp/content/"
    url = f"{base_url}{file_number}.xlsx"
    response = requests.get(url)
    
    file_path = f"../data/{year}/xxxx.xlsx"
    with open(file_path, "wb") as file:
        file.write(response.content)
    
    return file_path

# データの読み込みと整形
def process_data(file_path, year):
    df = pd.read_excel(file_path, sheet_name=16, header=4)
    df = df.drop(columns=["Unnamed: 0", "Unnamed: 1", "総数(人)", "Unnamed: 3", "Unnamed: 4"]).dropna()
    df["介護サービス利用者割合(%)"] = (df["介護サービス利用者割合(%)"].round(0) / 100)
    df["年度"] = year
    
    return df

def main():
    data_info = {
        2018: "001180434",
        2019: "001180436",
        2020: "001180187",
        2021: "001180189"
    }
    
    df_list = []
    for year, file_number in data_info.items():
        file_path = download_data(year, file_number)
        df = process_data(file_path, year)
        df_list.append(df)
    
    df_utilization_rate_per_prefecture = pd.concat(df_list, ignore_index=True)
    print(df_utilization_rate_per_prefecture)

if __name__ == "__main__":
    main()

上記の結果、以下ようなデータフレームを取得できます。

都道府県 介護サービス利用者割合(%) 年度
0 総数 0.67 2018
1 北海道 0.61 2018
2 青森県 0.71 2018
3 岩手県 0.68 2018
4 宮城県 0.68 2018
... ... ... ...

上記のデータをCSV保存し、Looker studioで読み込みます。

Looker Studioでデータの読み込み

今回は保存したCSVデータを「ファイルのアップロード」から読み込みます。
alt text

データの可視化

今回は都道府県ごとの集計情報のため、Googleマップの塗り分けグラフを用いて、可視化を進めます。

「グラフを追加」から可視化方法を選択

alt text

フィールド・指標の設定

都道府県の情報があるため、データの種類を地方行政区画(第1レベル)とし、指標を介護サービス利用者割合に設定することで簡易的に都道府県別の塗り分けマップが完成します。

alt text alt text

alt text

その他、「コントロール」から年度別のフィルター条件を追加したり、「グラフの追加」から表を選択することで以下のようなダッシュボードを簡易的に作成することが可能となっています。
これによって介護サービス利用者割合が都道府県ごとに差があることが直感的にも分かるかと思います。

alt text
ダッシュボードへのリンク

まとめ

今回、介護DBオープンデータを用いて、データの取得からLooker Studioでの可視化までのプロセスの概要を紹介させていただきました。
添付したダッシュボードのリンクからは要介護度の集計情報や新規の要介護認定申請時にどのようなサービスを受けていたかの集計情報も可視化しています。
お時間があるときにご覧いただけますと幸いです。
また、今後、科学的介護情報システム(LIFE)[5]の情報の一部も公開される予定であり、より幅広いテーマで介護データを用いた分析が可能となります。
この記事を通して、少しでも介護データに興味を持っていただけると嬉しい限りです。

脚注
  1. 政府統計の総合窓口(e-Stat ↩︎

  2. e-Govデータポータル ↩︎

  3. 政策データダッシュボード一覧 ↩︎

  4. 介護DBオープンデータ ↩︎

  5. 科学的介護情報システム(LIFE)について ↩︎

Rehab Tech Blog

Discussion