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