suplist | R Documentation |
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)
e1 , e2 |
Objects of class |
x , ... , na.rm |
In the |
L |
A list of |
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
\mbox{Prob}(p|H_1)+\cdots+\mbox{Prob}(p|H_n)
.
This is because the elements of a suplist
object are disjoint
alternatives.
It is incorrect to say that a likelihood function
\mathcal{L}_S(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
\mathcal{L}_{H_1}(p)=C_1\mathrm{Prob}(p|H_1)
and
\mathcal{L}_{H_2}(p)=C_2\mathrm{Prob}(p|H_2)
and indeed
\mathcal{L}_{{H_1}\cup H_2}(p)=C_{12}\left(\mathrm{Prob}(p|H_1)+\mathrm{Prob}(p|H_2)\right)
but
\mathcal{L}_{H_1}(p)+\mathcal{L}_{H_2}(p) \neq
C_1\mathrm{Prob}(p|H_1)+C_2\mathrm{Prob}(p|H_2)
(the right hand side is meaningless).
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
followed by (independent) S2
. Formally
\mbox{Prob}(p|S_1+S_2) =
\left(
\mbox{Prob}(p|H_1)
+\cdots+
\mbox{Prob}(p|H_r)
\right)\cdot\left(
\mbox{Prob}(p|I_1)
+\cdots+
\mbox{Prob}(p|I_s)
\right)
\log\mbox{Prob}(p|S_1+S_2) =
\log\left(
\mbox{Prob}(p|H_1)
+\cdots+
\mbox{Prob}(p|H_r)
\right)+\log\left(
\mbox{Prob}(p|I_1)
+\cdots+
\mbox{Prob}(p|I_s)
\right)
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 a suplist
object.
Robin K. S. Hankin
Ops.hyper2
,Extract
,loglik
W <- hyper2(pnames=letters[1:5])
W1 <- ggrl(W, 'a', letters[2:3],'d') # 2-element list
W2 <- ggrl(W, 'e', letters[1:3],'d') # 6-element list
W3 <- 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 list
like_single_list(equalp(W),W1+W2+W3)
## Not run: dotchart(maxplist(W1+W1+W3),pch=16) # takes a long time
a <- lsl(list(W1,W2,W3),4:6) # observe W1 four times, W2 five times and W3 six times
loglik_lsl(equalp(W),a,log=TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.