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

如何在单张图中绘制多个负二项分布的概率分布

负二项分布与广义泊松分布多参数概率分布图实现方法

一、负二项分布多参数概率分布图实现

负二项分布常见两种参数化方式:指定成功次数r与成功概率p,或指定均值mu与离散参数size(也叫theta)。以下以R语言为例,实现多参数组合的负二项分布概率图:

代码示例

# 加载绘图包
library(ggplot2)

# 定义参数组合:这里固定size取值,变化均值mu;也可按需调整参数组合逻辑
params <- expand.grid(size = c(2, 5, 10), mu = c(1, 3, 5))

# 生成每个参数对应的概率质量函数数据
nb_data <- lapply(1:nrow(params), function(i) {
  size_val <- params$size[i]
  mu_val <- params$mu[i]
  p_val <- size_val / (size_val + mu_val) # 转换为r-p参数化形式
  x <- 0:20 # 取值范围,可根据参数大小调整上限
  prob <- dnbinom(x, size = size_val, prob = p_val)
  data.frame(x = x, prob = prob, size = factor(size_val), mu = factor(mu_val))
})
nb_data <- do.call(rbind, nb_data)

# 绘制多参数对比图
ggplot(nb_data, aes(x = x, y = prob, color = size, linetype = mu)) +
  geom_line(linewidth = 1) +
  geom_point(size = 2) +
  labs(title = "多参数负二项分布概率质量函数",
       x = "取值x", y = "概率P(X=x)",
       color = "离散参数size", linetype = "均值mu") +
  theme_minimal() +
  facet_wrap(~size) # 可选分面,更清晰展示不同size下的分布差异

关键注意点

  • 若习惯用mu和theta参数化,可直接调用dnbinom(x, mu = mu_val, size = theta_val)(多数R版本支持)
  • 取值范围x需匹配参数:均值mu越大,x的上限应对应提高,避免截断有效概率
  • 通过expand.grid()可灵活生成任意参数组合,满足不同对比需求

二、广义泊松分布多参数概率分布图实现

广义泊松分布的概率质量函数为:

P(X=x) = (λ(λ + xθ)^(x-1) e^(-λ - xθ))/x! ,x=0,1,2,...,其中λ>0,max(-1, -λ/m)<θ<1(m为最大可能取值)

R语言可借助VGAM包的dgenpois()函数实现,步骤如下:

代码示例

# 安装并加载VGAM包(首次使用需执行安装)
# install.packages("VGAM")
library(VGAM)
library(ggplot2)

# 定义参数组合:λ取不同均值,θ取不同离散程度参数
params <- expand.grid(lambda = c(1, 3, 5), theta = c(-0.2, 0, 0.3))

# 生成每个参数对应的概率质量函数数据
gp_data <- lapply(1:nrow(params), function(i) {
  lambda_val <- params$lambda[i]
  theta_val <- params$theta[i]
  # 根据θ正负确定x的取值范围:θ负时x存在上限
  if(theta_val < 0) {
    max_x <- floor(-lambda_val / theta_val)
    x <- 0:max_x
  } else {
    x <- 0:20
  }
  prob <- dgenpois(x, lambda = lambda_val, theta = theta_val)
  data.frame(x = x, prob = prob, lambda = factor(lambda_val), theta = factor(theta_val))
})
gp_data <- do.call(rbind, gp_data)

# 绘制多参数对比图
ggplot(gp_data, aes(x = x, y = prob, color = lambda, linetype = theta)) +
  geom_line(linewidth = 1) +
  geom_point(size = 2) +
  labs(title = "多参数广义泊松分布概率质量函数",
       x = "取值x", y = "概率P(X=x)",
       color = "参数λ", linetype = "参数θ") +
  theme_minimal() +
  facet_wrap(~theta) # 按θ分面,直观对比离散程度差异

关键注意点

  • θ参数决定分布离散性:θ=0时退化为普通泊松分布;θ>0为过度离散;θ<0为欠离散且x有上限
  • 需保证参数合法性:λ必须大于0,θ范围需满足概率非负,代码中通过θ正负设置x上限避免无效值
  • 若不想依赖第三方包,可手动实现概率质量函数,注意x=0时的特殊情况(P(X=0)=e^(-λ))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 01:20:33