より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

術前・術後の在院日数を手術分類で分析してみる

下記の記事の続きです。

rimever.hatenablog.com

AttributeError: module 'pandas' has no attribute 'core'

いつもの調子でcsvをpandasで読もうとしたらエラー。

f:id:rimever:20181130220120p:plain

python - AttributeError: module 'pandas' has no attribute 'core' - Stack Overflow

jupyter notebookを再起動したら問題が解消しました。

f:id:rimever:20181130220540p:plain

分類ごとに積み上げグラフ

ここでのデータは手術を下記のように分類しています。

  • 開頭手術
  • 開胸手術
  • 開腹手術
  • 筋骨格系手術(四肢体幹)
  • 腹腔鏡下手術
  • 胸腔鏡下手術
  • その他の内視鏡下手術
  • 経皮的血管内手術
  • その他

消化器外科や心臓外科といった診療科別ではありません。

data = data.sort_values('術後',ascending=False)
labels = data['分類']
before_ope = data['術前']
after_ope = data['術後']

total = [num1 + num2 for num1,num2 in zip(before_ope,after_ope)]

fig, ax = plt.subplots(1, 1, figsize=(8, 4), dpi=100)
plt.xticks(rotation=-60)
plt.title('総数')
ax.bar(labels,total,label='after_ope')
ax.bar(labels,before_ope,label='before_ope')
ax.legend()

f:id:rimever:20181201103653p:plain

開頭手術は在院日数がかかるということはわかります。

データを集める、データを分析する、ということが出来たとしても、データを分析して何がわかるのか、何を知るためにデータを分析ということが必要になってきます。

さあ、都道府県別とせず、私に考えうる限りで切り口を変えてデータを見てみます。

内視鏡手術と外科的手術

分類の中で腹腔鏡下手術というのが存在します。

ドラマ「ドクターX」で腹腔鏡の魔術師が登場しますが、彼が得意とする手術がこれ。

www.tv-asahi.co.jp

内視鏡を用いた手術で、開腹手術のように大きくお腹を開けないので傷口が小さく、回復も短い。

腹腔鏡手術 - Wikipedia

ただし、開腹手術の方が安全だとも言われます。

同様に肺の手術をするときには、「胸腔鏡(きょうくうきょう)下手術」といいます。

また、関節に用いる関節鏡下手術も存在します。そういった手術がその他の内視鏡下手術となります。

では、実際に回復が早い(在院日数が短い)のかを比較してみます。

実は、一度にグラフを二つ並べるのは初めてでして、

fig, ax = plt.subplots(1, 2, figsize=(6, 4), dpi=100)

# 一つ目のグラフは、ax[0]
# 二つ目のグラフは、ax[1]

と扱います。

stomach = data.query("分類 == '開腹手術' | 分類 == '腹腔鏡下手術'")
labels_stomach = stomach['分類']
before_ope_stomach = stomach['術前']
after_ope_stomach = stomach['術後']

total_stomach = [num1 + num2 for num1,num2 in zip(before_ope_stomach,after_ope_stomach)]

fig, ax = plt.subplots(1, 2, figsize=(6, 4), dpi=100)
ax[0].bar(labels_stomach,total_stomach,label='術後')
ax[0].bar(labels_stomach,before_ope_stomach,label='術前')
ax[0].legend()


breast = data.query("分類 == '開胸手術' | 分類 == '胸腔鏡下手術'")
labels_breast = breast['分類']
before_ope_breast = breast['術前']
after_ope_breast = breast['術後']

total_breast = [num1 + num2 for num1,num2 in zip(before_ope_stomach,after_ope_stomach)]
ax[1].bar(labels_breast,total_breast,label='術後')
ax[1].bar(labels_breast,before_ope_breast,label='術前')
ax[1].legend()

f:id:rimever:20181201143624p:plain

どちらも5日ほど短くなっているようです。

特に開胸手術は術前も短縮されています。

分類ごとの変動係数

開頭手術が在院日数が長いことは見れば明らかです。

都道府県でもっともばらつきがある手術分類は何でしょうか。

単純に標準偏差だけで比較してしまうと、やはり値が大きくなりがちな項目が上位に挙がってしまいます。

そこで知ったのが変動係数です。

ばらつきを比較する変動係数についてまとめてみた/データ分析の解説: haku1569 Excel でらくらく データ分析!

変動係数 = 標準偏差 / 平均 * 100

で求めます。

f:id:rimever:20181201165242p:plain

行(分類)ごとに標準偏差を割り出して

f:id:rimever:20181201165332p:plain

今回は、平均の代わりに全国があるので、これを使いました。

術前

術前と術後があるので、それぞれで比較してみます。

f:id:rimever:20181201165927p:plain

変動係数の大きい順に並び替えたところ、「その他の内視鏡下手術」、「経皮的血管内手術」、「その他」、「開頭手術」となりました。

経皮的血管内手術はIVRなどで行われるカテーテル手術のことを指していると思われます。

術後

f:id:rimever:20181201170407p:plain

術後は、「開頭手術」、「その他」、「その他内視鏡下手術」、「経皮的血管内手術」となりました。

開頭手術は在院日数が長いため、標準偏差も大きくなりますが、変動係数としても術後の中では一番大きい値となりました。

都道府県ごとの開頭手術による在院日数の差は大きそうです。

変動係数で比較

では、在院日数の変動係数を術前と術後で積み上げグラフにして比較してみます。

f:id:rimever:20181201171341p:plain

その他内視鏡下手術と、経皮的血管内手術、開頭手術が際立ちます。

こういった手術に関する器具や知識が全国に普及していないのか、理由はデータだけではなんとも言えません。