Cor() を使用して r の相関係数を計算する方法
R のcor()関数を使用して、変数間の相関係数を計算できます。
この機能の最も一般的な使用方法は次のとおりです。
方法 1: 2 つの変数間のピアソン相関係数を計算する
cor(df$x, df$y)
2 つの連続変数間の相関を計算する場合は、ピアソン相関係数を使用します。 (身長や体重など)
方法 2: データ フレーム内のすべての数値変数間のピアソン相関係数を計算する
cor(df)
このメソッドは、データ フレーム内の数値変数のペアごとの組み合わせ間のピアソン相関係数を含む相関行列を返します。
方法 3: 2 つの変数間のスピアマン相関係数を計算する
cor(df$x, df$y, method=' spearman ')
ランク付けされた 2 つの変数間の相関を計算する場合は、スピアマンの相関係数を使用します。 (例: クラス内での生徒の数学試験のスコアのランキングと科学試験のスコアのランキング)
方法 4: 2 つの変数間のケンダル相関係数を計算する
cor(df$x, df$y, method=' kendall ')
スピアマンの相関係数を使用したいが、サンプル サイズが小さく、同数が多い場合は、ケンダルの相関係数を使用します。
次の例は、8 人の異なる生徒の学習時間数、受験した模擬試験の数、および最終試験の成績を示す R の次のデータ フレームを使用して、各メソッドを実際に使用する方法を示しています。
#create data frame
df <- data. frame (hours=c(1, 1, 3, 2, 4, 3, 5, 6),
prac_exams=c(4, 3, 3, 2, 3, 2, 1, 4),
score=c(69, 74, 74, 70, 89, 85, 99, 90))
#view data frame
df
hours prac_exams score
1 1 4 69
2 1 3 74
3 3 3 74
4 2 2 70
5 4 3 89
6 3 2 85
7 5 1 99
8 6 4 90
例 1: 2 つの変数間のピアソン相関係数を計算する
次のコードは、 cor()関数を使用して、時間変数とスコア変数の間のピアソン相関係数を計算する方法を示しています。
#calculate Pearson correlation coefficient between hours and score
cor(df$hours, df$score)
[1] 0.8600528
時間とスコアの間のピアソン相関係数は0.86 であることがわかりました。
データ フレームに NA 値がある場合は、 use=’complete.obs’引数を使用して、NA 値のない行のみを使用できることに注意してください。
#calculate Pearson correlation coefficient and ignore any rows with NA cor(df$hours, df$score, use=' complete.obs ')
例 2: すべての数値変数間のピアソン相関係数を計算する
次のコードは、 cor()関数を使用して、データ フレーム内のすべての数値変数間のピアソン相関係数を含む相関行列を作成する方法を示しています。
#calculate Pearson correlation coefficient between all numeric variables
cor(df)
hours prac_exams score
hours 1.0000000 -0.1336063 0.8600528
prac_exams -0.1336063 1.0000000 -0.3951028
score 0.8600528 -0.3951028 1.0000000
結果を解釈する方法は次のとおりです。
- 時間とprac_examsの間のピアソン相関係数は-0.13です。
- 時間とスコアの間のピアソン相関係数は0.86です。
- prac_examsとスコアの間のピアソン相関係数は-0.39です。
注: 個々の変数とそれ自体の間のピアソン相関係数は常に 1 です。そのため、相関行列の対角に沿った各値は 1 になります。
例 3: 2 つの変数間のスピアマン相関係数を計算する
次のコードは、 cor()関数を使用して、時間とprac_exams変数の間のスピアマン相関係数を計算する方法を示しています。
#calculate Spearman correlation coefficient between hours and prac_exams cor(df$hours, df$prac_exams, method=' spearman ') [1] -0.1250391
時間とprac_examsの間のスピアマン相関係数は-0.125 であることがわかります。
例 4: 2 つの変数間の Kendall 相関係数を計算する
次のコードは、 cor()関数を使用して、時間変数とprac_exams変数の間のケンダル相関係数を計算する方法を示しています。
#calculate Kendall's correlation coefficient between hours and prac_exams cor(df$hours, df$prac_exams, method=' kendall ') [1] -0.1226791
時間とprac_exams の間の Kendall の相関係数は-0.123 であることがわかります。
追加リソース
次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。