You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R按国家分组计算age与confidence相关系数出现大量缺失值原因咨询

问题原因排查

首先可以明确:cor()返回NA和相关性大小完全无关,哪怕相关性为0,只要满足计算条件也会返回明确数值,出现NA既不代表相关性极低,你的代码核心逻辑也没有错误,是边界情况没有处理导致的,常见原因有三类:

  • 变量存在缺失值:cor()默认参数为use = "everything",只要输入的age或confidence中存在任意缺失值,就会返回NA。你可以修改代码指定缺失值处理规则,比如用双完本观测计算:
    correlate <- evs %>% 
      group_by(countryname) %>% 
      summarise(c = cor(age, confidence, use = "complete.obs"))  
    
  • 分组后有效样本量不足:如果某个国家分组后,两个变量都有有效值的样本数<2,或者所有age取值完全相同、所有confidence取值完全相同,相关系数计算时分母为0,也会返回NA。
  • 变量类型错误:确认age和confidence都是数值型变量,如果其中一个是因子型、字符型,也会导致计算失败返回NA。

快速验证方法

你可以在统计代码中加入样本量统计项,快速定位问题:

correlate <- evs %>% 
  group_by(countryname) %>% 
  summarise(
    total_n = n(),
    complete_n = sum(complete.cases(age, confidence)),
    c = cor(age, confidence, use = "complete.obs")
  )  

查看返回结果里的complete_n列,如果数值<2,对应国家的相关系数返回NA就是正常情况。

内容的提问来源于stack exchange,提问作者Xingchen LIU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 15:15:01