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

如何在R散点图中添加校正后p值与相关系数?

解决方案:分面散点图添加校正后p值与相关系数

核心思路是预先批量计算带校正p值的相关性统计量,再将其与分面散点图匹配自动化添加,避免手动插入文本的繁琐,具体步骤如下:


1. 批量计算校正后的相关性统计量

使用correlation包一次性计算所有变量对的Kendall相关系数与Holm校正p值,并整理成与分面变量匹配的格式:

library(dplyr)
library(correlation)
library(glue)

# 计算带Holm校正的相关性
cor_stats <- correlation(
  data = apq_apq156_ctq_metadjagg_fshort_df,
  select = "resp_percentage",
  select2 = c("apqg_iv", "apqg_pp", "apqg_pm", "apqg_id", "apqg_cp"),
  method = "kendall",
  p_adjust = "holm",
  ci = 0.95
) |>
  # 提取并重命名关键列,匹配分面变量名
  select(Parameter2, r, p) |>
  rename(apq_scales = Parameter2, tau = r, p_adj = p) |>
  # 格式化显示文本,优化p值展示逻辑
  mutate(
    cor_label = case_when(
      p_adj < 0.001 ~ glue("τ = {round(tau, 2)}\np_adj < 0.001"),
      TRUE ~ glue("τ = {round(tau, 2)}\np_adj = {round(p_adj, 3)}")
    )
  )

2. 绘制分面散点图并添加统计量

在原有ggplot代码基础上,通过geom_text()将预计算的统计量文本映射到对应分面,无需手动逐个插入:

library(ggplot2)
library(tidyr)
library(forcats)

adj_apq_scat_gg <- apq_apq156_ctq_metadjagg_fshort_df |>  
  pivot_longer(apqg_iv:apqg_cp, names_to = "apq_scales", values_to = "apq_values") |>  
  ggplot(aes(x = resp_percentage, y = apq_values)) +
  geom_point(size=2, color="#808080") +
  geom_smooth(method="lm", se=TRUE, fullrange=FALSE, level=0.95, color="#4169E1") + 
  facet_wrap(vars(fct_inorder(apq_scales)), ncol = 5) + 
  labs(x = "Response Percentage Adjective Task", y = "APQ Scale Value") +
  # 添加校正后的相关系数与p值,定位在分面右上角
  geom_text(
    data = cor_stats,
    aes(x = Inf, y = Inf, label = cor_label),
    hjust = 1.1, vjust = 1.1, size = 3.5,
    inherit.aes = FALSE # 避免继承主图的x/y映射
  )

# 输出图形
adj_apq_scat_gg

针对你原有方法的补充说明

  1. 关于stat_cor():该函数仅在单个分面内计算原始p值,不支持跨分面的p值校正,因此必须预先批量计算校正后p值再添加,无法直接通过stat_cor()实现。
  2. 关于correlation::cor_test():若想批量生成单个散点图,可结合purrr循环处理,但分面图的方式更高效简洁,无需单独拼接多个图形。
  3. 关于correlation::correlation()的可视化:该函数默认输出相关性矩阵的星形图,若要得到散点图,需自行用ggplot绘制,再将其计算的校正统计量整合到图中,这正是上述方案的核心逻辑。

内容的提问来源于stack exchange,提问作者Constantin Schmitt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 01:27:10