首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在r中模拟单样本t检验

在r中模拟单样本t检验
EN

Stack Overflow用户
提问于 2017-04-11 10:05:49
回答 1查看 142关注 0票数 0

我正试着在R中进行单样本t检验。

根据我这里的代码,t应该是-4.979296:

代码语言:javascript
复制
sample.mean = 20
population.mean = 40
sd = 11
n = 30              
t <- (sample.mean-population.mean)/(sd/sqrt(n)) 

但是,当我运行

代码语言:javascript
复制
test <- c(rnorm(30, mean = 20, sd = 11))
t.test(test, mu = 40)

它没有给我提供相同的t分数。

你能告诉我我哪里做错了吗?

EN

回答 1

Stack Overflow用户

发布于 2017-04-11 10:18:15

rnorm每次都会生成随机偏差,生成值的平均值将非常接近指定的mean,但并不完全相同。如果将生成的值存储在变量中并进行计算,您将看到这两个值是相同的。我还将使用set.seed(),这样每个人都可以重现这个示例。

代码语言:javascript
复制
set.seed(42)
test <- c(rnorm(30, mean = 20, sd = 11))
t.test(test, mu = 40)

#   One Sample t-test

#data:  test
#t = -7.6356, df = 29, p-value = 2.031e-08
#alternative hypothesis: true mean is not equal to 40
#95 percent confidence interval:
# 15.59947 25.90944
#sample estimates:
#mean of x 
# 20.75446 

mean(test)
#[1] 20.75446  #NOTE THIS IS CLOSE TO 20 BUT NOT 20

(mean(test)-40)/(sd(test)/sqrt(30)) 
#[1] -7.635627
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43335596

复制
相关文章

相似问题

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