r - R计算相关系数
问题描述
我有一个包含 3 个变量“年龄”、“信心”和“国家名称”的数据框。我想计算不同国家的年龄和信心之间的相关性。所以我编写了以下命令来计算相关系数。
correlate <- evs%>%group_by(countryname) %>% summarise(c=cor(age,confidence))
但我发现输出“c”中有很多缺失值。我想知道这是否意味着这些国家/地区的 IV 和 DV 之间几乎没有相关性,还是我的命令有问题?
解决方案
NA
相关矩阵中的 表示您的观察中有值NA
(即缺失值)。的默认行为cor
是返回NA
“只要其贡献的观察结果之一是 NA”的相关性(来自手册)。
这意味着即使您只有一千个有用数据集中的一个NA
,日期中的单个也会给出相关性。NA
NA
你可以从这里做什么:
- 您应该调查这些 NA,对其进行计数并确定您的数据集是否包含足够的可用数据。找出哪些变量受 NA 影响以及影响程度。
use
调用时添加参数cor
。通过这种方式,您可以指定算法应如何处理缺失值。查看手册(带有?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 包于 2021-10-16 创建(v2.0.1)
推荐阅读
- javascript - Vue如何将元素添加到v-for循环
- sql - SQL JSON 帮助 | 选择具有特定 JSON 值的所有记录
- grpc - 具有相同代码的主机之间的 gRPC HTTP/2 设置不同——它们在哪里设置?
- javascript - 从复选框中删除是勾选
- python - 尝试在 Dockerfile 中安装 Comet ML 3.18 时出现 glibc 的 Conda UnsatisfiableError
- tensorflow - 如何修改镜像策略/分布式训练的分类交叉熵?
- amazon-web-services - 有没有办法缩短在 AWS IoT 中触发生命周期事件的时间?
- ios - Swift & Navigation:如何替换 ViewController 并发送一些参数?
- arrays - a[0] 指向哪里?
- python - 如何使用文件处理添加创建一个 txt 文件,该文件将玩家的分数保存在 python 上的简单猜数字游戏中?