注意:在原来的帖子中,我注意到(除了一个已经更正的小错误)这实际上是绘制密度的问题,而不是模拟的问题。当时我不确定发生了什么,但我发现截断数据似乎可以解决问题,所以我建议这样做。我已经弄清楚了真正的问题,所以我决定编辑它以提出更好的解决方案。
和n=3,我们模拟的分布有很重的尾巴。即使平均值为零且四分位间距约为 4,但在 100,000 次(或更多)抽签中,我们得到的绝对值约为 1,000,000。
默认情况下,该density函数估计完全覆盖数据范围(加上一点点)的 512 个等距点的密度。在这种情况下,我们只对在该范围的很小一部分上绘制密度感兴趣——因为x∈[0,5]. 结果,当我们绘制那个窗口时,我们得到了一条看起来像平坦的水平线,它连接了大约 -2000 和 2000 点的估计值。不是很有用。
我最初的解决方案,截断数据,给出了看起来不错的图,但并不是很令人满意。所以我玩了一下,找出了问题以及如何解决它:该density函数有参数from和to,它给出了估计密度的下限和上限。通过设置from=0, to=5,我们得到以下图,没有任何截断:

这比我原来的解决方案更容易也更正确(因为密度被截断稍微扭曲了)。我使用的完整代码(稍微改编自问题中提供的代码)是:
v <- rt(100000, 1)/sqrt(3-2)
w <- rchisq(100000,2)
z <- rnorm(n=100000, m=0, sd=1)
z_eff_3 <- v + z * sqrt((3*(1+v*v))/w)
plot(density(z_eff_3,from=0,to=5),xlim=c(0,5))
希望有帮助。