aboutsummaryrefslogtreecommitdiff
path: root/R/llhist.R
diff options
context:
space:
mode:
Diffstat (limited to 'R/llhist.R')
-rw-r--r--R/llhist.R30
1 files changed, 30 insertions, 0 deletions
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"))
+}

Contact - Imprint