Increasing Healthcare Equity With Dataの翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
健康の社会的決定要因(SDOH, Social determinants of health)は、健康の平等にとって争う余地のない影響を及ぼします。これは、CDC、医療従事者、医療と関係のない社会的経済的要因、例えば人種、収入、性的指向により健康格差を経験している有権者を抱える多くの政府機関にとって長年の懸案事項です。CDCによると、「健康格差は、寿命、生活の質、死亡率、障害や死亡、重症度、そして治療へのアクセスなどの差に反映されます」。健康格差の負の結果は生活の質の低下などを含みますが、良いニュースとしては健康の社会的決定要因に関するデータは格差を特定し健康の平等を優先づけるために大きな役割を果たします。健康格差のギャップを埋めるには豊かなデータソースの分析が必要ですが、これは大きなチャレンジとなります。パンデミックと、それに伴うワクチンの分配率が各種の社会経済学的、社会的な集団により異なることは最新の例です。データの活用を通じ、COVID-19を例にとってこの問題を可視化しこれらの格差を説明することは有益です。しかしながら、健康の平等は、地域、州、連邦政府にまたがる多種のユースケースに関連することに留意することは重要です。
COVID-19のワクチンの例で言うと、既存のデータソースはいくつかのコミュニティーでワクチンの接種率が低いことの原因についての価値ある気づきを与えることができます。COVID-19のワクチンは少なくともこの1年、アメリカにおいて広く利用可能となっていますが、ワクチン接種率には州の間だけでなく、郡の間や郡の内部でも大きな差があります。接種を受けた人たちに関する基本的な情報、例えば年齢、人種や性別、から接種率が低い集団に関する限られた知見は得られる一方、より広範囲な理解を進めるために活用できる付加的な情報も多数あります。私たちの分析のために、既存の公共のデータセット、例えば収入、学歴、人口密度、喘息、癌の罹患率、肥満率、健康保険の加入率その他の健康状況に関するものを使います。
今はどうやってるの?
上に挙げたデータセットや、その他の私有のデータセットは様々な郡や、健康、労働、法務、家庭福祉などの州の部門に存在しますが、それらデータセットの全てに対してアクセスできるわけではないと言うのが、政策決定者がこれまで抱えてきた課題です。これらの課題を説明するため、健康保険請求コストと健康の社会的決定要因との関連性を探りたい生物統計学者のHeatherと、メディケア、メディケイド(訳注:どちらも公的医療保険制度)のデータベース管理者であるRyanとの、とてもありがちな会話を例にとって考えてみましょう。
これら以外の追加のデータソースについても同様なよろしくないプロセスが展開されるでしょう。このシナリオにおいてさえ、医療保険請求のような機微の公的健康データにアクセスするためのセキュリティーレビューが、どんなデータプラットフォームであったとしても必要となります。では、もしHeatherが彼女のノートPCに機密ではないデータを入れ、彼女のノートPCでは足らない計算リソースだけが必要とすると仮定すると何が変わるでしょうか?それでも彼女は以下のものが必要です:
- 計算リソースを提供するインフラチーム
- データを処理するデータプラットフォーム
- データプラットフォームにデータを投入するETLチーム
- 分析を実行するための分析ツール
クラウド環境においてさえ、生物統計学者やデータアナリストたちは彼らのデータベース、ETLツールや計算リソースを提供するノウハウを期待できないのですから、追加のチームの関与が必要となることでしょう。
ベターなやり方:近代的なデータプラットフォーム
それではここで、彼女の構想を実現するため、近代的なデータプラットフォームであるDatabricksのレイクハウスプラットフォームを彼女がどう使うかを見てみましょう。彼女は:
- 彼女のS3、ADLS、GCSアカウントに彼女のデータをアップロードします
- R、SQLまたはPythonを使って、必要なデータクレンジングを実施します
- データクレンジングと分析に一時的な計算リソースを利用します
- 彼女の分析の実施のため、コラボレーティブなノートブックを活用します
- Databricks上および他の外部のBIツールにより、彼女の分析結果を共有します
レイクハウスと、いつもやってきた方法との違いに目を向けてください。複数のITチームをまたいだ長々しく複雑なプロセスを経ることなく、既存のスキルセットであるPython、RやSQLを使ってHeatherはデータを取り込み、クレンジングし、活用することができました。
COVID-19ワクチン接種率
レイクハウスを使うことで、Heatherが試みようとしたのと同様な分析を実行してみましょう。各種の公共データソースから集められたJSONとCSVファイルを使って、私たちのクラウドストレージに対してアップロードし、クレンジングし、COVID-19のワクチン接種率に最も影響のある因子は何であるかを特定します。
このデータは、郡レベルで集計され、ワクチン接種の完了と、人種、人口密度、教育と収入レベルについて、それぞれ人口の割合をカバーしたものです。最初に私たちは最も生に近い形でデータを取り込みます。これにより素早いデータ探索が可能になります。以下の手順で、CSVファイルからワクチン接種率を取り込み、日付変換の単純な実行をし、データをDeltaテーブルに保存します。
from pyspark.sql.functions import to_date, col
dfVaccs = spark.read.csv(storageBase + "/COVID-19_Vaccinations_in_the_United_States_County.csv", header=True, inferSchema=True)
dfVaccs = dfVaccs.withColumn("Date",to_date(col("Date"),"MM/dd/yyyy"))
display(dfVaccs)
dfVaccs.write.format("delta").mode("overwrite").option("mergeSchema",True).option("path",storageBase + "/delta/bronze_vaccinations").saveAsTable("sdoh.bronze_vaccinations")
他のデータセットに対しても、ブロンズ、あるいは生のデータレイヤーを作成するために同様の手順を繰り返します。次に、FIPSコードなどの欠損データを加え、不必要なデータを除去することで、改善されたデータからなるシルバーレイヤーを作成します。以下の手順では、私たちが興味のあるものだけを含む健康特性のテーブルを作成し、私たちのユースケースのために作業しやすい形にテーブルをピボットします。
create table sdoh.silver_health_stats
using delta
location '{storageBase}/sdoh/delta/silver_health_stats';
select * from sdoh.bronze_health_stats
pivot(
MAX(data_value) AS data_v
FOR measure IN ('Current_smoking_among_adults_aged_18_years' AS SmokingPct,
'Obesity_among_adults_aged_18_years' AS ObesityPct,
'Coronary_heart_disease_among_adults_aged_18_years' AS HeartDiseasePct,
'Cancer_excluding_skin_cancer_among_adults_aged_18_years' AS CancerPct,
'Current_lack_of_health_insurance_among_adults_aged_18-64_years' AS NoHealthInsPct,
'Current_asthma_among_adults_aged_18_years' AS AsthmaPct)
)
order by LocationID
データクレンジングが完了した後、私たちが分析したい属性を含む形式で郡ごとに1行のデータを得ることができます。以下は、データリストの一部です。
分析のため、線形回帰モデルを作成するためにXGBoostを使います。簡略して、モデル設定とトレーニングのところだけを示します。
xgb_regressor = XGBRegressor(objective='reg:squarederror', max_depth=max_depth, learning_rate=learning_rate, reg_alpha=reg_alpha, n_estimators=3000, importance_type='total_gain', random_state=0)
xgb_model = xgb_regressor.fit(X_train, y_train, eval_set=[(X_test, y_test)],eval_metric='rmse', early_stopping_rounds=25)
モデルの平均二乗誤差は6.8%で、これは予測値が実際のワクチン接種率から±6.8%の範囲に入ることを意味します。私たちは未来の接種率を予測することに興味はなく、それぞれの属性がワクチン接種率にどの程度影響を及ぼしているかを説明するのにモデルを使います。この分析にSHAPを使います。モデルにそれぞれの属性が及ぼす影響を計算するためにSHAPがどれほど強力であるかを示す、SHAPについてのDatabricksブログもあります。
結果
全ての郡における全ての属性についての結果を要約して可視化すると、ワクチン接種率を決定づける要因として健康保険の欠如が最も大きいものであることがわかります。この結果が興味深いのは、COVID-19のワクチンは全員無料で受けることができ、接種することに健康保険やその欠如は障壁となるべきではないはずだということです。健康保険に加え、収入レベル、人口密度が、上位3つの因子でした。
アメリカ全体をカバーするモデルの作成が興味深く示唆に富むものである一方、地方でのトレンドはこのような大きな規模では明白ではありませんでした。同様なモデルを、カリフォルニア州内の郡に限定されたデータから作成したところ、とても異なる様子となりました。
カリフォルニア内の郡では、人口密度が、かなりの差をつけて接種率に最も影響のある因子でした。喫煙者の割合は、差のある2番目である一方、健康保険の状況は上位6位の因子にも入ってませんでした。
最後に、全アメリカのモデルで、郡ごとの最上位の因子を地図上で可視化します(下図)。これらの詳細により、州や地域の単位で関連する因子を知ることができ、各郡のそれらと比較することで外れ値やパターンを認識することができます。この知識は、私たち国民のうち最も弱い立場の人々に影響を及ぼす健康格差への対策を開始する際の手助けとなります。
次は?
COVID-19ワクチンについての今回の例を見てわかるように、集団の健康の格差を可視化するため、公共の利用可能なデータセットはその手始めとなり得ます。しかしながら、今回の例は、Databricksレイクハウスを活用して、私たちの手の届く所にある健康の平等への知見を示し、進歩させるための小さな1つのユースケースに過ぎません。各種データソースからのより多くのデータを結集できれば、私たちはより大きな知見を得て、健康に関する政策に良い影響を与え、将来における健康のより平等な分配を確保することで、サポートを必要とする市民に対する恩恵をもたらことができるはずです。
州や地方政府に関するDatabricksのデータ分析とAIの インダストリーのページをご覧ください。