Запуск выборки rgeom и сохранение среднего и SD для каждой репликации

#r #random #sample

#r #Случайный #пример

Вопрос:

Попытка запустить следующий rgeom 500 раз и сохранить среднее и sd для каждой репликации.

 rgeom(100, prob = .2)
  

до сих пор у меня:

 geom_means = rep(NA, 500)
geom_sd = rep(NA, 500)
X_geom500 <- replicate(500, {
  samp <- rgeom(100, prob = .2)
  geom_means = round(mean(samp),2)
})


X_geom500_sd <- replicate(500, {
  samp <- rgeom(100, prob = .2)
  round(sd(samp),2)
})

  

Я могу получить вектор из 500 средних и 500 sd, если я выполняю код отдельно, но я не думаю, что они совпадают. Я попытался создать цикл for для хранения средних и SD для каждой итерации, но я не думаю, что это сработало правильно.

 for i in range(1:500):
  sample[i] <- rgeom(100, prob = .2)
  geom_means[i] <-  mean(sample[i])
  geom_sd[i] <- sd(sample[i])
  

Ответ №1:

Вы можете получить как среднее, так и sd из каждой репликации:

 set.seed(123)

n_rep <- 5

samp_geom <- function(n, prob) {
  samp <- rgeom(n, prob)
  return(list(mean = round(mean(samp), 2), sd = round(sd(samp, 2))))
}

replicate(n_rep, samp_geom(100, .2))

     [,1] [,2] [,3] [,4] [,5]
mean 3.78 3.64 4.09 3.68 3.73
sd   4    4    5    5    4  
  

Сохраните результирующие значения в отдельных векторах следующим образом:

 geom_means <- unlist(samps["mean", ])
geom_means
# [1] 3.78 3.64 4.09 3.68 3.73

geom_sd <- unlist(samps["sd", ])
geom_sd
# [1] 4 4 5 5 4
  

Комментарии:

1. спасибо @andrew_reece. Проблема в том, что мне нужны сохраненные векторы каждого среднего и sd, а не просто их список. В конечном итоге мне нужно создать гистограмму средних значений и вычислить ожидаемое значение выборок.

2. Я не уверен, что вы подразумеваете под «сохраненными векторами», можете ли вы обновить свой пост с помощью какого-либо примера ожидаемого результата (по крайней мере, формата)?

3. извините. Я имею в виду, что должно быть значение geom_means = среднее значение каждой репликации geom. Затем значение geom_sd = sd для каждой репликации geom. Таким образом, я могу поместить каждый список значений в таблицу или матрицу.

4. Хорошо — я обновлен, но не уверен, что вы это имеете в виду? Он просто извлекает векторы из replicate() выходных данных и сохраняет их в отдельных переменных … не уверен, что я что-то упускаю.