【发布时间】:2020-07-23 01:25:19
【问题描述】:
这个问题不是关于采样数据,我知道 sample_n 但这个问题是关于模拟来自数据帧的数据以比较它们的平均值与模拟与实际(使用 group_by 总结)。
我计算了使用以下平均值的实际差异
df %>%
group_by(allfour) %>%
summarise(hs_completion=mean(hsgrad),
count=n())
但是,我正在努力从每个组中抽取 100 个模拟,然后将每个向量除以各自的组大小,以将它们转化为模拟毕业率,并计算两组之间这些比率的差异。发布此消息后,我需要绘制这些模拟差异的直方图,并在该直方图中添加一条红色垂直线,并在观察数据中计算的均值差异值处。
我知道 tidyverse 和 ggplot,所以在记录有限的情况下,我如何进行 100 次模拟,这不是问题。
Dataframe df 示例如下:
structure(list(hsgrad = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 0L, 1L, 1L, 0L, 0L, 1L, 1L, 1L, 1L, 0L, 1L, 0L, 0L,
0L, 1L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 1L, 1L, 1L, 0L, 0L, 0L,
1L, 1L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 0L, 0L,
0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 0L, 0L,
1L, 1L, 0L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 1L,
1L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 0L), allfour = structure(c(1L,
2L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 2L, 1L), .Label = c("0", "1"), class = "factor")), row.names = c(NA,
100L), class = "data.frame")
【问题讨论】:
-
绘制 100 次模拟是什么意思?是二次抽样,即从每组中选择 20 个,还是替换抽样?
-
替换样本
-
通过 100 次模拟,我参考了每个样本的大小@StupidWolf
-
所以 1 次平局替换?一旦你做了 group_by(..) 你就可以 sample_n() 正确
-
不,我知道 sample_n(),但它是根据这些数据创建模拟
标签: r ggplot2 random simulation tidyverse