fourfoldplot(x, color = c("#99CCFF", "#6699CC"), conf.level = 0.95, std = c("margins", "ind.max", "all.max"), margin = c(1, 2), space = 0.2, main = NULL, mfrow = NULL, mfcol = NULL)
"margins"
, "ind.max"
, or
"all.max"
, and can be abbreviated to the initial letter.
If set to "margins"
, each 2 by 2 table is standardized to
equate the margins specified by margin
while preserving the
odds ratio. If "ind.max"
or "all.max"
, the tables are
either individually or simultaneously standardized to a maximal cell
frequency of 1.1
, 2
, or c(1, 2)
(the default), which
corresponds to standardizing the row, column, or both margins in
each 2 by 2 table.
Only used if std
equals "margins"
.c(nr, nc)
, indicating
that the displays for the 2 by 2 tables should be arranged in an
nr
by nc
layout, filled by rows.c(nr, nc)
, indicating
that the displays for the 2 by 2 tables should be arranged in an
nr
by nc
layout, filled by columns.Following suitable standardization, the cell frequencies $f[i,j]$ of each 2 by 2 table are shown as a quarter circle whose radius is proportional to $sqrt(f[i,j])$ so that its area is proportional to the cell frequency. An association (odds ratio different from 1) between the binary row and column variables is indicated by the tendency of diagonally opposite cells in one direction to differ in size from those in the other direction; color is used to show this direction. Confidence rings for the odds ratio allow a visual test of the null of no association; the rings for adjacent quadrants overlap if and only if the observed counts are consistent with the null hypothesis.
Typically, the number $k$ corresponds to the number of levels of a stratifying variable, and it is of interest to see whether the association is homogeneous across strata. The fourfold display visualizes the pattern of association. Note that the confidence rings for the individual odds ratios are not adjusted for multiple testing.
mosaicplot
## Use the Berkeley admission data as in Friendly (1995).
x <- aperm(UCBAdmissions, c(2, 1, 3))
dimnames(x)[[2]] <- c("Yes", "No")
names(dimnames(x)) <- c("Sex", "Admit?", "Department")
stats::ftable(x)
## Fourfold display of data aggregated over departments, with
## frequencies standardized to equate the margins for admission
## and sex.
## Figure 1 in Friendly (1994).
fourfoldplot(margin.table(x, c(1, 2)))
## Fourfold display of x, with frequencies in each table
## standardized to equate the margins for admission and sex.
## Figure 2 in Friendly (1994).
fourfoldplot(x)
## Fourfold display of x, with frequencies in each table
## standardized to equate the margins for admission. but not
## for sex.
## Figure 3 in Friendly (1994).
fourfoldplot(x, margin = 2)
Run the code above in your browser using DataLab