R でスピアマンの順位相関を計算する方法
統計学において、相関とは、2 つの変数間の関係の強さと方向を指します。相関係数の値の範囲は -1 から 1 までで、次のように解釈されます。
- -1: 2 つの変数間の完全な負の関係
- 0: 2 つの変数間に関係がない
- 1: 2 つの変数間の完全な正の関係
特別なタイプの相関関係はスピアマンの順位相関と呼ばれ、2 つのランク付けされた変数間の相関を測定するために使用されます。 (たとえば、クラス内での生徒の数学試験の得点の順位と、科学試験の得点の順位との相対的な関係)。
R の 2 つの変数間のスピアマン順位相関を計算するには、次の基本構文を使用できます。
corr <- cor. test (x, y, method = ' spearman ')
次の例は、この関数を実際に使用する方法を示しています。
例 1: ベクトル間のスピアマン ランクの相関
次のコードは、R の 2 つのベクトル間のスピアマン ランク相関を計算する方法を示しています。
#define data
x <- c(70, 78, 90, 87, 84, 86, 91, 74, 83, 85)
y <- c(90, 94, 79, 86, 84, 83, 88, 92, 76, 75)
#calculate Spearman rank correlation between x and y
horn. test (x, y, method = ' spearman ')
Spearman's rank correlation rho
data: x and y
S = 234, p-value = 0.2324
alternative hypothesis: true rho is not equal to 0
sample estimates:
rho
-0.4181818
結果から、Spearman 順位相関は-0.41818で、対応する p 値は0.2324であることがわかります。
これは、2 つのベクトル間に負の相関があることを示します。
ただし、相関の p 値は 0.05 以上であるため、相関は統計的に有意ではありません。
例 2: データ フレーム内の列間のスピアマン ランク相関
次のコードは、データ フレーム内の 2 つの列間のスピアマン ランク相関を計算する方法を示しています。
#define data frame
df <- data. frame (team=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'),
points=c(67, 70, 75, 78, 73, 89, 84, 99, 90, 91),
assists=c(22, 27, 30, 23, 25, 31, 38, 35, 34, 32))
#calculate Spearman rank correlation between x and y
horn. test (df$points, df$assists, method = 'spearman')
Spearman's rank correlation rho
data: df$points and df$assists
S = 36, p-value = 0.01165
alternative hypothesis: true rho is not equal to 0
sample estimates:
rho
0.7818182
結果から、Spearman 順位相関は0.7818で、対応する p 値は0.01165であることがわかります。
これは、2 つのベクトル間に強い正の相関関係があることを示しています。
相関関係の p 値は 0.05 未満であるため、相関関係は統計的に有意です。
追加リソース
R で偏相関を計算する方法
R で自己相関を計算する方法
R でスライド相関を計算する方法
スピアマン相関関係を APA 形式でレポートする方法