繁体   English   中英

拟合Gamma分布并在R中按因子绘图

[英]Fit Gamma distribution and plot by factor in R

我有带有数字列数量和分类列欺诈的data.frame对象:

amount <- [60.00, 336.38, 119.00, 115.37, 220.01, 60.00, 611.88, 189.78 ...]

fraud <- [1,0,0,0,0,0,1,0, ...]

我想拟合一个伽马分布来求和,但要按factor(fraud)绘制它。 我想要一个图表,该图表将显示2条具有2种不同颜色的曲线,以区分2组(欺诈/非欺诈组)。

到目前为止,这是我所做的:

fit.gamma1 <- fitdist(df$amount[df$fraud == 1], distr = "gamma", method = "mle")
plot(fit.gamma1)

fit.gamma0 <- fitdist(df$amount[df$fraud == 0], distr = "gamma", method = "mle")
plot(fit.gamma0)

我使用了以下参考: 如何将R数据中的伽马分布拟合?

也许你想要的是

curve(dgamma(x, shape = fit.gamma0$estimate[1], rate = fit.gamma0$estimate[2]), 
      from = min(amount), to = max(amount), ylab = "")
curve(dgamma(x, shape = fit.gamma1$estimate[1], rate = fit.gamma1$estimate[2]), 
      from = min(amount), to = max(amount), col = "red", add = TRUE)

在此处输入图片说明

或与ggplot2

ggplot(data.frame(x = range(amount)), aes(x)) + 
  stat_function(fun = dgamma, aes(color = "Non fraud"),
                args = list(shape = fit.gamma0$estimate[1], rate = fit.gamma0$estimate[2])) +
  stat_function(fun = dgamma, aes(color = "Fraud"),
                args = list(shape = fit.gamma1$estimate[1], rate = fit.gamma1$estimate[2])) +
  theme_bw() + scale_color_discrete(name = NULL)

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM