Python による Fisher exact test とカイ2乗検定

scipy.stats.fisher_exact() コマンドで Fisher exact test を行う。また、scipy.stats.chi2_contingency() コマンドでカイ2乗検定を行う。

Python を起動し、pandas と scipy.stats を import する。

import pandas as pd
from scipy import stats

通常は Excel 等で作成した CSV ファイルを pandas に読み込んで分析する。しかし、ここでは便宜的に以下の簡単なデータフレームを作成し、data という変数に格納しておく。

data = pd.DataFrame({"術者":["太郎","太郎","花子","花子"], "手術方法":["内視鏡","開腹","内視鏡","開腹"], "回数":[60,5,20,40]})

data の内容を確認する。

data

pandas.pivot_table() コマンドで、data を2×2クロス集計表にし、table という変数に格納する(別記事)。

table = pd.pivot_table(data, values = "回数", index = "術者", columns = "手術方法", aggfunc = "sum")

table の内容を確認する。

table

scipy.stats.fisher_exact() コマンド、scipy.stats.chi2_contingency() コマンドで術者によって手術方法(内視鏡か開腹か)に偏りがあるかどうかを検定する。

stats.fisher_exact(table) #Fisher exact test
stats.chi2_contingency(table) #カイ2乗検定(イエーツ補正あり)