首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中t检验的模拟

R中t检验的模拟
EN

Stack Overflow用户
提问于 2014-01-08 23:35:55
回答 2查看 1.9K关注 0票数 1

我正在寻找一种方法来模拟一个简单的t测试的力量在不同的样本大小。我的想法是生成400个随机正态分布样本,每个样本的均值为5,方差为1,并对每一个样本进行t检验,假设真实均值为4,即t检验将采用以下形式:

T=(平均(X)-4)*sqrt(N)/sd(X)#对于每个样本x,包括n个观测值。

为了比较,我想,前100个样本包括10个,接下来100个是100个,接下来100个是1000个,最后100个是500个,我认为这是上限。必须对每一个样本进行t检验.

最后,我想看看每个样本组(我们称之为n10、n100、n1000、n5000,取决于它们包含了多少个观察)中的百分比--我的(假)假设被拒绝了。

你能帮我写相应的R码吗?我知道这些小命令,但很难把它们整合在一起。这是一个很好的练习,希望我能够修改它,并将它用于不同的目的。

提前谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-09 00:26:19

以下是400 t.tests of n=10的一条班轮:

代码语言:javascript
复制
R>simulations <- replicate(400, t.test(rnorm(10, mean=5, sd=1), mu=4),
                           simplify=FALSE);

然后你可以分析它:

代码语言:javascript
复制
R>table(sapply(simulations, "[[", "p.value") < .05)
FALSE  TRUE 
   75   325 
票数 2
EN

Stack Overflow用户

发布于 2014-01-09 00:35:38

我还在学R,所以要小心处理:

代码语言:javascript
复制
n <- 5
N <- 100
samplesizes <- as.integer(10^(1:n))
set.seed(1) 

# generate samples
samples <- replicate(N, mapply(rnorm, samplesizes, mean=4, sd=sqrt(1)))

# perform t-tests
t.tests <- lapply(samples, function(x) t.test(x, mu=5, alternative="two.sided"))

# get p-values
t.test.pvalues <- sapply(t.tests, function(x) x$p.value)

rejected <- t.test.pvalues > .05
sampleIndices <- rep(1:n, N)
res <- aggregate(rejected, list(sample=sampleIndices), FUN=function(x) sum(x)/length(x) )
names(res)[2] <- "percRejected"
print(res, row.names=F)
# sample percRejected
# 1         0.16
# 2         0.00
# 3         0.00
# 4         0.00
# 5         0.00
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21008884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档