【发布时间】:2020-08-13 05:35:49
【问题描述】:
我正在通过一个类问题来测试中心极限定理是否也适用于中位数。我已经编写了代码,据我所知,它工作得很好。但是我绘制正态分布的 dnorm stat 没有出现。当它应该创建钟形曲线时,它只会创建一条平坦的线。代码如下:
set.seed(14)
median_clt <- rnorm(1000, mean = 10, sd = 2)
many_sample_medians <- function(vec, n, reps) {
rep_vec <- replicate(reps, sample(vec, n), simplify = "vector")
median_vec <- apply(rep_vec, 2, median)
return(median_vec)
}
median_clt_test <- many_sample_medians(median_clt, 500, 1000)
median_clt_test_df <- data.frame(median_clt_test)
bw_clt <- 2 * IQR(median_clt_test_df$median_clt_test) / length(median_clt_test_df$median_clt_test)^(1/3)
ggplot(median_clt_test_df, aes(x = median_clt_test)) +
geom_histogram(binwidth = bw_clt, aes(y = ..density..), fill = "hotpink1", col = "white") +
stat_function(fun = ~dnorm(.x, mean = 10, sd = 2), col = "darkorchid1", lwd = 2) +
theme_classic()
据我所知,其余代码工作正常——只是没有正确绘制 dnorm stat 函数。完全相同的 stat 行以前对我有用,所以我不确定出了什么问题。
【问题讨论】:
-
试试
stat_function(fun = dnorm, args = list(mean = 10, sd = 2), ...)。我不认为 purr 语法适用于所有 ggplot2 函数参数。 -
@teunbrand 这就是我的想法,但显然它确实如此(见下文)。这更像是一个统计问题而不是编程问题。