生活知识集
第二套高阶模板 · 更大气的阅读体验

用R语言做假设检验,数据分析其实没那么难

发布时间:2025-12-15 21:58:19 阅读:220 次

在日常工作中,经常会遇到这样的问题:两个班级的平均成绩有没有明显差别?某种新药是不是真的比旧药更有效?这些问题背后其实都藏着一个统计学工具——假设检验。很多人一听到这个词就头大,觉得得翻厚厚的教材、列复杂的公式。其实在R语言里,做假设检验没那么麻烦,几行代码就能搞定。

从一个例子开始

假设你在公司做用户调研,收集了两组用户对某个新功能的满意度评分。你想知道这个新功能是不是真的让用户更满意了。这时候就可以用R来做t检验。

先把数据输入R:

satisfaction_old <- c(3, 4, 3, 5, 4, 3, 4)
satisfaction_new <- c(5, 4, 5, 6, 5, 4, 5, 6)

接着跑个独立样本t检验:

t.test(satisfaction_old, satisfaction_new)

R会马上输出结果,包括t值、自由度、p值。重点关注p值,如果它小于0.05,通常就认为两组差异显著,说明新功能确实带来了变化。

不止t检验,还有更多选择

不是所有数据都适合t检验。比如你调查的是用户“满意”“一般”“不满意”这种分类数据,就得用卡方检验。

举个例子,你想看男女用户对功能的反馈是否有差异:

survey_data <- matrix(c(25, 15, 10, 20, 18, 12), nrow = 2, byrow = TRUE)
rownames(survey_data) <- c("Male", "Female")
colnames(survey_data) <- c("Satisfied", "Neutral", "Dissatisfied")
chisq.test(survey_data)

运行完就能看到p值,判断性别和满意度之间有没有关联。

正态性检查别跳过

t检验有个前提:数据大致服从正态分布。可以先做个简单的检查:

shapiro.test(satisfaction_new)

如果p值大于0.05,说明数据符合正态性,继续用t检验没问题。否则可能需要考虑非参数方法,比如Wilcoxon检验:

wilcox.test(satisfaction_old, satisfaction_new)

配对数据怎么处理

有时候同一个用户用了新旧两个版本,你拿到了成对的数据。这时候要用配对t检验,更能反映真实变化。

before <- c(3, 4, 3, 5, 4)
after <- c(5, 4, 5, 6, 5)
t.test(before, after, paired = TRUE)

加上paired = TRUE,R就知道这是配对数据,分析会更准确。

R语言做假设检验,不需要手算公式,也不用担心出错。把数据准备好,选对方法,几行代码就能得出有说服力的结果。不管是写报告、做汇报,还是优化产品,都能快速拿到依据。工具就在手边,关键是怎么用起来。