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

如何用R检验毕业生与本科生的SAT平均分数是否相同?

检验毕业生与本科生SAT平均分数差异的方法及R实现

一、核心统计方法与公式

检验两组独立样本的均值是否相同,最常用的是独立样本t检验,需满足数据正态性和方差齐性的前提(若不满足可考虑非参数检验如曼-惠特尼U检验):

  • 方差齐性时,t统计量公式:
    t = (x̄₁ - x̄₂) / √(sₚ²(1/n₁ + 1/n₂))
    其中sₚ² = [(n₁-1)s₁² + (n₂-1)s₂²]/(n₁+n₂-2)为合并方差,x̄代表组均值,s为组标准差,n为组样本量。
  • 方差不齐时,采用Welch校正t检验,自由度调整公式:
    df = (s₁²/n₁ + s₂²/n₂)² / [(s₁²/n₁)²/(n₁-1) + (s₂²/n₂)²/(n₂-1)]

二、R代码实现步骤

1. 正确筛选分组数据(修正你的subset用法)

你之前的subset代码聚焦于年龄、性别筛选,未针对Status(毕业生/本科生)和SAT分数提取数据,正确写法如下:

# 提取毕业生的SAT分数列
grad_sat <- subset(mydata2, Status == "Graduate", select = SAT)
# 提取本科生的SAT分数列
undergrad_sat <- subset(mydata2, Status == "Undergraduate", select = SAT)

2. 执行t检验

方式一:直接基于数据框分组(更高效)

无需提前筛选,直接通过Status分组调用t.test,同时可先做方差齐性检验:

# 方差齐性检验(判断用哪种t检验)
var_check <- var.test(SAT ~ Status, data = mydata2)
print(var_check)

# 根据方差齐性结果选择检验类型
if (var_check$p.value > 0.05) {
  # 方差齐,用标准独立样本t检验
  t_result <- t.test(SAT ~ Status, data = mydata2, var.equal = TRUE)
} else {
  # 方差不齐,用Welch校正t检验(默认即为此方法)
  t_result <- t.test(SAT ~ Status, data = mydata2)
}
print(t_result)

方式二:用提前筛选好的向量

若已通过subset得到两组数据,可直接传入t.test:

t_result <- t.test(grad_sat, undergrad_sat)
print(t_result)

3. 结果解读

  • 关注p值:若p>0.05,无法拒绝“两组SAT平均分相同”的原假设;若p<0.05,则说明两组平均分存在显著差异。
  • 输出中的mean in group Graduate和mean in group Undergraduate即为两组的平均SAT分数。

内容的提问来源于stack exchange,提问作者Vithy Suganthan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 15:31:49