我对随机抽样有疑问。
以下两个结果(A和B)在统计上是否相同?
nobs <- 1000
A <- rt(n=nobs, df=3, ncp=0)
simulations <- 50
B <- unlist(lapply(rep.int(nobs/simulations, times=simulations),function(y) rt(n=y, df=3, ncp=0) ))
我以为会是这样,但现在我一直在来回。
任何帮助都将不胜感激。
由于
答案 0 :(得分:0)
通过一些小的改动,你甚至可以使它们在数值上相等。您只需要为RNG设定种子并省略指定ncp
参数并使用默认值(0):
nobs <- 1000
set.seed(42)
A <- rt(n=nobs, df=3)
simulations <- 50
set.seed(42)
B <- unlist(lapply(rep.int(nobs/simulations, times=simulations),function(y) rt(n=y, df=3) ))
all.equal(A, B)
#[1] TRUE
指定ncp=0
时,为什么不能得到相同的结果?
因为rt
假定您实际上需要非中心t分布,并且值是使用rnorm(n, ncp)/sqrt(rchisq(n, df)/df)
计算的。这意味着一次创建1000个值时rnorm
被调用一次,rchisq
随后被调用一次。如果您创建50次20个值,则会对这些RNG进行交替调用,这意味着rnorm
和rchisq
调用的RNG状态与第一种情况不同。