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

生物技术怪胎

我有一些计数数据。我想用计数数据绘制直方图,并添加负二项式,正态和泊松密度函数,但将这些函数拟合到计数数据中。

我尝试按照以下示例进行操作,但(a)我无法拟合负二项式和泊松函数(b)在将其缩放到计数数据级别时无法接近的地方(c)不知道如何在同一个图上将所有三个图例都带有图例(d)行另外,我如何获得每个拟合的基本统计信息?例如,负二项式拟合将生成参数k。我如何使它出现在情节上

set.seed(111)
counts <- rbinom(500,100,0.1) 
df <- data.frame(counts)

ggplot(df, aes(x = counts)) + 
  geom_histogram(aes(y=..density..),colour = "black", fill = "white") +
  stat_function(fun=dnorm,args=fitdistr(df$counts,"normal")$estimate)

ggplot(df, aes(x = counts)) + 
  geom_histogram(aes(y=..density..),colour = "black", fill = "white") +
  stat_function(fun=poisson,args=fitdistr(df$counts,"poisson")$estimate)

ggplot(df, aes(x = counts)) + 
  geom_histogram(aes(y=..density..),colour = "black", fill = "white") +
  stat_function(fun=dnbinom,args=fitdistr(df$counts,"dnbinom")$estimate)
伊恩·坎贝尔

您有几个问题,首先"dnbinom"是的无效分配MASS::fitdistr其次,MASS::fitdistr由于无法使用默认方法,因此我们可以使用method = "SANN"第三,除非另有说明,否则stat_function尝试以dnbinom非整数值进行评估,这是行不通的。

使参数显示在图例中有些棘手,因为您必须在ggplot调用之外估计它们我很懒惰并且习惯了purrr::map2,但是您可以使用一些基本的R函数来做同样的事情。

library(purrr)
library(dplyr)
norm.params <- fitdistr(df$counts,"normal")$estimate
poisson.params <- fitdistr(df$counts,"poisson")$estimate
negbinom.params <- fitdistr(df$counts,"negative binomial", method = "SANN")$estimate

dist.params <- map(list(Normal = norm.params,Poisson = poisson.params,`Negative Binomial` = negbinom.params),
    ~ map2(names(.),.,~ paste0(.x," = ",round(.y,2))) %>% unlist %>% paste0(.,collapse = ", ")) %>% 
    map2_chr(names(.),., ~ paste(.x,.y,sep=":\n"))

最后,如果要按计数扩展(如本答案所示),则只需定义匿名函数。

mybinwidth = 1
ggplot(df, aes(x = counts)) + 
  geom_histogram(aes(y=..count..),colour = "black", fill = "white", binwidth = mybinwidth) +
  stat_function(aes(color = "black"),fun=function(x,mean,sd) mybinwidth * nrow(df) * dnorm(x,mean, sd),
                args=fitdistr(df$counts,"normal")$estimate) +
  stat_function(aes(color = "blue"),fun=function(x,lambda) mybinwidth * nrow(df) * dpois(x,lambda), 
                args=fitdistr(df$counts,"poisson")$estimate,
                xlim=c(1,20), n=20) + 
  stat_function(aes(color = "orange"),fun=function(x,size, mu) mybinwidth * nrow(df) * dnbinom(x,size = size, mu = mu),
                args=fitdistr(df$counts,"negative binomial", method="SANN")$estimate,
                xlim=c(1,20),n=20) + 
  scale_color_manual("Distribution", values=c(black="black",blue="blue",orange="orange"),
                     labels=dist.params)

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将负二项式函数拟合到由R ggplot中的一个系数进行facet_wrapped的数据?

来自分类Dev

如何从两个分布的总和中采样:二项式和泊松

来自分类Dev

如何从Julia中拟合的GLM模型对象中提取数据分布类型(例如,泊松,二项式)?

来自分类Dev

如何从Julia中拟合的GLM模型对象中提取数据分布类型(例如,泊松,二项式)?

来自分类Dev

R:ggplot2二项式结果的Barplot

来自分类Dev

使用ggplot2在一个组合图中的图密度和累积密度函数

