2

我是 R 新手,想为我的直方图添加一个伽玛分布的拟合。我希望伽玛分布适合覆盖我的直方图。

我能够用dgamma函数和函数计算伽马分布fitdist。但是,我无法将此伽马分布作为拟合叠加到我的直方图上。

这是我试过的代码:

hist(mydata, breaks = 30, freq = FALSE, col = "grey")

lines(dgamma(mydata, shape = 1))

我尝试的代码不会将伽马分布拟合到我的直方图上。我只得到没有拟合的直方图。

4

1 回答 1

2

看看下面的例子是否有助于覆盖

  1. 黑色的拟合线
  2. 红色虚线的 PDF 图表

在直方图上。

首先,创建一个数据集。

set.seed(1234)    # Make the example reproducible
mydata <- rgamma(100, shape = 1, rate = 1)

现在将伽马分布拟合到数据中。

param <- MASS::fitdistr(mydata, "gamma")

拟合线需要此向量。

x <- seq(min(mydata), max(mydata), length.out = 100)

并将它们全部绘制出来。

hist(mydata, breaks = 30, freq = FALSE, col = "grey", ylim = c(0, 1))
curve(dgamma(x, shape = param$estimate[1], rate = param$estimate[2]), add = TRUE)
lines(sort(mydata), dgamma(sort(mydata), shape = 1),
      col = "red", lty = "dotted")

在此处输入图像描述

于 2019-05-26T12:12:12.537 回答