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

基于p值区间的假设检验决策区域R绘图需求

R实现符号检验区间p值的区域绘图

步骤1:准备数据(替换为你的真实数据)

先构造符合需求的示例数据,你可以直接替换成自己的M、pmin、pmax向量:

library(tidyverse)

# 生成1000个-1到1的M值
set.seed(123) # 设定随机种子保证结果可复现
M <- seq(-1, 1, length.out = 1000)
# 模拟pmin和pmax(保证pmin ≤ pmax,且p值在0-1范围内)
pmin <- runif(1000, 0, 0.8)
pmax <- pmin + runif(1000, 0, 0.2)
pmax <- ifelse(pmax > 1, 1, pmax)

# 合并为数据框,设定显著性水平α
alpha <- 0.05
df <- tibble(M, pmin, pmax) %>%
  mutate(
    # 按规则定义每个M对应的决策区域
    region = case_when(
      pmax < alpha ~ "拒绝H₀",
      alpha < pmin ~ "接受H₀",
      TRUE ~ "待定"
    )
  )

步骤2:绘制区域填充图

使用ggplot2实现带颜色分区的绘图,核心用geom_ribbon填充区间并按决策规则着色:

ggplot(df, aes(x = M)) +
  # 填充pmin到pmax的区间,按区域映射颜色
  geom_ribbon(aes(ymin = pmin, ymax = pmax, fill = region), alpha = 0.6) +
  # 绘制pmin和pmax的边界线
  geom_line(aes(y = pmin), color = "black", linewidth = 0.5) +
  geom_line(aes(y = pmax), color = "black", linewidth = 0.5) +
  # 添加α水平参考线
  geom_hline(yintercept = alpha, color = "darkblue", linetype = "dashed", linewidth = 1) +
  # 手动指定区域颜色(匹配需求:绿=接受,红=拒绝,黄=待定)
  scale_fill_manual(values = c("接受H₀" = "green", "拒绝H₀" = "red", "待定" = "yellow")) +
  # 坐标轴与主题设置
  labs(
    x = "M值",
    y = "p值",
    fill = "决策区域",
    title = "符号检验区间p值决策图"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5),
    legend.position = "top"
  )

关键代码说明

  • geom_ribbon:负责填充pmin与pmax之间的区间,通过fill = region绑定决策区域与颜色,alpha调整透明度避免遮挡边界线。
  • geom_line:绘制pmin和pmax的上下边界,让区间轮廓更清晰。
  • scale_fill_manual:完全按你的需求指定区域颜色,可根据需要调整色值。

只需将模拟数据部分替换为你的真实数据,调整alpha为你的显著性水平即可生成目标图形。

内容的提问来源于stack exchange,提问作者John hall

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 15:40:01