Last chance! 50% off unlimited learning
Sale ends in
loglin
and also provide for conversion to an
equivalent loglm
specification or a shorthand character
string representation.
They allow for a more conceptual
way to specify such models by a function for their type, as opposed
to just an uninterpreted list of model terms
and also allow
easy specification of marginal models for a given contingency table.
They are intended to be used as tools in higher-level modeling and
graphics functions, but can also be used directly.conditional(nf, table = NULL, factors = 1:nf, with = nf)
joint(nf, table = NULL, factors = 1:nf, with = nf)
markov(nf, factors = 1:nf, order = 1)
mutual(nf, table = NULL, factors = 1:nf)
saturated(nf, table = NULL, factors = 1:nf)
loglin2formula(x, env = parent.frame())
loglin2string(x, brackets = c("[", "]"), sep = ",", collapse = " ", abbrev)
table
and possibly permuted with aperm
table
is not specifiedjoint
and conditional
models, with
gives the
indices of the factors against which all others are considered jointly
or conditionally independentmarkov
, this gives the order of the Markov chain model for the
factors. An order=1
Markov chain allows associations among
sequential pairs of factors, e.g., [A,B], [B,C], [C,D]
....
An order=2
Maloglin2*
functions,
a list of terms in a loglinear model, such as returned by conditional
, joint
,
...loglin2formula
, environment in which to evaluate the formulaloglin2string
,
characters to use to surround model terms.
Either a single character string containing two characters (e.g., '[]'
or a character vector of length two.loglin2string
,
the separator character string used for factor names within a given model termloglin2string
,
the character string used between terms in the the model stringloglin2string
,
whether and how to abbreviate the terms in the string representation.
This has not yet been implemented.conditional
, joint
,
markov
, ..., the result is
a list of vectors (terms), where the elements in each vector are the
names of the factors. The elements of the list are given names
term1, term2, ...
.conditional
, joint
,
markov
, ..., saturated
,
return a list of vectors indicating the marginal totals to be fit,
via the margin
argument to loglin
.
Each element of this list corresponds to a high-order
term in a hierarchical loglinear model, where, e.g., a term
like c("A", "B")
is equivalent to the loglm
term "A:B"
and hence automatically includes all low-order terms.
Note that these can be used to supply the expected
argument for
the default mosaic
function, when the data is supplied
as a contingency table.
The table below shows some typical results in terms of the standard shorthand
notation for loglinear models, with factors A, B, C, ..., where brackets
are used to delimit the high-order terms in the loglinear model.
mutual
[A] [B] [C] [A] [B] [C] [D] [A] [B] [C] [D] [E]
joint
[AB] [C] [ABC] [D] [ABCE] [E]
joint (with=1)
[A] [BC] [A] [BCD] [A] [BCDE]
conditional
[AC] [BC] [AD] [BD] [CD] [AE] [BE] [CE] [DE]
condit (with=1)
[AB] [AC] [AB] [AC] [AD] [AB] [AC] [AD] [AE]
markov (order=1)
[AB] [BC] [AB] [BC] [CD] [AB] [BC] [CD] [DE]
markov (order=2)
[A] [B] [C] [ABC] [BCD] [ABC] [BCD] [CDE]
saturated
[ABC] [ABCD] [ABCDE]
}
loglin2formula
converts the output of one of these to a model formula
suitable as the formula
for of loglm
.
loglin2string
converts the output of one of these to a string
describing the loglinear model in the shorthand bracket notation,
e.g., "[A,B] [A,C]"
.loglin
,
loglm
joint(3, table=HairEyeColor)
# as a formula or string
loglin2formula(joint(3, table=HairEyeColor))
loglin2string(joint(3, table=HairEyeColor))
joint(2, HairEyeColor) # marginal model for [Hair] [Eye]
# other possibilities
joint(4, factors=letters, with=1)
joint(5, factors=LETTERS)
joint(5, factors=LETTERS, with=4:5)
conditional(4)
conditional(4, with=3:4)
# use in mosaic displays or other strucplots
mosaic(HairEyeColor, expected=joint(3))
mosaic(HairEyeColor, expected=conditional(3))
# use with MASS::loglm
cond3 <- loglin2formula(conditional(3, table=HairEyeColor))
cond3 <- loglin2formula(conditional(3)) # same, with factors 1,2,3
require(MASS)
loglm(cond3, data=HairEyeColor)
saturated(3, HairEyeColor)
loglin2formula(saturated(3, HairEyeColor))
loglin2string(saturated(3, HairEyeColor))
loglin2string(saturated(3, HairEyeColor), brackets='{}', sep=', ')
Run the code above in your browser using DataLab