scipy.stats.kruskal() コマンドで Kruskal-Wallis test を行う。また、scipy.stats.f_oneway() コマンドで one-way ANOVA (一元配置分散分析)を行う。
Python を起動し、pandas と scipy.stats を import する。
import pandas as pd
from scipy import stats
通常は Excel 等で作成した CSV ファイルを pandas に読み込んで分析する。しかし、ここでは便宜的に以下の簡単なデータフレームを作成し、data という変数に格納しておく。
data = pd.DataFrame({"デバイス":["デバイス A","デバイス B","デバイス A","デバイス A","デバイス C","デバイス C","デバイス B","デバイス C","デバイス A","デバイス A",], "出血量":[30,20,5,5,100,80,10,60,10,25]})
data の内容を確認する。
data
query() コマンドを使い、デバイスによって data を3群にグループ分けする。
A = data.query('デバイス == "デバイス A"')
B = data.query('デバイス == "デバイス B"')
C = data.query('デバイス == "デバイス C"')
それぞれのグループの平均や中央値等の基本統計量は describe() コマンドによって得られる。
A.describe()
B.describe()
C.describe()
A, B, C の出血量を Series 型に変換する。
x = A["出血量"]
y = B["出血量"]
z = C["出血量"]
x, y, z に偏りがあるかどうかを scipy.stats.kruskal() コマンド、scipy.stats.f_oneway() コマンドで検定する。
stats.kruskal(x, y, z) #Kruskal-Wallis test
stats.f_oneway(x, y, z) #ANOVA