Python による独立2群の比較

scipy.stats.ttest_ind() コマンドを使い、独立2群を比較する。

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

import pandas as pd
from scipy import stats

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

data = pd.DataFrame({"手術方法":["内視鏡","開腹","開腹","内視鏡","内視鏡","内視鏡","開腹","開腹"], "手術時間":[60,50,100,90,30,40,80,90], "出血量":[15,100,90,20,18,20,120,90]})

data の内容を確認する。

data

query() コマンドを使い、手術方法(内視鏡か開腹か)によって data を2群にグループ分けする。

A = data.query('手術方法 == "内視鏡"')
B = data.query('手術方法 == "開腹"')

それぞれのグループの平均等の基本統計量は describe() コマンドによって得られる。

A.describe()
B.describe()

A 群、B 群の手術時間と出血量を Student t test で比較する。

stats.ttest_ind(A["手術時間"], B["手術時間"]) #手術時間の比較 
stats.ttest_ind(A["出血量"], B["出血量"]) #出血量の比較

古典的な Student t test 以外は、以下のようにする(ここでは手術時間を比較)。

stats.ttest_ind(A["手術時間"], B["手術時間"], equal_var = False) # Welch t test
stats.mannwhitneyu(A["手術時間"], B["手術時間"]) #マン・ホイットニー u test