1.5.1 t检验
医学研究中,下面这些问题都涉及均值的比较:
- 两种治疗方案下,患者的平均血红蛋白水平是否不同?
- 接受不同护理措施的两组患者,平均疼痛评分相差多少?
- 同一批患者治疗前后,平均收缩压改变了多少?
- 一组受试者的平均检测值,与预先确定的临床参考值是否有差异?
t 检验回答的是总体均值或均值差的问题。 本节重点是:先按研究设计选对检验形式,再结合均值差、置信区间和 P 值作出判断。学完后,你应能识别独立与配对资料,明确比较方向,并把 R 输出写成有单位、有不确定性说明的结果。
1.5.1.1 先看测量之间有什么关系
选哪一种 t 检验,首先取决于观察之间的关系。两列数值排在一起,并不表示它们能够配对;两列长度相同,也不能证明两组相互独立。
| 研究设计 | 实际比较什么 | 选择 |
|---|---|---|
| 一组独立观察,与预先确定的参考值比较 | 总体均值与参考值之差 | 单样本 t 检验 |
| 两组不同的研究对象,每个对象贡献一次测量 | 两组总体均值之差 | 独立样本 t 检验 |
| 同一对象前后测量,或按设计形成的一一匹配 | 每对差值的总体均值 | 配对 t 检验 |
配对分析先在每一对内部求差,再考察这些差值的平均数。因此,其分布条件针对的是差值,各对之间还应相互独立。独立样本分析则分别估计两组均值及其抽样波动。
把同一患者前后两次测量当成两组独立资料,会忽略对象内的相关性,使标准误和统计推断失去相应依据。配对数据应按真实身份对应,不能仅按行号或数值大小拼接。
在独立样本 t 检验中,Welch 方法分别估计两组方差,允许两组离散程度不同;等方差 Student 方法使用合并方差,需要共同方差假设有合理依据。本节采用 Welch 方法。不要仅凭一次方差检验的 P 值决定是否使用等方差版本。
使用 t 检验还需关注连续结局的分布和异常值。小样本时,组内分布近似正态有助于保证推断;样本增大后,均值的正态近似通常有所改善,但严重偏态或极端值仍会影响结果。二分类结局需要另一类方法:若问题是调整多个因素后估计结局为阳性的关联,可阅读2.3.1 Logistic回归。
1.5.1.2 均值差要和抽样波动一起看
两组样本均值很少恰好相等。t 检验要判断的是:观察到的差值,相对于均值估计本身的波动有多大。
把第一组减第二组的样本均值差记为 ,零假设中的总体均值差记为 ,则:
这里的标准误 描述均值差估计的抽样波动,单位与结局相同;组内标准差描述个体之间的离散程度。两者回答不同问题。通常检验 ,即两组总体均值相同;预先指定其他差值时,检验的问题也随之改变。
均值差的置信区间补充了差值的大小和估计精度。95%置信水平指:在相同假设下反复抽样并用同一方法计算区间,长期约有95%的区间覆盖真实总体均值差。对当前研究,应结合区间范围判断哪些差值仍与数据相容。Gardner与Altman关于区间估计的讨论说明了为什么医学报告应同时关注差值和精度。
1.5.1.3 在 R 中固定比较方向
这里使用 MASS::birthwt 的189条母婴记录,比较出生体重 bwt(克)与孕期吸烟状态 smoke(0=不吸烟,1=吸烟)。两列均无缺失,实际分析纳入189条记录。变量来源与单位
下面是一份连续可运行的示例。需要安装 MASS 时,首次运行须能访问 CRAN。代码将不吸烟组设为第一个水平,所有差值均按“不吸烟减吸烟”解释。
if (!requireNamespace("MASS", quietly = TRUE)) {
utils::install.packages("MASS", repos = "https://cloud.r-project.org")
}
utils::data("birthwt", package = "MASS")
# 明确比较顺序与检验问题。
group_levels <- c(0, 1)
group_labels <- c("no", "yes") # no=不吸烟,yes=吸烟;差值为no减yes。
null_difference <- 0 # 零假设中的总体均值差,单位为克。
alternative <- "two.sided" # 双侧;greater/less针对no减yes的方向。
conf_level <- 0.95 # 95%置信区间;改为0.99时区间通常更宽。
equal_variance <- FALSE # FALSE为Welch;TRUE需要等方差依据。
# 只按本次分析所用列保留完整观察,不因其他列缺失删行。
analysis_data <- birthwt[c("bwt", "smoke")]
analysis_data <- analysis_data[stats::complete.cases(analysis_data), , drop = FALSE]
analysis_data$smoke <- factor(
analysis_data$smoke, levels = group_levels, labels = group_labels
)
# 公式左侧是连续结局,右侧是两个独立组。
test_result <- stats::t.test(
bwt ~ smoke, data = analysis_data,
mu = null_difference, alternative = alternative,
conf.level = conf_level, var.equal = equal_variance,
na.action = stats::na.fail
)
print(table(analysis_data$smoke))
print(test_result)bwt ~ smoke 将出生体重按吸烟状态分组。var.equal = FALSE 控制方差估计方式;alternative = "two.sided" 关注任一方向的差异。若预先设定单侧问题,"greater" 表示第一组总体均值更高,"less" 表示更低,不能看过差值方向再改选。
1.5.1.4 对着原始输出读结果
以上代码返回的组别人数与检验输出如下。no 为不吸烟组,yes 为吸烟组。
no yes
115 74
Welch Two Sample t-test
data: bwt by smoke
t = 2.7299, df = 170.1, p-value = 0.007003
alternative hypothesis: true difference in means between group no and group yes is not equal to 0
95 percent confidence interval:
78.57486 488.97860
sample estimates:
mean in group no mean in group yes
3055.696 2771.919先确认比较方向和有效人数,再读下面几个字段:
| R 字段 | 统计含义 | 本例怎样读 |
|---|---|---|
sample estimates |
两组样本均值 | 不吸烟组3055.696克,吸烟组2771.919克;前者减后者约283.78克 |
95 percent confidence interval |
总体均值差的95%置信区间 | 约78.57~488.98克,方向同样是不吸烟减吸烟 |
t |
差值偏离零假设的程度,以标准误为单位 | 2.7299表示观察差值约为其标准误的2.73倍 |
df |
确定参考 t 分布的自由度 | Welch 方法得到170.1,可以是小数 |
p-value |
零假设及检验假设成立时,出现当前或更极端检验统计量的概率 | 双侧 P=0.007003,提示数据与总体均值差为0的假设不太相容 |
为看清 t 值的来源,本例用完整精度计算的均值差约为283.78克,标准误约为103.95克,故 。这些数值均来自上述分析;实际计算使用未取舍小数的值。
78.57~488.98克描述两组总体均值之差的估计不确定性。判断个体出生体重的离散程度应看各组标准差;这个区间也不能当作某个新生儿出生体重的预测范围。
1.5.1.5 把统计判断写成医学结果
可以报告:“不吸烟组与吸烟组分别纳入115例和74例,平均出生体重分别为3055.70克和2771.92克。Welch 独立样本 t 检验估计,不吸烟组平均出生体重高283.78克,95%置信区间为78.57~488.98克,双侧 P=0.0070。”
该结果支持两组平均出生体重存在差异。差异是否具有临床重要性,还要结合研究目的和相应医学依据;ASA关于P值的说明强调,P 值本身不衡量差异大小或重要性。这里的吸烟分组来自观察资料,比较未调整其他因素,不能据此直接认定吸烟的因果效应。
迁移到自己的数据时,可使用同编号代码碎片。该模板接收已准备的两组独立观察,集中配置列名、组别顺序和检验参数,并提取组内标准差及结果表。单样本与配对形式在本节作概念比较;指定教学数据未提供适合本节的真实前后配对测量,因此这里不拼造配对演示。
把“不吸烟减吸烟”改为“吸烟减不吸烟”,均值差与 t 值变号,区间上下限相应反向;双侧 P 值不变。先写清临床比较方向,再设置因子水平,可以减少报告中的方向错误。
1.5.1.6 继续阅读
- Gardner MJ, Altman DG. Confidence intervals rather than P values: estimation rather than hypothesis testing. BMJ. 1986;292:746–750.
- Wasserstein RL, Lazar NA. The ASA’s Statement on p-Values: Context, Process, and Purpose. The American Statistician. 2016;70:129–133.
- R Core Team. Student’s t-Test:检验形式、方向、Welch设置和返回字段。