# logLik

##### Extract Log-Likelihood

This function is generic; method functions can be written to handle
specific classes of objects. Classes which have methods for this
function include: `"glm"`

, `"lm"`

, `"nls"`

and
`"Arima"`

. Packages contain methods for other classes, such as
`"fitdistr"`

, `"negbin"`

and `"polr"`

in package
MASS, `"multinom"`

in package nnet and
`"gls"`

, `"gnls"`

`"lme"`

and others in package
nlme.

- Keywords
- models

##### Usage

`logLik(object, …)`# S3 method for lm
logLik(object, REML = FALSE, …)

##### Arguments

- object
any object from which a log-likelihood value, or a contribution to a log-likelihood value, can be extracted.

- …
some methods for this generic function require additional arguments.

- REML
an optional logical value. If

`TRUE`

the restricted log-likelihood is returned, else, if`FALSE`

, the log-likelihood is returned. Defaults to`FALSE`

.

##### Details

`logLik`

is most commonly used for a model fitted by maximum
likelihood, and some uses, e.g.by `AIC`

, assume
this. So care is needed where other fit criteria have been used, for
example REML (the default for `"lme"`

).

For a `"glm"`

fit the `family`

does not have to
specify how to calculate the log-likelihood, so this is based on using
the family's `aic()`

function to compute the AIC. For the
`gaussian`

, `Gamma`

and
`inverse.gaussian`

families it assumed that the dispersion
of the GLM is estimated and has been counted as a parameter in the AIC
value, and for all other families it is assumed that the dispersion is
known. Note that this procedure does not give the maximized
likelihood for `"glm"`

fits from the Gamma and inverse gaussian
families, as the estimate of dispersion used is not the MLE.

For `"lm"`

fits it is assumed that the scale has been estimated
(by maximum likelihood or REML), and all the constants in the
log-likelihood are included. That method is only applicable to
single-response fits.

##### Value

Returns an object of class `logLik`

. This is a number with at
least one attribute, `"df"`

(**d**egrees of **f**reedom),
giving the number of (estimated) parameters in the model.

There is a simple `print`

method for `"logLik"`

objects.

There may be other attributes depending on the method used: see the
appropriate documentation. One that is used by several methods is
`"nobs"`

, the number of observations used in estimation (after
the restrictions if `REML = TRUE`

).

##### References

For `logLik.lm`

:

Harville, D.A. (1974).
Bayesian inference for variance components using only error contrasts.
*Biometrika*, **61**, 383--385.
10.2307/2334370.

##### See Also

`logLik.gls`

, `logLik.lme`

, in
package nlme, etc.

##### Examples

`library(stats)`

```
# NOT RUN {
x <- 1:5
lmx <- lm(x ~ 1)
logLik(lmx) # using print.logLik() method
utils::str(logLik(lmx))
## lm method
(fm1 <- lm(rating ~ ., data = attitude))
logLik(fm1)
logLik(fm1, REML = TRUE)
# }
# NOT RUN {
utils::data(Orthodont, package = "nlme")
fm1 <- lm(distance ~ Sex * age, Orthodont)
logLik(fm1)
logLik(fm1, REML = TRUE)
# }
```

*Documentation reproduced from package stats, version 3.6.2, License: Part of R 3.6.2*