Как отобрать нормально распределенную популяцию с заданным средним и стандартным отклонением несколько раз - PullRequest
0 голосов
/ 04 февраля 2020

В демонстрационных целях я хочу выбрать 30 случайных наблюдений из нормального распределения со средним значением 0 и стандартным отклонением 2. Я хочу выбрать эту «популяцию» 10 раз, поэтому я закончу 300 наблюдениями и 10 групп. Следующий код работает, но он повторяет те же цифры. Я хочу разные цифры каждый раз, когда он повторяется.

samp<-rep(c(1:10),each = 30)
obs <- tibble(observations=rep(c(rnorm(30, mean = 0, sd=2)), times = 10))
data<-cbind(samp,obs)

Я понимаю, что мог бы просто выбрать 300 случайных чисел, но точка I будет sh, чтобы проиллюстрировать сделки с выборкой населения. Как я могу изменить предыдущий код, чтобы сделать это?

Я также хочу построить среднее значение с помощью столбцов ошибок (с использованием стандартного отклонения) каждой процедуры выборки (с использованием ggplot2), как показано ниже. Есть ли способ привести приведенные выше операции (или один, который производит разные числа на каждой итерации) с приведенными ниже и достичь тех же результатов?

results<-
  data%>%
  group_by(samp)%>%
  summarize(avg = mean(data$obs),
              stdev = sd(data$obs))

plot<- 
  ggplot(results, aes(x=samp, y=avg, group=samp, color=samp)) + 
  geom_line() +
  geom_point()+
  geom_errorbar(aes(ymin=avg-stdev, ymax=avg+stdev), width=.2,
                 position=position_dodge(0.05))
print(plot)

1 Ответ

1 голос
/ 04 февраля 2020

Вот один из способов построить ваш примерный фрейм данных:

library(tidyverse)

s <- function() rnorm(30, mean = 0, sd = 2)

df <- map_df(1:10, ~tibble(val = s(), grp = letters[.x]))

Чтобы построить график, вам не нужно заранее вычислять среднее значение:

df %>% 
  ggplot(aes(grp, val)) +
  stat_summary(fun.y = mean, geom = "point") +
  stat_summary(fun.data = mean_se, geom = "linerange")

enter image description here

...