p值的计算方向 取决于 备择假设的方向,即使统计量值相同,p值的位置也会不同。

原因解析

1. 单侧检验 vs 双侧检验

  • less:检验统计量是否 显著小于 零假设值
  • greater:检验统计量是否 显著大于 零假设值
  • two-sided:检验统计量是否 显著不同于 零假设值(两个方向)

2. p值的计算位置

即使观察到的统计量值相同,p值的计算区域不同:

# 假设零分布是正态分布,观察到的统计量 = 2.0
 
# greater: p值 = P(stat ≥ 2.0)
p_greater <- 1 - pnorm(2.0)  # 右尾面积
 
# less: p值 = P(stat ≤ 2.0)  
p_less <- pnorm(2.0)         # 左尾面积
 
# two-sided: p值 = 2 × min(P(stat ≤ 2.0), P(stat ≥ 2.0))
p_twosided <- 2 * min(p_less, p_greater)

选择正确的方向

选择取决于研究问题:

  • 想要证明”大于”:用 greater
  • 想要证明”小于”:用 less
  • 想要证明”不同”:用 two-sided

关键点:同样的统计量值,在不同的备择假设下,p值的计算方法和意义完全不同!

你说的情况是:

chisq.test(gss$party, gss$NASA)
 
null_dist %>% get_pvalue(obs_stat = obs_stat, direction = "greater")

结果一致,但你觉得奇怪,因为 卡方检验不是有方向的检验。


关键点解释

  1. 卡方统计量的性质

    • 卡方统计量本质上是

    • 永远是 非负数。

    • 也就是说,统计量不可能为负,因此检验的分布是从 0 开始往右拉长的单峰分布。

  2. 检验的方向

    • 在大多数检验里(比如 t 检验),我们要考虑左尾、右尾,甚至双尾。
    • 但是在卡方检验里,偏离零越大,证据越强,所以显著性区间永远在右尾。
    • 所以“greater”就是唯一有意义的方向。
  3. 为什么结果一致

    • chisq.test() 默认就是计算 右尾概率:

    • 而你在 get_pvalue(..., direction = "greater") 时,做的也是一样的事情。

    • 所以两个结果完全一致,是正常的。

  • 卡方检验没有“less”或“双尾”的概念,只有“greater”。
  • 你看到结果一致,是因为两个函数都在计算右尾概率。

要不要我帮你用一个小例子(比如 2×2 列联表)演示一下 chisq.test()、greater、less 的结果对比?这样你会更直观地看到为什么只有 greater 有意义。

**Effect size(效应量)**在统计检验里是一个非常核心但经常被忽视的概念。它和 p 值 有很大区别:

  • p 值 告诉你“这个结果是否在统计上显著”。
  • 效应量 告诉你“这个结果在实际意义上有多大”。

1. 什么是效应量 (Effect size)

效应量衡量的是 变量之间关系的强弱 或者 组间差异的大小,而不仅仅是“是否显著”。
它不依赖于样本量(至少不像 p 值那样敏感)。

常见定义:

  • 差异类效应量:两组之间均值差异相对于总体标准差的比例。
  • 关联类效应量:两个变量之间相关性的强度。
  • 解释变异比例:模型能解释多少方差。

2. 常见的效应量指标

(a) 两组差异

  • Cohen’s d:

    衡量两组均值差异的标准化大小。

    • ≈ 小效应
    • ≈ 中等效应
    • ≈ 大效应
  • Hedges’ g: 类似 d,但对小样本做了修正。

(b) 方差分析 (ANOVA)

  • η² (Eta squared):

    表示组间差异占总方差的比例。

  • Partial η²: 在控制其他因素后,某一自变量解释的方差比例。

(c) 相关性

  • Pearson’s r:

    • 0.1 ≈ 小效应
    • 0.3 ≈ 中效应
    • 0.5 ≈ 大效应

(d) 回归

  • R² (决定系数): 模型解释的方差比例。

  • f² (Cohen’s f squared):

(e) 分类检验

  • Cramér’s V (基于卡方):

    衡量列联表中分类变量之间的关联强度。


3. 为什么效应量重要

  • p 值显著 ≠ 效应大:大样本下,极小的差异也可能显著。
  • 效应量让结果有实际意义:告诉你这个差异/关系是否值得关注。
  • 在科研中,报告效应量越来越成为标准(比如 APA 要求同时报告 p 值和效应量)。

4. 举个例子

假设你研究两种教学方法对考试成绩的影响:

  • A 组平均分 = 80,B 组平均分 = 82,样本量 = 1000。
  • 检验结果可能 p < 0.01(显著),但 Cohen’s d = (82-80)/10 = 0.2(小效应)。
    👉 说明方法 B 在统计上显著优于方法 A,但差异不大,实际应用意义有限。

1. 为什么右侧观测值,却要左右都涂色?

  • 双尾检验的逻辑是:我们怀疑原假设不对,但没有预设它会变大还是变小。

  • 因此,“极端”要在两个方向都考虑:

    • 右边极端:统计量比观测值更大的情况
    • 左边极端:统计量比观测值更小(同等“远离零”)的情况

换句话说,虽然你的观测值落在右侧,但如果它落在左侧,偏离的程度相同,也同样算作“反对原假设”的证据。
所以程序自动在左右两边同时涂色。


2. 怎么解释双尾结果?

  • 统计量落在右尾 → 数据提供的证据是“比原假设预期更大”。

  • 双尾涂色 → 我们在计算 p 值 时,既考虑“比观测值更大的极端情况”,也考虑“另一边对称的极端情况”。

  • p 值 = 两个尾部极端概率的总和。

    • 直观上:这是“如果原假设成立,那么得到一个至少像现在这么极端(不管方向)的结果”的概率。

3. 如果你想只在右边涂色?

那就说明你的假设是 单尾的(比如只关心“变大”),代码应该写成:

null_dist %>%
  visualize() +
  shade_p_value(obs_stat = point_estimate, direction = "greater")

看起来 p 值是 0.046,这是非常小的——如果每周的真实平均工作小时数实际上是 40,那么我们的样本平均值与 40 相距如此远(1.382 小时)的概率将是 0.046

两侧的红色阴影区域(p值):

右侧阴影:代表“随机偶然性导致结果好于观察值”的概率。

左侧阴影:代表“随机偶然性导致结果差于观察值”的概率(这里的“差”是相反方向,但其绝对值同样大)。

总面积:代表“随机偶然性导致一个与观察值同样离谱(无论方向) 的结果”的总概率。