r语言编程实现在一个非正态分布下抽样,样本均值趋于正态分布的动态演示图,即中心极限定理的实现,也画出4个图形
时间: 2024-10-28 07:11:59 浏览: 21
在R语言中,要演示中心极限定理(Central Limit Theorem, CLT),你可以创建一个程序,通过不断地从非正态分布中采样并计算样本均值,随着样本量增加,观察样本均值分布逐渐趋向于正态分布的过程。下面是一个简单的示例,我们将使用`rnorm`函数生成正态分布的随机数来模拟非正态分布的抽样,然后用`ggplot2`绘制四个阶段的分布图:
```R
# 首先安装必要的包
install.packages("ggplot2") # 如果还没有安装
library(ggplot2)
library(dplyr)
# 定义非正态分布的数据(这里假设我们有一个偏斜的泊松分布)
non_normal_dist <- rexp(1000, rate = 5) + 3
# 确定要展示的四个样本大小(可以调整这个数值)
sample_sizes <- c(10, 50, 100, 500)
# 动态演示
for (n in sample_sizes) {
# 抽取样本并计算均值
sample_mean <- mean(sample(non_normal_dist, n))
# 将结果添加到数据框中用于绘图
data <- data.frame(n = rep(n, each = 1000), mean = replicate(1000, sample_mean))
# 绘制每个样本量的直方图和正态密度曲线
plot_data <- data %>%
ggplot(aes(x = mean)) +
geom_histogram(binwidth = .5, fill = "lightblue", alpha = 0.6) +
geom_density(color = "red", size = 1) +
labs(title = paste0("Sample Size:", n),
x = "Sample Mean",
y = "Frequency/Density") +
theme_minimal()
print(plot_data)
# 清空当前设备以便每次迭代都显示新的图像
dev.off()
}
阅读全文