我试图创建一个变量Z的1000个样本,其中首先生成12个统一的RV's Ui,然后让Z=∑(Ui-6)从∑到12。
u <- runif(12)
Z <- sum(u-6)然而,我不知道如何重复这1000倍。最后,我们的愿望是画出Z's的直方图,理想的情况是它类似于正常的曲线。对不起,很明显,我是你在这个领域的初学者。谢谢!
发布于 2017-11-20 23:21:01
这就是你想要的吗?
set.seed(2017);
n <- 1000;
u <- matrix(runif(12 * n), ncol = 12);
z <- apply(u, 1, function(x) sum(x - 6));
# Density plot
require(ggplot2);
ggplot(data.frame(z = z), aes(x = z)) + geom_density();

说明:一次绘制12 * 1000统一样本,存储在1000x12矩阵中,然后和行条目x - 6。
发布于 2017-11-20 23:22:35
如果我理解这个问题,这是一个非常简单的方法--使用replicate()来执行任意次数的计算。
# number of values to draw per iteration
n_samples <- 12
# number of iterations
n_iters <- 1000
# get samples, subtract 6 from each element, sum them (1000x)
Zs <- replicate(n_iters, sum(runif(n_samples) - 6))
# print a histogram
hist(Zs)https://stackoverflow.com/questions/47402541
复制相似问题