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

为何直方图无条形显示?R语言rbinom模拟直方图问题求助

问题原因与修复方案

原代码的核心问题

  • 仅生成一组随机变量v,循环中反复计算同一个均值,导致所有结果完全相同,直方图自然只有一个条形
  • 误用R内置函数mean作为变量名,容易引发逻辑冲突
  • 循环内每次调用hist(),会重复绘制5次图形,而非收集完所有数据后一次性绘图
  • 逻辑偏差:你需要的是每次生成10个二项分布变量并求和,而非对同一组数据反复取均值

修复后的代码

Plot <- function(n_sim, size, p, n_per_sim) {
  # 存储每次模拟的和
  sum_results <- c()
  set.seed(1234)
  
  # 执行n_sim次模拟
  for (i in 1:n_sim) {
    # 每次生成n_per_sim个二项变量,计算它们的和
    one_sim_sum <- sum(rbinom(n_per_sim, size, p))
    sum_results <- c(sum_results, one_sim_sum)
  }
  
  # 绘制最终的直方图
  hist(sum_results, main = paste("模拟次数 =", n_sim), 
       xlab = "10个二项变量的和", col = "lightblue")
}

# 调用函数:模拟5次,每次生成10个rbinom(10, 0.1)变量并求和
Plot(n_sim = 5, size = 10, p = 0.1, n_per_sim = 10)

说明

  • 变量名改为sum_results,避免和内置函数mean冲突
  • 每次循环重新生成随机变量并计算和,保证每次模拟的独立性
  • 收集完所有5次模拟结果后再绘制直方图,避免重复绘图
  • 由于模拟次数仅为5次,数据量极小,直方图可能还是只有1-2个条形,这是正常现象。如果想要更直观的分布效果,可以把n_sim改成1000这类更大的数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 04:25:22