Fit All K-way Models in a GLM
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 glm
s
in the poission family), where it is desired to find the
highest-order terms necessary to achieve a satisfactory fit.
This function is also intended as an example of a generating function
for 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")
formula |
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
connected by |
family |
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.
(See |
data |
an optional data frame, list or environment (or object coercible by
|
... |
Other arguments passed to |
order |
Highest order interaction of the models generated. Defaults to the number of terms in the model formula. |
prefix |
Prefix used to label the models fit in the |
With y
as the response in the formula
, the 0-way (null) model
is 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 xtabs
)
you the 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 order+1
containing the 0-way, 1-way, ...
models up to degree order
.
Michael Friendly and Heather Turner
## 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)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.