library(fitdistrplus) visualize <- FALSE # TRUE for manual tests with visualization of results # (1) Plot various distributions fitted to bacterial contamination data # data(smokedfish) Clog10 <- log10(smokedfish) fitsfn <- fitdistcens(Clog10,"norm") fitsfl <- fitdistcens(Clog10,"logis") dgumbel <- function(x,a,b) 1/b*exp((a-x)/b)*exp(-exp((a-x)/b)) pgumbel <- function(q,a,b) exp(-exp((a-q)/b)) qgumbel <- function(p,a,b) a-b*log(-log(p)) fitsfg <- fitdistcens(Clog10, "gumbel", start=list(a=-3,b=3)) cdfcompcens(list(fitsfn,fitsfl,fitsfg)) cdfcompcens(list(fitsfn,fitsfl,fitsfg), fitlty=1, fitlwd=3) # Same plot in y logscale cdfcompcens(list(fitsfn, fitsfl, fitsfg), NPMLE.method = "Turnbull", ylogscale = TRUE, ylim=c(.5, .99)) cdfcompcens(list(fitsfn, fitsfl, fitsfg), NPMLE.method = "Wang", ylogscale = TRUE, ylim=c(.5, .99)) if (requireNamespace ("ggplot2", quietly = TRUE)) { cdfcompcens(list(fitsfn,fitsfl,fitsfg), plotstyle = "ggplot") cdfcompcens(list(fitsfn,fitsfl,fitsfg), plotstyle = "ggplot", fitlty=1, fitlwd=3) cdfcompcens(list(fitsfn,fitsfl,fitsfg), datacol="grey", legendtext=c("normal","logistic","Gumbel"), main="bacterial contamination fits", xlab="bacterial concentration (CFU/g)", ylab="F", xlegend = "center", lines01 = TRUE, plotstyle = "ggplot") # Same plot in y logscale cdfcompcens(list(fitsfn, fitsfl, fitsfg), NPMLE.method = "Wang", ylogscale = TRUE, ylim=c(.5, .99), plotstyle = "ggplot") } # Use of x logscale if (visualize) { if(any(installed.packages()[,"Package"] == "actuar")) { require(actuar) data(smokedfish) fln <- fitdistcens(smokedfish,"lnorm") fll <- fitdistcens(smokedfish,"llogis") cdfcompcens(list(fln, fll)) cdfcompcens(list(fln, fll), xlogscale = TRUE) cdfcompcens(list(fln, fll), xlogscale = TRUE, xlim = c(0.01, 1000)) cdfcompcens(list(fln, fll), NPMLE.method = "Turnbull", xlogscale = TRUE, xlim = c(0.01, 1000)) if (requireNamespace ("ggplot2", quietly = TRUE)) { cdfcompcens(list(fln, fll), plotstyle = "ggplot") cdfcompcens(list(fln, fll), xlogscale = TRUE, plotstyle = "ggplot") cdfcompcens(list(fln, fll), xlogscale = TRUE, xlim = c(0.01, 1000), plotstyle = "ggplot") } } # same plot using argument add cdfcompcens(fitsfn, addlegend = FALSE, fitcol = "red") cdfcompcens(fitsfl, addlegend = FALSE, fillrect = NA, fitcol = "green", add = TRUE) cdfcompcens(fitsfg, addlegend = FALSE, fillrect = NA, fitcol = "blue", add = TRUE) cdfcompcens(list(fitsfn, fitsfl, fitsfg), addlegend = FALSE, fitcol = 2:4, fitlty = 1, plotstyle = "ggplot") cdfcompcens(list(fitsfn, fitsfl, fitsfg), addlegend = FALSE, fitcol = 2:4, fitlty = 1, plotstyle = "ggplot") } # Test on the salinity data set # data(salinity) log10LC50 <-log10(salinity) plotdistcens(log10LC50) plotdistcens(log10LC50, NPMLE = FALSE) fn <- fitdistcens(log10LC50,"norm") fl <- fitdistcens(log10LC50,"logis") plot(fn) plot(fl) cdfcompcens(list(fn, fl)) if (requireNamespace("ggplot2", quietly = TRUE)) { cdfcompcens(list(fn, fl), plotstyle = "ggplot") }