knitr::opts_chunk$set(
  message = TRUE,
  warning = TRUE,
  collapse = TRUE,
  comment = "#>"
)
library(concurve)

For this example, we'll explore the curve_lik() function, which can help generate profile likelihood functions, and deviance functions with the help of the ProfileLikelihood package.[@choiProfileLikelihoodProfileLikelihood2011]. For an introduction to what profile likelihoods are, see the following paper.[@coleMaximumLikelihoodProfile2013]

library(ProfileLikelihood)

We'll use a simple example taken directly from the ProfileLikelihood documentation where we'll calculate the likelihoods from a glm model

data(dataglm)
xx <- profilelike.glm(y ~ x1 + x2,
  data = dataglm, profile.theta = "group",
  family = binomial(link = "logit"), length = 500, round = 2
)

Then, we’ll use curve_lik() on the object that the ProfileLikelihood package produced.

lik <- curve_lik(xx, data = dataglm)

Next, we’ll plot four functions, the relative likelihood, the log-likelihood, the likelihood, and the deviance function.

ggcurve(lik[[1]], type = "l1", nullvalue = TRUE)
ggcurve(lik[[1]], type = "l2")
ggcurve(lik[[1]], type = "l3")
ggcurve(lik[[1]], type = "d")

The obvious advantage of using reduced likelihoods is that they are free of nuisance parameters

$$L_{t_{n}}(\theta)=f_{n}\left(F_{n}^{-1}\left(H_{p i v}(\theta)\right)\right)\left|\frac{\partial}{\partial t} \psi\left(t_{n}, \theta\right)\right|=h_{p i v}(\theta)\left|\frac{\partial}{\partial t} \psi(t, \theta)\right| /\left.\left|\frac{\partial}{\partial \theta} \psi(t, \theta)\right|\right|{t=t{n}}$$ thus, giving summaries of the data that can be incorporated into combined analyses.

Cite R Packages

Please remember to cite the packages that you use.

citation("concurve")
citation("ProfileLikelihood")

References




Zadchow/concurve documentation built on Jan. 11, 2024, 4:55 a.m.