在日常工作中,经常会遇到这样的问题:两个班级的平均成绩有没有明显差别?某种新药是不是真的比旧药更有效?这些问题背后其实都藏着一个统计学工具——假设检验。很多人一听到这个词就头大,觉得得翻厚厚的教材、列复杂的公式。其实在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语言做假设检验,不需要手算公式,也不用担心出错。把数据准备好,选对方法,几行代码就能得出有说服力的结果。不管是写报告、做汇报,还是优化产品,都能快速拿到依据。工具就在手边,关键是怎么用起来。