首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在相同的ggplot2 (R)上拟合负二项、正态和泊松密度函数,但要缩放到计数数据?

在相同的ggplot2 (R)上拟合负二项、正态和泊松密度函数,并将其缩放到计数数据,可以通过以下步骤实现:

  1. 导入所需的库和数据集:
代码语言:txt
复制
library(ggplot2)
library(dplyr)

# 假设数据集为df,包含一个名为count的计数变量
df <- data.frame(count = c(10, 15, 20, 25, 30))
  1. 创建一个包含计数数据的基础图层:
代码语言:txt
复制
base_plot <- ggplot(df, aes(x = count)) +
  geom_bar(stat = "identity", fill = "lightblue", color = "black")
  1. 拟合负二项分布:
代码语言:txt
复制
# 使用MASS库中的fitdistr函数拟合负二项分布
library(MASS)
fit_negbinom <- fitdistr(df$count, "negative binomial")

# 提取拟合结果的参数
size <- fit_negbinom$estimate[1]
mu <- fit_negbinom$estimate[2]

# 创建负二项分布的密度函数
density_negbinom <- function(x) {
  dnbinom(x, size = size, mu = mu)
}

# 添加负二项分布的曲线到基础图层
plot_negbinom <- base_plot +
  stat_function(fun = density_negbinom, color = "red", size = 1) +
  labs(title = "Negative Binomial Distribution")
  1. 拟合正态分布:
代码语言:txt
复制
# 使用stats库中的fitdistr函数拟合正态分布
fit_normal <- fitdistr(df$count, "normal")

# 提取拟合结果的参数
mean <- fit_normal$estimate[1]
sd <- fit_normal$estimate[2]

# 创建正态分布的密度函数
density_normal <- function(x) {
  dnorm(x, mean = mean, sd = sd)
}

# 添加正态分布的曲线到基础图层
plot_normal <- base_plot +
  stat_function(fun = density_normal, color = "blue", size = 1) +
  labs(title = "Normal Distribution")
  1. 拟合泊松分布:
代码语言:txt
复制
# 使用stats库中的fitdistr函数拟合泊松分布
fit_poisson <- fitdistr(df$count, "poisson")

# 提取拟合结果的参数
lambda <- fit_poisson$estimate[1]

# 创建泊松分布的密度函数
density_poisson <- function(x) {
  dpois(x, lambda = lambda)
}

# 添加泊松分布的曲线到基础图层
plot_poisson <- base_plot +
  stat_function(fun = density_poisson, color = "green", size = 1) +
  labs(title = "Poisson Distribution")
  1. 组合所有图层并显示:
代码语言:txt
复制
# 使用gridExtra库中的grid.arrange函数组合图层
library(gridExtra)
grid.arrange(plot_negbinom, plot_normal, plot_poisson, ncol = 3)

这样,你就可以在相同的ggplot2图上拟合负二项、正态和泊松密度函数,并将其缩放到计数数据。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券