logLik {stats} | R Documentation |
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"
,
"Arima"
and "gls"
, "lme"
and others in package
nlme.
logLik(object, ...) ## S3 method for class 'lm': logLik(object, REML = FALSE, ...)
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 . |
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 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.
Returns an object of class logLik
. This is a number with at
least one attribute, "df"
(degrees of freedom),
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
).
José Pinheiro and Douglas Bates
For logLik.lm
:
Harville, D.A. (1974). Bayesian inference for variance components using only error contrasts. Biometrika, 61, 383–385.
logLik.gls
, logLik.lme
, in
package nlme, etc.
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) utils::data(Orthodont, package="nlme") fm1 <- lm(distance ~ Sex * age, Orthodont) logLik(fm1) logLik(fm1, REML = TRUE)