# suplist: Methods for suplist objects In hyper2: The Hyperdirichlet Distribution, Mark 2

## Description

Basic functionality for lists of hyper2 objects, allowing the user to concatenate independent observations which are themselves composite objects such as returned by ggrl().

## Usage

 1 2 3 4 5 6 ## S3 method for class 'suplist' Ops(e1, e2) ## S3 method for class 'suplist' sum(x,...,na.rm=FALSE) suplist_add(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 \mjeqn\mboxProb(p|H_1)+\cdots+\mboxProb(p|H_n)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 \mjeqn\mathcalL_S(p)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 \mjeqn\mathcalL_H_1(p)=C_1\mathrmProb(p|H_1)? and \mjeqn\mathcalL_H_2(p)=C_2\mathrmProb(p|H_2)? and indeed \mjeqn\mathcalL_H_1\cup H_2(p)=C_12\left(\mathrmProb(p|H_1)+\mathrmProb(p|H_2)\right)? but

\mjdeqn\mathcal

L_H_1(p)+\mathcalL_H_2(p) \neq C_1\mathrmProb(p|H_1)+C_2\mathrmProb(p|H_2)see PDF

(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

\mjdeqn \mbox

Prob(p|S_1+S_2) = \left( \mboxProb(p|H_1) +\cdots+ \mboxProb(p|H_r) \right)\cdot\left( \mboxProb(p|I_1) +\cdots+ \mboxProb(p|I_s) \right)omitted; see PDF

\mjdeqn \log\mbox

Prob(p|S_1+S_2) = \log\left( \mboxProb(p|H_1) +\cdots+ \mboxProb(p|H_r) \right)+\log\left( \mboxProb(p|I_1) +\cdots+ \mboxProb(p|I_s) \right)omitted; see PDF

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 R idiom.

## Value

Returns a suplist object.

## Author(s)

Robin K. S. Hankin

Ops.hyper2,Extract,loglik
  1 2 3 4 5 6 7 8 9 10 11 12 13 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 indendent observations W1,W2,W3: W1+W2+W3 # A 2*6*2=24-element list like_single_list(indep(equalp(W)),W1+W2+W3) dotchart(maxplist(W1+W1+W3),pch=16)