logLik {VLMC} | R Documentation |
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, ...)
entropy2(ivlmc1, ivlmc2, alpha.len = ivlmc1[1])
Arguments
object |
typically the result of |
ivlmc1 , ivlmc2 |
two |
alpha.len |
positive integer specifying the alphabet length. |
... |
(potentially more arguments; required by generic) |
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 ]]] ... ...
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.
Author(s)
Martin Maechler
See Also
deviance.vlmc
,
vlmc
, draw.vlmc
.
Examples
dd <- cumsum(rpois(999, 1.5)) %% 10
(vd <- vlmc(dd))
entropy(vd)# the bare number
logLik(vd)
logLik(vdL <- vlmc(dd, cutoff = 3))
entropy2(vd $vlmc.vec,
vdL$vlmc.vec)
## 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),"\n")
}