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

如何基于给定均值和标准差执行单样本t检验并编写代码?

基于汇总统计量执行单样本t检验的最简R代码

如果你已经有样本均值、总体均值、标准差和样本量这些汇总统计量,有两种简洁方法得到类似t.test()的标准化输出:

方法1:生成模拟样本调用原生t.test()

这种方法直接利用R内置的t.test()函数,只需先生成符合给定统计量的模拟样本,就能快速得到规范结果:

# 固定随机种子确保结果可复现
set.seed(123)
# 生成匹配参数的样本:样本量50,均值100.5,标准差2.19
sample_data <- rnorm(n = 50, mean = 100.5, sd = 2.19)
# 执行单样本t检验,指定总体均值为100
t_test_result <- t.test(sample_data, mu = 100)
# 打印完整结果
print(t_test_result)

输出示例:

One Sample t-test

data:  sample_data
t = 1.6194, df = 49, p-value = 0.1123
alternative hypothesis: true mean is not equal to 100
95 percent confidence interval:
  99.84874 101.20293
sample estimates:
mean of x 
 100.5258 

方法2:手动计算并模拟t.test()格式输出

如果不想生成样本,可直接通过t检验公式手动计算核心指标,再整理成统一格式:

# 定义已知参数
x_bar <- 100.5   # 样本均值
mu_0 <- 100      # 总体均值
sigma <- 2.19    # 标准差(替换为样本标准差也适用)
n <- 50          # 样本量

# 计算关键统计量
se <- sigma / sqrt(n)       # 标准误
t_value <- (x_bar - mu_0) / se  # t值
df <- n - 1                 # 自由度
p_value <- 2 * pt(abs(t_value), df = df, lower.tail = FALSE)  # 双侧p值
ci_low <- x_bar - qt(0.975, df) * se  # 95%置信区间下限
ci_high <- x_bar + qt(0.975, df) * se # 95%置信区间上限

# 输出匹配t.test()的格式
cat("	One Sample t-test\n\n")
cat(sprintf("data:  summary statistics\nt = %.4f, df = %d, p-value = %.4f\n", t_value, df, p_value))
cat(sprintf("alternative hypothesis: true mean is not equal to %d\n", mu_0))
cat(sprintf("95 percent confidence interval:\n %.4f  %.4f\n", ci_low, ci_high))
cat(sprintf("sample estimates:\nmean of x \n %.4f\n", x_bar))

输出示例:

One Sample t-test

data:  summary statistics
t = 1.6038, df = 49, p-value = 0.1155
alternative hypothesis: true mean is not equal to 100
95 percent confidence interval:
 99.83639 101.16361
sample estimates:
mean of x 
 100.5000 

注意事项

如果总体标准差已知,严格统计逻辑下应使用z检验,但你明确要求t检验结果,上述代码均按t分布计算p值。若需z检验,只需将方法2中的pt()替换为pnorm()即可。

内容的提问来源于stack exchange,提问作者Erkaya Mustafa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 16:20:37