ペアプロット図

ペアプロット図とは別名散布図行列と言って、複数の変数間の相関関係を俯瞰できるようにした図のことを言う。Pythonではseabornというパッケージを使うと簡単にペアプロット図を描ける。

ここでは病床機能報告データを用いていくつかの項目間でペアプロット図を描くPythonプログラムを紹介する。

まず、必要なパッケージをインストールして読み込むコードをリスト1に示す。

!pip install japanize-matplotlib

# 必要なパッケージを読み込む
import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib
import seaborn as sns

リスト1 必要なパッケージの読み込み

1行目ではグラフ作成パッケージmatplotlibで日本語表示を行えるようにするためのパッケージjapanese-matplotlibをpipコマンドでインストールしている。Pythonのグラフ作成パッケージmatplotlibはそのままでは日本語文字が化けるのでこのパッケージを追加インストールする。

病床機能報告データはTSV形式のテキストファイルとして準備しているものがあるので、それを読み込んでデータフレームオブジェクトにするためにpandasパッケージを読み込む。

さらにペアプロット図を描くためにseabornパッケージ及びmatplotlib, japanese_matplotlibを読み込む。

次に病床機能報告データを読み込んでデータフレームオブジェクトにするコードをリスト2に示す。

# 病床機能データを読み込む
BED = pd.read_csv(filepath_or_buffer='/content/drive/MyDrive/Colab Notebooks/BEDデータ.txt',sep='\t')

リスト2 病床機能報告データの読み込み

TSVファイルはpandasオブジェクトのメソッドread_csvで読み込む。その際、パラメータsepにタブキー'\t'を設定する。

病床機能報告データから一般許可病床数(F15)、療養許可病床数(F18)、常勤看護師数(F32)、退院患者数(F80)、手術総数(F186)の5つの項目を選んで別のデータフレームオブジェクト変数 df へ代入し、seabornオブジェクトのpairplotメソッドを使ってペアプロット図を描くコードがリスト3である。

# ペアプロット
# F15: 一般許可病床数、F18: 療養許可病床数、F32: 常勤看護師数、F80: 退院患者数、F186: 手術総数
df = BED[['F15','F18','F32','F80','F186']]
sns.pairplot(df)

リスト3 ペアプロット図の描画コード

このコードによって描かれたペアプロット図を図1に示す。

図1.ペアプロット図

図1は、5×5のマトリックスに選択した5項目のすべての組み合わせの散布図を一度に描いたもので、各項目の相関が俯瞰できる。ただし、対角成分の図は各項目の分布をヒストグラムとして描いている。

次に、機能区分(F12)別に色分けしたペアプロット図を描くコードをリスト5に示す。

# 機能区分(F12)に従って色分け
df = BED[['F12','F15','F18','F32','F80','F186']]
sns.pairplot(df, hue='F12')

リスト4 ペアプロット図をカテゴリ別に色分けするコード

リスト3の違いは、機能区分(F12)が追加で選ばれており、seabornのpairplotメソッドの引数に hue パラメータでこの機能区分を指定している部分である。このように、hueパラメタで指定された項目が色分けに使うカテゴリとなる。

このコードによって描かれたペアプロット図を図2に示す。

図2.機能区分で色分けしたペアプロット図

図1との違いは、散布図の各点がカテゴリ(ここでは機能区分)ごとに色分けされている点である。機能区分ごとに各項目間でどのような相関関係があるか一目でわかる。

0 件のコメント:

コメントを投稿

機械学習

機械学習は、コンピュータがデータからその背後にあるルールやパターンを自動で「学習」し、その学習結果に基づいてそれぞれの目的に合ったデータの分析を行う手法です。 本講義ではこの機械学習を診療情報管理で応用するための基本的な概念を講義し、簡単な機械学習のプログラムを作成できるようにな...