allboards
Various board functionality
A board is a matrix with non-negative integer elements. It
represents a contingency table; NA
entries specify structural
zeros. Function allboards()
takes a matrix x
, coerces
it to a board, then enumerates all boards with identical marginal
totals, and zeros at the same locations as the structural zeros of
x
.
- Keywords
- array
Usage
no.of.boards(x, n = 1e5)
allboards(x, n = 1e5, func=NULL)
allprobs(x, n = 1e5, normalize=TRUE, give.log=FALSE, use.C=TRUE)
is.1dof(x)
maxlike(x)
Arguments
- x
- Matrix, coerced to integer. Usually with one or more
NA
entries - n
- Integer specifying how many boards to return. See details section
- use.C
- In function
allprobs()
, Boolean with defaultTRUE
meaning to use theC
routine, andFALSE
meaning to use anR
routine - func
- In function
allboards()
, argument to specify the function returned; defaultNULL
means to return the whole board - normalize
- In function
allprobs()
, Boolean with defaultTRUE
meaning to normalize the returned values so they sum to one (and thus correspond to probabilities conditional on the marginal totals and structural zeros) - give.log
- Boolean specifying whether to return the log of the probabilities
Details
Function no.of.boards(x)
returns the number of boards with
non-negative entries that have the same marginal totals as x
and structural zeros where x
has NA
entries (that is,
permissible boards). Function allboards()
enumerates
such boards.
Function prob(x)
returns a number proportional to the
probability of observing x
, given the structural zeros and
marginal total.
Function is.1dof(x)
returns TRUE
if and only if x
is of the same form as gear
, and thus has only one degree of
freedom. Note that there exist other configurations which have only
one degree of freedom (such as any permutation of the rows and columns
of gear
).
Function maxlike(x)
returns the entry of allboards()
that has the highest probability of occurring. Compare best()
.
In functions no.of.boards()
and allboards()
, argument
n
is the maximum number of boards (or maximum count) returned,
except for special value 0
, which means to return (or count)
all possible boards.
(Actually, if there are more than n
permissible boards, the
first n+1
boards are returned by allboards()
, and
n+1
is returned by no.of.boards()
. This is because the
C
code checks for the last board having a successor).
Warning Many frequently-encountered boards have a very large
number of possible configurations, and if called with n=0
,
these functions will iterate for a very long time before
stopping.
See Also
Examples
data(chess)
allboards(chess)
maxlike(chess)
data(frogs)
x <- matrix(c(28,2,9,7,3,1,14,34,9,8,6,2),ncol=2)
no.of.boards(x) # Should be 339314 according to Gail and Mantel
data(iqd)
f <- function(x){x[1,1]}
table(allboards(iqd,1000,f))