我有一个关于重复采样的问题。假设我对样本均值的分布感兴趣。因此,我要做的是生成大小为1000的样本的10000倍,并查看每个样本的平均值。我是否可以取一个大小为10000 * 1000的样本,然后查看前1000个元素的平均值,而不是从1001到2000的平均值,依此类推?
答案 0 :(得分:0)
如果您要控制种子,则两种方法都应产生相同的结果:
Transpose
答案 1 :(得分:0)
这里是一个示例,该示例从均匀分布中随机抽取1,000个项目,生成10,000个样本均值。基于中心极限定理,我们期望这些均值以0.5的正态分布。
# set seed to make reproducible
set.seed(95014)
# generate 10,000 means of 1,000 items pulled from a uniform distribution
mean_x <- NULL
for (i in 1:10000){
mean_x <- c(mean_x,mean(runif(1000)))
}
hist(mean_x)
...以及输出:
答案 2 :(得分:0)
@ Len Greski 我也可以那样做吗?
float rainbow=0;
int dir=1;
void setup() {
size(600, 600);
background(0);
colorMode(HSB, 255);
}
void draw() {
if ( rainbow < 255 && dir==1) {
rainbow++;
}
if ( rainbow > 0 && dir==-1) {
rainbow--;
}
if ( rainbow == 255) {
dir*= -1;
}
if ( rainbow == 0) {
dir*= -1;
}
stroke(rainbow, 255, 200);
line(mouseX,mouseY,width/2,height/2);
if (mousePressed){
stroke(rainbow, 255, 200);
line(mouseX,mouseY,0,mouseX);
}
if (mousePressed){
stroke(rainbow, 100, 200);
line(mouseX,mouseY,600,mouseX);
}
}
答案 3 :(得分:0)
我会说是的。在抽取10,000,000个样本后,您已经随机抽取了大部分实验空间。如果您提到的两种方法的set.seed都相同,您将得到完全相同的答案。如果更改种子并进行t检验,则结果不会有显着差异。
#First Method
seed <- 5554
set.seed(seed)
group_of_means_1 <- replicate(n=10000, expr = mean(rnorm(1000)))
set.seed(seed)
mean_of_means_1 <- mean(replicate(n=10000, expr = mean(rnorm(1000))))
#Method you propose
set.seed(5554)
big_sample <- data.frame(
group=rep(1:10000, each=1000),
samples=rnorm(10000 * 1000, 0, 1)
)
group_means_2 <- aggregate(samples ~ group,
FUN = mean,
data=big_sample)
mean_of_means_2 <- mean(group_means_2$samples)
#comparison
mean_of_means_1 == mean_of_means_2
t.test(group_of_means_1, group_means_2$samples)