R 随机数生成器的版本影响 edx 统计和 R 课程答案的正确性

Version of R random number generator impacts correctness of edx Statistics and R course answers

很抱歉在这里问这个问题,但是网站上没有关于这门课程的讨论页面,它提到了 Whosebug 可以问任何问题。这是来自 this edx course.

Q1:使用以下数据集:

'''
url <- "https://raw.githubusercontent.com/genomicsclass/dagdata/master/inst/extdata/babies.txt"
filename <- basename(url)
download(url, destfile=filename)
babies <- read.table("babies.txt", header=TRUE)
'''

分为两组(不吸烟和吸烟):

bwt.nonsmoke <- filter(babies, smoke==0) %>% select(bwt) %>% unlist 
bwt.smoke <- filter(babies, smoke==1) %>% select(bwt) %>% unlist

将种子设置为 1,并从大小为 N=25 的非吸烟母亲 (dat.ns) 中获取样本。然后,在不重置种子的情况下,从吸烟的母亲 (dat.s) 中提取相同大小的样本。计算 t 统计量(称之为 tval)。

t 统计量的绝对值是多少?

我是这样做的:

set.seed(1)
dat.ns <- sample(bwt.nonsmoke,25)
dat.s <- sample(bwt.smoke,25)
tval <- t.test(dat.ns,dat.s)$statistic
tval

这给出了显然错误的值 2.120904。 我还尝试在每个样本之前将种子设置为 1,如下所示:

set.seed(1)
dat.ns <- sample(bwt.nonsmoke,25)
set.seed(1)
dat.s <- sample(bwt.smoke,25)
tval <- t.test(dat.ns,dat.s)$statistic
tval

给出的 t 值为 1.573627,这也是错误的。我不确定我做错了什么,我需要一些帮助。

R 中的随机数生成器在 R 版本 3.6.0 中发生了重大变化,如 R Bloggers 文章 What's new in R 3.6.0?

中所强调的那样

如果您使用的是 3.6.0 之前的 R 版本,您将根据您的代码获得以下 t 检验统计数据:

> RNGversion("3.5.3")
Warning message:
In RNGkind("Mersenne-Twister", "Inversion", "Rounding") :
  non-uniform 'Rounding' sampler used
> set.seed(1)
> dat.ns <- sample(bwt.nonsmoke,25)
> dat.s <- sample(bwt.smoke,25)
> t.test(dat.ns,dat.s)

    Welch Two Sample t-test

data:  dat.ns and dat.s
t = 2.1209, df = 47.693, p-value = 0.03916
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
  0.5141953 19.3258047
sample estimates:
mean of x mean of y 
   124.68    114.76 

如果您使用 R 3.6.0 或更新版本,您将使用相同的代码得到以下答案。

> # redo with RNVversion(3.6.3)
> RNGversion("3.6.3")
> set.seed(1)
> dat.ns <- sample(bwt.nonsmoke,25)
> dat.s <- sample(bwt.smoke,25)
> t.test(dat.ns,dat.s)

    Welch Two Sample t-test

data:  dat.ns and dat.s
t = 1.6593, df = 47.58, p-value = 0.1036
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -1.79772 18.75772
sample estimates:
mean of x mean of y 
   125.12    116.64 

底线:检查用于创建测验答案的 R 版本以确认随机数生成器的版本。