hyper3 | R Documentation |
hyper3
objects
Objects of class hyper3
are a generalization of hyper2
objects
that allow the brackets to contain weighted probabilities.
As a motivating example, suppose two players with Bradley-Terry strengths \mjseqnp_1,p_2 play chess where we quantify the first-mover advantage with a term \mjeqn\lambdaomitted. If \mjseqnp_1 plays white \mjseqna+b times with \mjseqna wins and \mjseqnb losses, and plays black \mjseqnc+d times with \mjseqnc wins and \mjseqnd losses, then a sensible likelihood function might be
\mjdeqn \left(\frac\lambda p_1\lambda p_1 + p_2\right)^a \left(\fracp_2 \lambda p_1 + p_2\right)^b \left(\fracp_1 p_1 + \lambda p_2\right)^c \left(\frac\lambda p_2p_1 + \lambda p_2\right)^d omitted: see PDF
If \mjseqna=1,b=2,c=3,d=4 and \mjeqn\lambda=1.3omitted appropriate package idiom might be:
H <- hyper3() H[c(p1=1.3)] %<>% inc(1) # a=1 H[c(p2=1)] %<>% inc(2) # b=2 H[c(p1=1.3,p2=1)] %<>% dec(3) # a+b=1+2=3 H[c(p1=1)] %<>% inc(3) # c=3 H[c(p2=1.3)] %<>% inc(4) # d=4 H[c(p1=1,p2=1.3)] %<>% dec(7) # c+d=3+4=7 H > log( (p1=1)^3 * (p1=1, p2=1.3)^-7 * (p1=1.3)^1 * (p1=1.3, p2=1)^-3 * (p2=1)^2 * (p2=1.3)^4)
hyper3(B = list(), W = list(), powers = 0, pnames) hyper3_bw(B = list(), W = list(), powers = 0, pnames) hyper3_nv(L=list(),powers=0,pnames)
B |
A list of brackets |
W |
A list of weights |
L |
A list of named vectors |
powers |
Numeric vector of powers |
pnames |
Character vector of player names |
Function hyper3()
is the user-friendly creation method,
which dispatches to helper functions hyper3_bw()
and
hyper3_nv()
depending on its arguments.
Function hyper3_bw()
takes a list of brackets
(character vectors) and a list of weights (numeric vectors) and
returns a hyper3
object.
Function hyper2_nv()
takes a list of named vectors and
returns a hyper3
object.
Function evaluate3()
is a low-level helper function
that evaluates a log-likelihood at a point in probability space.
Don't use this: use the user-friendly loglik()
instead, which
dispatches to evaluate3()
.
Function maxp3()
is a placeholder (it is not yet
written). But the intention is that it will maximize the
log-likelihood of a hype3
object over the Bradley Terry
strengths and any weights given. This might not be possible
as envisaged right now; I present some thoughts in
inst/kka.Rmd
.
Function list2nv()
converts a list of character vectors
into a named vector suitable for use as argument e
of
function cheering3()
. It is used in
inst/global_liveability_ranking.Rmd
.
Generally return or deal with hyper3
objects
Functionality for hyper3
objects is generally indicated by adding
a “3
” to function names, eg gradient()
goes to
gradient3()
.
Robin K. S. Hankin
hyper2
hyper3(B=list("a",c("a","b"),"b"),W=list(1.2,c(1.2,1),1),powers=c(3,4,-7)) hyper3(list(c(a=1.2),c(b=1),c(a=1.2,b=1)),powers=c(3,4,-7)) ## Above two objects should be identical a <- hyper3() # default creation method [empty object] a[c(p1=1.3)] <- 5 a[c(p1=1.3)] <- a[c(p1=1.3)] + 3 a[c(p1=1.3,p2=1)] <- a[c(p1=1.3,p2=1)] -1 a chess3 # representative simple hyper3 object
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.