如何使用cor()计算r中的相关系数
您可以使用 R 中的cor()函数来计算变量之间的相关系数。
以下是使用此功能的最常见方法:
方法一:计算两个变量之间的皮尔逊相关系数
cor(df$x, df$y)
计算两个连续变量之间的相关性时,使用皮尔逊相关系数。 (例如身高和体重)
方法2:计算数据框中所有数值变量之间的皮尔逊相关系数
cor(df)
此方法将返回一个相关矩阵,其中包含数据框中数值变量的每个成对组合之间的皮尔逊相关系数。
方法三:计算两个变量之间的Spearman相关系数
cor(df$x, df$y, method=' spearman ')
计算两个排名变量之间的相关性时,使用 Spearman 相关系数。 (例如,学生数学考试成绩的排名与班级中科学考试成绩的排名)
方法四:计算两个变量之间的Kendall相关系数
cor(df$x, df$y, method=' kendall ')
当您想要使用 Spearman 相关性但样本量较小且存在很多联系时,请使用 Kendall 相关系数。
以下示例展示了如何在实践中使用每种方法,并使用 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:计算两个变量之间的 Pearson 相关系数
以下代码展示了如何使用cor()函数计算小时数和分数变量之间的 Pearson 相关系数:
#calculate Pearson correlation coefficient between hours and score
cor(df$hours, df$score)
[1] 0.8600528
学时和分数之间的 Pearson 相关系数为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:计算所有数值变量之间的 Pearson 相关系数
以下代码演示如何使用cor()函数创建一个相关矩阵,其中包含数据框中所有数值变量之间的 Pearson 相关系数:
#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之间的 Pearson 相关系数为-0.13 。
- 学时与成绩之间的 Pearson 相关系数为0.86 。
- prac_exams与分数之间的 Pearson 相关系数为-0.39 。
注意:每个单独变量与其自身之间的 Pearson 相关系数始终为 1,这就是为什么相关矩阵对角线上的每个值都是 1。
示例 3:计算两个变量之间的 Spearman 相关系数
以下代码显示如何使用cor()函数计算hours和prac_exams变量之间的 Spearman 相关系数:
#calculate Spearman correlation coefficient between hours and prac_exams cor(df$hours, df$prac_exams, method=' spearman ') [1] -0.1250391
小时数和prac_exams之间的 Spearman 相关系数为-0.125。
示例 4:计算两个变量之间的 Kendall 相关系数
以下代码显示如何使用cor()函数计算hours和prac_exams变量之间的 Kendall 相关系数:
#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 中执行其他常见任务: