按具有不同均值和标准差的组模拟整数

Simulating integers by groups with different means and standard deviations

我是一名试图模拟考试成绩数据集的教育研究员。如果我知道

  1. 测试分数最低为 400,最高为 800
  2. 分数必须是整数
  3. 不同的子组具有不同的历史值均值和标准差

模拟这些值的列的最佳方法是什么?假设我有如下内容:

ID Race Group_Mean_Score Group_SD_Score Sim_Score
1 B 600 37.5 ?
2 B 600 37.5 ?
3 A 630 24.3 ?

现在...如果个人分数只能以 10 为增量怎么办?

我最初的想法是转到 rnorm()(是的,假设分数呈正态分布),但我想强制它给出整数,如果可能的话以 10 为增量,并模拟给定的不同分布属性按组。这超出了我现在的范围。

感谢任何帮助。

对于 100 名学生的均值为 100、标准差为 10 的分布,您可以使用以下内容:

mu <- 100
sigma <- 10
N <- 100
sims <- round(rnorm(N, mu, sigma),1) * 100

鉴于上面的示例,您可以在数据中执行所有这些操作:

library(dplyr)
df <- tribble(
    ~ID, ~Race, ~Group_Mean_Score, ~Group_SD_Score,
    1, "B", 600, 37.5,
    2, "B", 600, 37.5,
    3, "A", 630, 24.3
)
df %>%
    mutate(Sim_Score = rnorm(nrow(.), Group_Mean_Score, Group_SD_Score))

# A tibble: 3 x 5
     ID Race  Group_Mean_Score Group_SD_Score Sim_Score
  <dbl> <chr>            <dbl>          <dbl>     <dbl>
1     1 B                  600           37.5      571.
2     2 B                  600           37.5      638.
3     3 A                  630           24.3      654.