Как симулировать класс из 100 учеников? - PullRequest
0 голосов
/ 21 октября 2019

Экзамен с 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 ))

Я не уверен, что делать после этого?

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

из определения биномиального распределения :

  • среднее значение определяется как 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 будет вашим размером класса. таким образом, мы получаем SEM 0,19 и 0,061 для классов классов 100 и 1000 соответственно

часто полезно проверять вещи с помощью симуляции, и мы можем симулировать один класс, как вы это делали.

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

Я использую plot(table(x)) выше вместо hist, потому что это дискретное распределение. hist больше подходит для непрерывных распределений, в то время как table лучше для дискретных распределений с небольшим количеством различных значений.

далее, мы можем моделировать вещи много раз, используя replicate. в этом случае вы после среднего значения биномиального розыгрыша:

y <- replicate(1000, mean(rbinom(100, 20, 0.25)))
c(mu=mean(y), se=sd(y))

, что дало мне mu=5.002 и se=0.201, но будет меняться при каждом запуске. увеличив размер класса до 1000, я снова получаю mu=5.002 и se=0.060. Поскольку это случайные выборки из распределения, они подвержены «ошибке Монте-Карло», но, учитывая достаточное количество повторов, им следует подойти к аналитическим ответам, приведенным выше. тем не менее, они достаточно близки к аналитическим результатам, чтобы дать мне уверенность, что я не сделал глупых опечаток

0 голосов
/ 21 октября 2019

Что ж, вам просто нужно найти способ установить вероятность правильного ответа на 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...