Generate and fit all 0-way, 1-way, 2-way, ... k-way terms in a glm.
This function is designed mainly for hierarchical
loglinear models (or
in the poisson family), where it is desired to find the
highest-order terms necessary to achieve a satisfactory fit.
anova on the resulting
object will then give sequential tests of the pooled contributions of
all terms of degree k+1 over and above those of degree k.
This function is also intended as an example of a generating function
glmlist objects, to facilitate model comparison, extraction,
summary and plotting of model components, etc., perhaps using
lapply or similar.
Kway(formula, family=poisson, data, ..., order = nt, prefix = "kway")
a two-sided formula for the 1-way effects in the model.
The LHS should be the response, and the RHS should be the first-order terms
a description of the error distribution and link function to be used in the
model. This can be a character string naming a family function, a family
function or the result of a call to a family function.
an optional data frame, list or environment (or object coercible by
Other arguments passed to
Highest order interaction of the models generated. Defaults to the number of terms in the model formula.
Prefix used to label the models fit in the
y as the response in the
formula, the 0-way (null) model
y ~ 1.
The 1-way ("main effects") model is that specified in the
formula argument. The k-way model is generated using the formula
. ~ .^k.
With the default
order = nt, the final model is the saturated model.
As presently written, the function requires a two-sided formula with an explicit
response on the LHS. For frequency data in table form (e.g., produced by
data argument is coerced to a data.frame, so you
should supply the
formula in the form
Freq ~ ....
An object of class
glmlist, of length
containing the 0-way, 1-way, ...
models up to degree
Michael Friendly and Heather Turner
Summarise (soon to be deprecated),
## artificial data factors <- expand.grid(A=factor(1:3), B=factor(1:2), C=factor(1:3), D=factor(1:2)) Freq <- rpois(nrow(factors), lambda=40) df <- cbind(factors, Freq) mods3 <- Kway(Freq ~ A + B + C, data=df, family=poisson) LRstats(mods3) mods4 <- Kway(Freq ~ A + B + C + D, data=df, family=poisson) LRstats(mods4) # JobSatisfaction data data(JobSatisfaction, package="vcd") modSat <- Kway(Freq ~ management+supervisor+own, data=JobSatisfaction, family=poisson, prefix="JobSat") LRstats(modSat) anova(modSat, test="Chisq") # Rochdale data: very sparse, in table form data(Rochdale, package="vcd") ## Not run: modRoch <- Kway(Freq~EconActive + Age + HusbandEmployed + Child + Education + HusbandEducation + Asian + HouseholdWorking, data=Rochdale, family=poisson) LRstats(modRoch) ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.