如何计算 r 中与缺失值的相关性


当一个或多个变量存在缺失值时,您可以使用以下方法计算 R 中的相关系数:

方法一:计算存在缺失值的相关系数

 cor(x, y, use=' complete.obs ')

方法2:计算存在缺失值的相关矩阵

 cor(df, use=' pairwise.complete.obs ')

以下示例展示了如何在实践中使用每种方法。

示例1:计算存在缺失值的相关系数

假设我们尝试使用cor()函数计算存在缺失值时两个变量之间的皮尔逊相关系数:

 #create two variables
x <- c(70, 78, 90, 87, 84, NA, 91, 74, 83, 85)
y <- c(90, NA, 79, 86, 84, 83, 88, 92, 76, 75)

#attempt to calculate correlation coefficient between x and y
cor(x, y)

[1] NA

cor()函数返回NA ,因为我们没有指定如何处理缺失值。

为了避免这个问题,我们可以使用use=’complete.obs’参数,以便 R 知道仅使用两个值都存在的成对观察:

 #create two variables
x <- c(70, 78, 90, 87, 84, NA, 91, 74, 83, 85)
y <- c(90, NA, 79, 86, 84, 83, 88, 92, 76, 75)

#calculate correlation coefficient between x and y
cor(x, y, use=' complete.obs ')

[1] -0.4888749

两个变量之间的相关系数为-0.488749

请注意, cor()函数仅使用计算相关系数时存在值的两个成对组合。

示例2:计算存在缺失值的相关矩阵

假设我们尝试使用cor()函数在存在缺失值时为具有三个变量的数据框创建相关矩阵

 #create data frame with some missing values
df <- data. frame (x=c(70, 78, 90, 87, 84, NA, 91, 74, 83, 85),
                 y=c(90, NA, 79, 86, 84, 83, 88, 92, 76, 75),
                 z=c(57, 57, 58, 59, 60, 78, 81, 83, NA, 90))

#attempt to create correlation matrix for variables in data frame
cor(df)

   X Y Z
x 1 NA NA
y NA 1 NA
z NA NA 1

cor()函数在多个位置返回NA ,因为我们没有指定如何处理缺失值。

为了避免这个问题,我们可以使用use=’pairwise.complete.obs’参数,以便 R 知道仅使用两个值都存在的成对观察:

 #create data frame with some missing values
df <- data. frame (x=c(70, 78, 90, 87, 84, NA, 91, 74, 83, 85),
                 y=c(90, NA, 79, 86, 84, 83, 88, 92, 76, 75),
                 z=c(57, 57, 58, 59, 60, 78, 81, 83, NA, 90))

#create correlation matrix for variables using only pairwise complete observations
cor(df, use=' pairwise.complete.obs ')

           X Y Z
x 1.0000000 -0.4888749 0.1311651
y -0.4888749 1.0000000 -0.1562371
z 0.1311651 -0.1562371 1.0000000

现在显示数据库中每个变量成对组合的相关系数。

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何在R中找到相关系数的P值
如何在 R 中计算 Spearman 相关性
如何计算R中的滑动相关性

添加评论

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