SportLog

スポーツと英語とPythonとガジェット

#81 Pythonを使ってクリップボードからスピアマンの順位相関分析をする:Spearman test from the clipboard using Python

f:id:nororopokuru:20200126010533p:plain
昨日はシャピロウィルク検定をPythonで実施しました。
www.sportscienceresearchjpn.com
検定の結果、データは正規分布していないことがわかりました。

とある変数AとBの相関をみたかったので

パラメトリック検定であるピアソンの積立相関分析は正規分布していない場合の使用は不適らしいので
ノンパラメトリック検定であるのスピアマンの順位相関分析を実施することにしました。

下記のようなデータセットでエクセルからA列とB列を同時にクリップボードにコピーして下記のコードをPythonで実施しました。


f:id:nororopokuru:20191226135324p:plain

※Python3.6, Jupyter notebook5.4.0

import pandas as pd
import scipy.stats as stats
from scipy.stats import spearmanr

df = pd.read_clipboard()#データをクリップボードに読み込み
df1 = df['A']#Aの列を読み込み
df2 = df['B']#Bの列を読み込み

correlation, pvalue = spearmanr(df1, df2)#スピアマンの順位相関分析
print("r=",correlation) #相関係数の出力
print("p=",pvalue)

2020/01/26追記
P値を追加

間違っているorその他ご指摘があればコメントください。

参照サイト①
Pythonでスピアマンの順位相関分析をする - Qiita
参照サイト②
Pandas でデータフレームから特定の行・列を取得する – Python でデータサイエンス

勉強になったサイト①
2変量の相関分析 PearsonとSpearmanの違いについて
勉強になったサイト②
pandasのデータフレームの要素を参照する【Python3】 | 全人類がわかる統計学
勉強になったサイト③
テキストファイルを処理しよう | 学生のためのPython講座