首页
学习
活动
专区
工具
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图上拟合负二项、正态和泊松密度函数,并将其缩放到计数数据。

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

相关·内容

R语言从入门到精通:Day13

在前面两次的教程中,我们学习了方差分析和回归分析,它们都属于线性模型,即它们可以通过一系列连续型 和/或类别型预测变量来预测正态分布的响应变量。但在许多情况下,假设因变量为正态分布(甚至连续型变量)并不合理,比如:结果变量可能是类别型的,如二值变量(比如:是/否、通过/未通过、活着/死亡)和多分类变量(比如差/良好/优秀)都显然不是正态分布;结果变量可能是计数型的(比如,一周交通事故的数目,每日酒水消耗的数量),这类变量都是非负的有限值,而且它们的均值和方差通常都是相关的(正态分布变量间不是如此,而是相互独立)。广义线性模型就包含了非正态因变量的分析,本次教程的主要内容就是关于广义线性模型中流行的模型:Logistic回归(因变量为类别型)和泊松回归(因变量为计数型)。

02
领券