pandas.DataFrame.corr() コマンドをつかい、相関係数を計算する。P 値も計算したい場合には scipy.stats.pearsonr() を使う。
Python を起動し、pandas を import する。
import pandas as pd
通常は Excel 等で作成した CSV ファイルを pandas に読み込んで分析する。しかし、ここでは便宜的に以下の簡単なデータフレームを作成し、data という変数に格納しておく。
data = pd.DataFrame({"縫合結紮の練習時間 (時間)":[100,150,200,250,300,1000], "手術時間 (分)":[210,220,150,100,90,45], "出血量 (ml)":[50,70,60,30,20,10]})
data の内容を確認する。
data
corr()コマンドでピアソン積率相関係数(いわゆる相関係数)を表示する。
data.corr() #ピアソン積率相関係数。
以下のようにすると順位相関係数も計算できる。
data.corr(method = "spearman") #スピアマン順位相関係数。 data.corr(method = "kendall") #ケンドール順位相関係数。
Pandas だけでは P 値は自動計算されない。これも計算したい場合は以下のように scipy.stats を import して使う。ここでは、x = 縫合結紮の練習時間 (時間)、y = 手術時間 (分)を data から抽出し、x と y の相関係数と両側検定による P 値を計算している。
from scipy import stats x, y = data["縫合結紮の練習時間 (時間)"], data["手術時間 (分)"] stats.pearsonr(x, y) #ピアソン積率相関係数。 stats.spearmanr(x, y) #スピアマン順位相関係数。 stats.kendalltau(x, y) #ケンドール順位相関係数。