Basic functionality for lists of hyper2 objects, allowing the user to concatenate independent observations which are themselves composite objects such as returned by ggrl().
## S3 method for class 'suplist'Ops(e1, e2)## S3 method for class 'suplist'sum(x,...,na.rm=FALSE)suplist_add(e1,e2)suplist_times_scalar(e1,e2)as.suplist(L)
Arguments
e1,e2: Objects of class suplist, here interpreted as a list of possible likelihood functions (who should be added)
x,...,na.rm: In the sum() method, objects to be summed; na.rm is currently ignored
L: A list of hyper2 objects
Details
A suplist object is a list of hyper2 objects. Each element is a hyper2 object that is consistent with an incomplete rank observation R; the list elements are exclusive and exhaustive for R. If S is a suplist object, and S=list(H1,H2,...,Hn) where the Hi are hyper2
objects, then Prob(p∣H1)+...+Prob(p∣Hn). This is because the elements of a suplist object are disjoint alternatives.
It is incorrect to say that a likelihood function LS(p) for p is the sum of separate likelihood functions. This is incorrect because the arbitrary multiplicative constant messes up the math, for example we might have ? and ? and indeed ? but
Functions suplist_add() and sum.suplist() implement ‘S1+S2’ as the support function for independent observations S1 and S2. The idea is that the support functions add in the following sense. If S1=list(H1,...,Hr) and S2=list(I1,...,Is) where Hx,Ix are hyper2 objects, then the likelihood function for ‘S1+S2’ is the likelihood function for S1
However, S1+S2 is typically a large and unwieldy object, and can be very slow to evaluate. These functions are here because they provide slick package idiom.
The experimental lsl mechanism furnishes an alternative methodology which is more computationally efficient at the expense of a non-explicit likelihood function. It is not clear at present (2022) which of the two systems is better.
Returns
Returns a suplist object.
Author(s)
Robin K. S. Hankin
See Also
Ops.hyper2,Extract,loglik
Examples
W <- hyper2(pnames=letters[1:5])W1 <- ggrl(W,'a', letters[2:3],'d')# 2-element listW2 <- ggrl(W,'e', letters[1:3],'d')# 6-element listW3 <- ggrl(W,'c', letters[4:5],'a')# 2-element list# likelihood function for independent observations W1,W2,W3:W1+W2+W3 # A 2*6*2=24-element listlike_single_list(equalp(W),W1+W2+W3)## Not run: dotchart(maxplist(W1+W1+W3),pch=16)# takes a long timea <- lsl(list(W1,W2,W3),4:6)# observe W1 four times, W2 five times and W3 six timesloglik_lsl(equalp(W),a,log=TRUE)