conditionMatrix | R Documentation |
Given a numeric array or matrix (of probabilities), calculates margins of some dimensions conditional on particular values of others.
conditionMatrix( x, variables, condition = NULL, condition.value = NULL, dim = NULL, incols = FALSE, undef = NaN ) conditionTable( x, variables, condition = NULL, condition.value = NULL, undef = NaN, order = TRUE ) conditionTable2(x, variables, condition, undef = NaN)
x |
A numeric array. |
variables |
An integer vector containing the margins of interest from
|
condition |
An integer vector containing the dimensions of |
condition.value |
An integer vector or list of the same length as
|
dim |
Integer vector containing dimensions of variables. Assumed all binary if not specified. |
incols |
Logical specifying whether not the distributions are stored as the columns in the matrix; assumed to be rows by default. |
undef |
if conditional probability is undefined, what should the value be given as |
order |
logical - if |
conditionTable
calculates the marginal distribution over the
dimensions in variables
for each specified value of the dimensions in
condition
. Single or multiple values of each dimension in
condition
may be specified in condition.value
; in the case of
multiple values, condition.value
must be a list.
The sum over the dimensions in variables
is normalized to 1 for each
value of condition
.
conditionTable2
is just a wrapper which returns the conditional
distribution as an array of the same dimensions and ordering as the original
x
. Values are repeated as necessary.
conditionMatrix
takes a matrix whose rows (or columns if incols
= TRUE
) each represent a separate multivariate probability distribution and
finds the relevant conditional distribution in each case. These are then
returned in the same format. The order of the variables under
conditionMatrix
is always as in the original distribution, unlike for
conditionTable
above.
The probabilities are assumed in reverse lexicographic order, as in a flattened R array: i.e. the first value changes fastest: (1,1,1), (2,1,1), (1,2,1), ..., (2,2,2).
condition.table
and condition.table2
are identical to
conditionTable
and conditionTable2
.
conditionTable
returns an array whose first
length(variables)
corresponds to the dimensions in variables
,
and the remainder (if any) to dimensions in condition
with a
corresponding entry in condition.value
of length > 1.
conditionTable2
always returns an array of the same dimensions as
x
, with the variables in the same order.
conditionMatrix
: Conditioning in matrix of distributions
conditionTable2
: Conditioning whilst preserving all dimensions
Mathias Drton, Robin Evans
marginTable
, margin.table
,
interventionTable
x = array(1:16, rep(2,4)) x = x/sum(x) # probability distribution on 4 binary variables x1, x2, x3, x4. # distribution of x2, x3 given x1 = 1 and x4=2. conditionTable(x, c(2,3), c(1,4), c(1,2)) # x2, x3 given x1 = 1,2 and x4 = 2. conditionTable(x, c(2,3), c(1,4), list(1:2,2)) # complete conditional of x2, x3 given x1, x4 conditionTable(x, c(2,3), c(1,4)) # conditionTable2 leaves dimensions unchanged tmp = conditionTable2(x, c(2,3), c(1,4)) aperm(tmp, c(2,3,1,4)) #### set.seed(2314) # set of 10 2x2x2 probability distributions x = rdirichlet(10, rep(1,8)) conditionMatrix(x, 3, 1) conditionMatrix(x, 3, 1, 2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.