从N/均值/标准差计算R T-检验

6

我知道如果我有一组数据,我可以运行 t.test 进行 T 检验。但我只知道每组的计数、平均值和标准差。我相信在 R 中一定有方法可以解决这个问题,但我想不出来。请帮忙!


我认为这个问题更适合在crossvalidated.com上提问。 - Sacha Epskamp
3个回答

14

使用公式进行不等方差和不等样本大小的t检验。请注意,这适用于未配对t检验。

t.test.fromSummaryStats <- function(mu,n,s) {
   -diff(mu) / sqrt( sum( s^2/n ) )
}

mu <- c(.1,.136)
n <- c(5,7)
s <- c(.01,.02)
t.test.fromSummaryStats(mu,n,s)

1
在将其用于任何重要事项之前,请务必检查其准确性! - Ari B. Friedman
嗯,那确实是一种方法。我必须做一个Welch's T-Test,这有点更难,但是我想我可以自己做。 - Xodarap
可能在CRAN软件包中有一个函数可以实现它,但这是一个足够简单的计算,自己编写一个函数也不会太难(当然,如果已经有现成的函数可用,使用预先存在的函数有其优点:它经过测试,您的解决方案更易于转移)。 - Ari B. Friedman

10
你可以手动计算公式或进行模拟。但如果你想要快速调用函数,BSDA package中有?tsum.test。例如,这使得Welch t-test变得非常容易。使用@AriB.Friedman的数字:
library(BSDA)
tsum.test(mean.x=.1,   s.x=.01, n.x=5,
          mean.y=.136, s.y=.02, n.y=7)
# 
#         Welch Modified Two-Sample t-Test
# 
# data:  Summarized x and y
# t = -4.0988, df = 9.238, p-value = 0.002538
# alternative hypothesis: true difference in means is not equal to 0
# 95 percent confidence interval:
#  -0.05579113 -0.01620887
# sample estimates:
# mean of x mean of y 
#     0.100     0.136

6

如果您不想自己重新编写公式,您可以模拟具有与您相同摘要的数据集,然后分析模拟数据。 MASS包中的mvrnorm函数可用于生成具有给定均值和方差的正态数据(将empirical参数设置为TRUE)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接