Description Usage Format Details Source References See Also Examples
Minnesota high school graduates of June 1930 were classified with respect to
(a) Rank
by thirds in their graduating class, (b) post-high school Status
in April 1939 (4 levels), (c) Sex
,
(d) father's Occupation
al status (7 levels, from 1=High to 7=Low).
The data were first presented by Hoyt et al. (1959) and have been analyzed by Fienberg(1980), Plackett(1974) and others.
1 |
A 4-dimensional array resulting from cross-tabulating 4 variables for 13968 observations. The variable names and their levels are:
No | Name | Levels |
1 | Status | "College", "School", "Job", "Other" |
2 | Rank | "Low", "Middle", "High" |
3 | Occupation | "1", "2", "3", "4", "5", "6", "7" |
4 | Sex | "Male", "Female" |
Post high-school Status
is natural to consider as the response.
Rank
and father's Occupation
are ordinal variables.
Fienberg, S. E. (1980). The Analysis of Cross-Classified Categorical Data. Cambridge, MA: MIT Press, p. 91-92.
R. L. Plackett, (1974). The Analysis of Categorical Data. London: Griffin.
Hoyt, C. J., Krishnaiah, P. R. and Torrance, E. P. (1959) Analysis of complex contingency tables, Journal of Experimental Education 27, 187-194.
minn38
provides the same data as a data frame.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | data(Hoyt)
# display the table
structable(Status+Sex ~ Rank+Occupation, data=Hoyt)
# mosaic for independence model
plot(Hoyt, shade=TRUE)
# examine all pairwise mosaics
pairs(Hoyt, shade=TRUE)
# collapse Status to College vs. Non-College
Hoyt1 <- collapse.table(Hoyt, Status=c("College", rep("Non-College",3)))
plot(Hoyt1, shade=TRUE)
#################################################
# fitting models with loglm, plotting with mosaic
#################################################
# fit baseline log-linear model for Status as response
require(MASS)
hoyt.mod0 <- loglm(~ Status + (Sex*Rank*Occupation), data=Hoyt1)
hoyt.mod0
mosaic(hoyt.mod0, gp=shading_Friendly, main="Baseline model: Status + (Sex*Rank*Occ)")
# add one-way association of Status with factors
hoyt.mod1 <- loglm(~ Status * (Sex + Rank + Occupation) + (Sex*Rank*Occupation), data=Hoyt1)
hoyt.mod1
mosaic(hoyt.mod1, gp=shading_Friendly, main="Status * (Sex + Rank + Occ)")
# can we drop any terms?
drop1(hoyt.mod1, test="Chisq")
# assess model fit
anova(hoyt.mod0, hoyt.mod1)
# what terms to add?
add1(hoyt.mod1, ~.^2, test="Chisq")
# add interaction of Sex:Occupation on Status
hoyt.mod2 <- update(hoyt.mod1, ~.+Status:Sex:Occupation)
mosaic(hoyt.mod2, gp=shading_Friendly, main="Adding Status:Sex:Occupation")
# compare model fits
anova(hoyt.mod0, hoyt.mod1, hoyt.mod2)
# Alternatively, try stepwise analysis, heading toward the saturated model
steps <- step(hoyt.mod0, direction="forward", scope=~Status*Sex*Rank*Occupation)
# display anova
steps$anova
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.