Learn R Programming

VLMC (version 1.3-13)

logLik: Log Likelihood of and between VLMC objects

Description

Compute the log-likelihood or ``entropy'' of a fitted vlmc object. This is a method for the generic logLik.

Usage

entropy(object)
## S3 method for class 'vlmc':
logLik(object, \dots)
entropy2(ivlmc1, ivlmc2, alpha.len = ivlmc1[1])

Arguments

object
typically the result of vlmc(..).
ivlmc1,ivlmc2
two vlmc (sub) trees, see vlmc.
alpha.len
positive integer specifying the alphabet length.
...
(potentially more arguments; required by generic)

Value

  • a negative number, in some contexts typically further divided by log(x$alpha.len).

    Note that the logLik method is used by the default method of the AIC generic function (from R version 1.4.x), and hence provides AIC(object) for vlmc objects. Also, since vlmc version 1.3-13, BIC() works as well.

Details

The logLik.vlmc() method computes the log likelihood for a fitted vlmc object. entropy is an alias for logLik for reasons of back compatibility.

entropy2 is less clear ... ... [[[ FIXME ]]] ... ...

See Also

deviance.vlmc, vlmc, draw.vlmc.

Examples

Run this code
dd <- cumsum(rpois(999, 1.5)) %% 10
(vd <- vlmc(dd))
logLik(vd)

## AIC model selection:
f1 <- c(1,0,0,0)  # as in example(vlmc)
f2 <- rep(1:0,2)
(dt1 <- c(f1,f1,f2,f1,f2,f2,f1))
AIC(print(vlmc(dt1)))
AIC(print(vlmc(dt1, cutoff = 2.6)))
AIC(print(vlmc(dt1, cutoff = 0.4)))# these two differ ``not really''
AIC(print(vlmc(dt1, cutoff = 0.1)))

## Show how to compute it from the fitted conditional probabilities :
logLikR <- function(x) {
    dn <- dimnames(pr <- predict(x))
    sum(log(pr[cbind(2:nrow(pr), match(dn[[1]][-1], dn[[2]]))]))
}

all.equal(  logLikR(vd),
          c(logLik (vd)), tol=1e-10) # TRUE, they do the same

## Compare different ones:  [cheap example]:
example(draw)
for(n in ls())
  if(is.vlmc(get(n))) {
       vv <- get(n)
       cat(n,":",formatC(logLik(vv) / log(vv$alpha.len),
                         format= "f", wid=10),"")
  }

Run the code above in your browser using DataLab