来自分类Dev

如何在同一个表中进行计数和求和以成为父数据集

来自分类Dev

同一个表上的 2 个不同查询,计数和分组依据

来自分类Dev

如何在R中绘制泊松密度曲线?

来自分类Dev

如何绘制二项式函数?

来自分类Dev

如何使用python计算二项式累积密度函数

来自分类Dev

如何在同一个匿名 pl/sql 块中删除函数和过程?

来自分类Dev

如何在同一个 html 上绘制 2 个谷歌图表

来自分类Dev

如何使用ggplot2绘制二项式可变百分比条形图

来自分类Dev

如何在同一个 AVCaptureSession 上添加 AVVideoDataOutput 和 AVStillImageOutput?

来自分类Dev

如何在php的同一个按钮上同时设置会话变量和验证

来自分类Dev

拟合beta二项式

来自分类Dev

在同一个查询中计数和求和?

来自分类Dev

获取从同一个表合并的计数数字

来自分类Dev

如何在同一个2D数组中使用两个构造函数?爪哇

来自分类Dev

一个列表和一个表单放到同一个django模板中

来自分类Dev

如何在同一个子域上启用 WordPress 安装和 Mediawiki 安装?

来自分类Dev

如何组合两个在同一个类名上触发的函数?

来自分类Dev

零膨胀负二项式分布函数NaN警告

来自分类Dev

如何在同一个jQuery函数中使用两个追加?

来自分类Dev

如何在折线图(geom_line)R ggplot2上删除一个点?

来自分类Dev

如何在同一个表data.table R中使用BREAKDOWN按数据透视表分组

来自分类Dev

如何在Flutter的同一个屏幕上显示两个ListView?

来自分类Dev

如何在同一个Ubuntu上运行两个Skype帐户?

Related 相关文章

  1. 1

    如何将负二项式函数拟合到由R ggplot中的一个系数进行facet_wrapped的数据?

  2. 2

    如何从两个分布的总和中采样:二项式和泊松

  3. 3

    如何从Julia中拟合的GLM模型对象中提取数据分布类型(例如,泊松,二项式)?

  4. 4

    如何从Julia中拟合的GLM模型对象中提取数据分布类型(例如,泊松,二项式)?

  5. 5

    R:ggplot2二项式结果的Barplot

  6. 6

    使用ggplot2在一个组合图中的图密度和累积密度函数

  7. 7

    如何在同一个表中进行计数和求和以成为父数据集

  8. 8

    同一个表上的 2 个不同查询,计数和分组依据

  9. 9

    如何在R中绘制泊松密度曲线?

  10. 10

    如何绘制二项式函数?

  11. 11

    如何使用python计算二项式累积密度函数

  12. 12

    如何在同一个匿名 pl/sql 块中删除函数和过程?

  13. 13

    如何在同一个 html 上绘制 2 个谷歌图表

  14. 14

    如何使用ggplot2绘制二项式可变百分比条形图

  15. 15

    如何在同一个 AVCaptureSession 上添加 AVVideoDataOutput 和 AVStillImageOutput?

  16. 16

    如何在php的同一个按钮上同时设置会话变量和验证

  17. 17

    拟合beta二项式

  18. 18

    在同一个查询中计数和求和?

  19. 19

    获取从同一个表合并的计数数字

  20. 20

    如何在同一个2D数组中使用两个构造函数?爪哇

  21. 21

    一个列表和一个表单放到同一个django模板中

  22. 22

    如何在同一个子域上启用 WordPress 安装和 Mediawiki 安装?

  23. 23

    如何组合两个在同一个类名上触发的函数?

  24. 24

    零膨胀负二项式分布函数NaN警告

  25. 25

    如何在同一个jQuery函数中使用两个追加?

  26. 26

    如何在折线图(geom_line)R ggplot2上删除一个点?

  27. 27

    如何在同一个表data.table R中使用BREAKDOWN按数据透视表分组

  28. 28

    如何在Flutter的同一个屏幕上显示两个ListView?

  29. 29

    如何在同一个Ubuntu上运行两个Skype帐户?

热门标签

归档