R:随机样本与1个随机样本的分布

时间:2014-09-09 06:26:16

标签: r random montecarlo resampling statistics-bootstrap

我对随机抽样有疑问。

以下两个结果(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) ))

我以为会是这样,但现在我一直在来回。

任何帮助都将不胜感激。

由于

1 个答案:

答案 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进行交替调用,这意味着rnormrchisq调用的RNG状态与第一种情况不同。