繁体   English   中英

R计算相关系数

[英]R calculate the correlation coefficient

我有一个包含 3 个变量“年龄”、“信心”和“国名”的数据框。我想比较不同国家的年龄和信心之间的相关性。所以我写了以下命令来计算相关系数。

correlate <- evs%>%group_by(countryname) %>% summarise(c=cor(age,confidence))  

但是我发现输出“c”中有很多缺失值。 我想知道这是否意味着这些国家的 IV 和 DV 之间几乎没有相关性,还是我的命令有问题?

相关矩阵中的NA意味着您的观察中有NA值(即缺失值)。 cor的默认行为是返回NA的相关性“每当它的一个贡献观察是 NA”(来自手册)。

这意味着即使在一千个有用的数据集中只有一个NA日期中的单个NA也会给出相关性NA

你可以从这里做什么:

  1. 您应该调查这些 NA,对其进行计数并确定您的数据集是否包含足够的可用数据。 找出哪些变量受 NA 影响以及影响程度。
  2. 在调用cor时添加参数use 通过这种方式,您可以指定算法如何处理缺失值。 查看手册(带有?cor )以了解您有哪些选项。 在你的情况下,我只会使用use="complete.obs" 只有 2 个变量,大多数(但不是全部)选项将产生相同的结果。

还有一些解释:

age <- 18:35
confidence <- (age - 17) / 10 + rnorm(length(age))
cor(age, confidence)
#> [1] 0.3589942

以上是与所有数据的相关性。 现在让我们设置一些 NA 并重试:

confidence[c(1, 6, 11, 16)] <- NA
cor(age, confidence) # use argument will implicitely be "everything".
#> [1] NA

这给出了NA因为一些置信值是NA 下一个语句仍然给出一个结果:

cor(age, confidence, use="complete.obs")
#> [1] 0.3130549

reprex 包(v2.0.1) 于 2021 年 10 月 16 日创建

我知道 R 中的两种计算方式;

  • 通过内置的 cor() 函数,
  • 用代码手动计算

使用内置的cor()函数进行计算:

 # importing df: state_crime <- read.csv("~/Documents/R/state_crime.csv") # checking colnames: colnames(state_crime) [1] "state" "year" "population" [4] "murder_rate" # correlation coefficient between population and murder rate: cor(state_crime$population, state_crime$murder_rate, method = "pearson")
 [1] -0.0322388

用代码手动计算:

 # creating columns for "deviation from the mean" for both variables: state_crime <- state_crime %>% mutate(dev_mean_murderrate = (state_crime$murder_rate - mean(murder_rate))) %>% mutate(dev_mean_population = (state_crime$population - mean(population))) %>% data.frame() # implementing the formula: r=∑(x−mx)(y−my)∑(x−mx)2∑(y−my)2 sum(state_crime$dev_mean_population * state_crime$dev_mean_murderrate) / sqrt(sum((state_crime$murder_rate - mean(state_crime$murder_rate))**2) * sum((state_crime$population - mean(state_crime$population))**2) )
 [1] -0.0322388

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM