如何在 R 中用伽马分布拟合覆盖密度直方图?
How to overlay density histogram with gamma distribution fit in R?
我是 R 的新手,想为我的直方图添加伽玛分布拟合。我希望伽马分布适合覆盖我的直方图。
我可以使用 dgamma
函数和 fitdist
函数计算伽马分布。但是,我无法将此伽马分布叠加到我的直方图上。
这是我试过的代码:
hist(mydata, breaks = 30, freq = FALSE, col = "grey")
lines(dgamma(mydata, shape = 1))
我试过的代码没有将伽马分布拟合覆盖到我的直方图上。我只得到没有拟合的直方图。
看看下面的例子是否可以帮助叠加
- 一条黑色的拟合线
- 一个红色的 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")
我是 R 的新手,想为我的直方图添加伽玛分布拟合。我希望伽马分布适合覆盖我的直方图。
我可以使用 dgamma
函数和 fitdist
函数计算伽马分布。但是,我无法将此伽马分布叠加到我的直方图上。
这是我试过的代码:
hist(mydata, breaks = 30, freq = FALSE, col = "grey")
lines(dgamma(mydata, shape = 1))
我试过的代码没有将伽马分布拟合覆盖到我的直方图上。我只得到没有拟合的直方图。
看看下面的例子是否可以帮助叠加
- 一条黑色的拟合线
- 一个红色的 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")