如何使用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()函数计算hoursprac_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()函数计算hoursprac_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 中执行其他常见任务:

如何计算R中的滑动相关性
如何计算 R 中的自相关
如何在 R 中计算偏相关

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注