From fd205e13061de8abc595d266f3b0c7650773d442 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Fri, 16 Sep 2022 21:06:54 +0200 Subject: Improve multistart documentation, bugfix - Split out llhist and parhist documentation - Add example code for multistart - Create a multistart vignette, because the example code fails when run by pkgdown - Fix multistart for the case of mkin transformations in the saem fit --- R/llhist.R | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 R/llhist.R (limited to 'R/llhist.R') diff --git a/R/llhist.R b/R/llhist.R new file mode 100644 index 00000000..6a6d93cd --- /dev/null +++ b/R/llhist.R @@ -0,0 +1,30 @@ +#' Plot the distribution of log likelihoods from multistart objects +#' +#' Produces a histogram of log-likelihoods, and an overlayed kernel density +#' estimate. In addition, the likelihood of the original fit is shown as +#' a red vertical line. +#' +#' @param object The [multistart] object +#' @param breaks Passed to [hist] +#' @param lpos Positioning of the legend. +#' @param main Title of the plot +#' @param \dots Passed to [hist] +#' @seealso [multistart] +#' @importFrom KernSmooth bkde +#' @export +llhist <- function(object, breaks = "Sturges", lpos = "topleft", main = "", ...) { + ll <- sapply(object, logLik) + kde <- KernSmooth::bkde(ll) + h <- hist(ll, freq = TRUE, + xlim = range(kde$x), + xlab = "", main = main, + ylab = "Frequency of log likelihoods", breaks = breaks, ...) + + freq_factor <- h$counts[1] / h$density[1] + lines(kde$x, freq_factor * kde$y) + abline(v = logLik(attr(object, "orig")), col = 2) + legend(lpos, inset = c(0.05, 0.05), bty = "n", + lty = 1, col = c(2, 1), + legend = c("original log likelihood", + "kernel density estimate")) +} -- cgit v1.2.1