【问题标题】:R: Distribution of Random Samples vs. 1 Random SampleR:随机样本与 1 个随机样本的分布
【发布时间】:2014-09-09 06:26:15
【问题描述】:

我有一个关于随机抽样的问题。

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

我原以为会是,但现在我一直在来回走动。

任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: r random montecarlo resampling statistics-bootstrap


    【解决方案1】:

    通过一些小的更改,您甚至可以使它们在数值上相等。您只需播种 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 状态与第一种情况不同。

    【讨论】:

      猜你喜欢
      • 2017-06-21
      • 2016-11-04
      • 1970-01-01
      • 1970-01-01
      • 2022-12-09
      • 2014-07-13
      • 2016-01-21
      • 2018-11-02
      相关资源
      最近更新 更多