R 如何模拟一个100人的班级?

R 如何模拟一个100人的班级?,r,R,一个有20个多项选择题的考试,p=0.25。我如何模拟一个100名学生的班级,班级学生的平均水平是多少。如果班级人数增加到1000人,平均人数会怎样 我不知道从哪里开始。除了手动解决这个问题 n_experiments<-100 n_samples<-c(1:20) means_of_sample_n<-c() hist(rbinom( n = 100, size = 20, prob = 0.25 )) n_实验你只需找到一种方法,将正确回答的概率设置为0.25,你可以通

一个有20个多项选择题的考试,p=0.25。我如何模拟一个100名学生的班级,班级学生的平均水平是多少。如果班级人数增加到1000人,平均人数会怎样

我不知道从哪里开始。除了手动解决这个问题

n_experiments<-100
n_samples<-c(1:20)
means_of_sample_n<-c()

hist(rbinom( n = 100, size = 20, prob = 0.25 ))

n_实验你只需找到一种方法,将正确回答的概率设置为0.25,你可以通过生成均匀分布轻松做到这一点

n_experiments<-100
n_samples<-c(1:20)
means_of_sample_n<-c()

hist(rbinom( n = 100000, size = 20, prob = 0.25 ))


Nstu=100000
Nquest=20

Results=matrix(as.numeric(runif(100000*20)<0.25),ncol=20)

hist(apply(Results,1,sum))
mean(apply(Results,1,sum))

n_实验根据以下定义:

  • 平均值定义为
    n*p
    ,因此
    mu=20*0.25
    ,平均值为5。这与班级规模无关
  • 方差被定义为
    n*p*(1-p)
    ,标准偏差通常是
    sqrt
    ,因此
    sigma=sqrt(20*0.25*0.75)
    ,即~1.94
  • 这是
    sigma/sqrt(k)
    ,其中
    k
    将是您的班级规模。因此,对于100人和1000人的班级规模,我们得到的SEM分别为0.19和0.061
通过模拟来检查情况通常很有用,我们可以像您所做的那样模拟单个类

x <- rbinom(100, 20, 0.25)
plot(table(x))

正好给了我
mu=5.002
se=0.201
,但每次运行都会改变。将类大小增加到1000,我再次得到
mu=5.002
,并且
se=0.060
。因为这些是分布中的随机样本,它们会受到“蒙特卡罗误差”的影响,但如果有足够的重复,它们应该接近上面的分析答案。也就是说,它们与分析结果非常接近,让我有信心我没有犯任何愚蠢的错误

你的
rbinom
行模拟了“类”,不是吗?如果需要,您可以轻松地通过分析计算类的平均值和方差,通过模拟检查类是否正确是很有用的(尤其是作为一种健全性检查)
y <- replicate(1000, mean(rbinom(100, 20, 0.25)))
c(mu=mean(y), se=sd(y))