You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中绘制总体样本的抽样分布?

在R中绘制抽样分布的方法

当然可以在R中完成抽样分布的绘制,核心思路是模拟抽样过程、获取统计量的分布,再通过绘图工具可视化。下面分几种实用方式说明:

一、手动模拟抽样(基础R)

这种方式能帮你直观理解抽样分布的本质,步骤清晰:

  1. 定义总体数据(可以用内置分布生成,也可以导入真实数据)
  2. 重复抽取指定样本量的样本,计算每次的统计量(比如均值、中位数)
  3. 将统计量集合绘制成直方图或密度图

示例代码:

# 生成模拟总体(均值50、标准差10的正态分布,10000个数据点)
population <- rnorm(10000, mean = 50, sd = 10)

# 设置抽样参数:样本量n,重复抽样次数reps
n <- 30
reps <- 1000

# 批量抽取样本并计算均值,存储结果
sample_means <- replicate(reps, mean(sample(population, n, replace = TRUE)))

# 绘制抽样分布直方图,叠加密度曲线和总体均值参考线
hist(sample_means, breaks = 30, freq = FALSE, main = "样本均值的抽样分布", 
     xlab = "样本均值", col = "lightblue", border = "white")
lines(density(sample_means), col = "red", lwd = 2)
abline(v = mean(population), col = "darkgreen", lwd = 2, lty = 2)

二、用ggplot2绘制美观图形

如果需要更灵活的样式调整,ggplot2是首选:

library(ggplot2)

# 将样本均值转为数据框格式
df <- data.frame(sample_means = sample_means)

ggplot(df, aes(x = sample_means)) +
  geom_histogram(aes(y = ..density..), bins = 30, fill = "lightblue", color = "white", alpha = 0.7) +
  geom_density(color = "red", size = 1) +
  geom_vline(xintercept = mean(population), color = "darkgreen", size = 1, linetype = "dashed") +
  labs(title = "样本均值的抽样分布", x = "样本均值", y = "密度") +
  theme_minimal()

三、用专用工具包简化流程

没有专门直接绘制抽样分布的单一函数,但部分统计包可以简化抽样步骤:

  • infer包:专门用于统计推断,内置抽样模拟流程,代码更贴合统计逻辑:
library(infer)

# 用infer包模拟Bootstrap抽样分布
sampling_dist <- df %>%
  specify(response = sample_means) %>%
  generate(reps = 1000, type = "bootstrap") %>%
  calculate(stat = "mean")

# 直接可视化抽样分布
visualize(sampling_dist) +
  labs(title = "Bootstrap样本均值的抽样分布", x = "样本均值")
  • sampling包:提供多种专业抽样方法(分层抽样、整群抽样等),可配合绘图函数自定义抽样分布。

内容的提问来源于stack exchange,提问作者Ali Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 23:42:22