agreementplot {vcd} | R Documentation |
Bangdiwala's Observer Agreement Chart
Description
Representation of a k \times k
confusion matrix,
where the observed and expected diagonal elements are represented by
superposed black and white rectangles, respectively. The function
also computes a statistic measuring the strength of agreement
(relation of respective area sums).
Usage
## Default S3 method:
agreementplot(x, reverse_y = TRUE, main = NULL,
weights = c(1, 1 - 1/(ncol(x) - 1)^2), margins = par("mar"),
newpage = TRUE, pop = TRUE,
xlab = names(dimnames(x))[2],
ylab = names(dimnames(x))[1],
xlab_rot = 0, xlab_just = "center",
ylab_rot = 90, ylab_just = "center",
fill_col = function(j) gray((1 - (weights[j]) ^ 2) ^ 0.5),
line_col = "red", xscale = TRUE, yscale = TRUE,
return_grob = FALSE,
prefix = "", ...)
## S3 method for class 'formula'
agreementplot(formula, data = NULL, ..., subset)
Arguments
x |
a confusion matrix, i.e., a table with equal-sized dimensions. |
reverse_y |
if |
main |
user-specified main title. |
weights |
vector of weights for successive larger observed areas, used in the agreement strength statistic, and also for the shading. The first element should be 1. |
margins |
vector of margins (see |
newpage |
logical; if |
pop |
logical; if |
return_grob |
logical. Should a snapshot of the display be returned as a grid grob? |
xlab , ylab |
labels of x- and y-axis. |
xlab_rot , ylab_rot |
rotation angle for the category labels. |
xlab_just , ylab_just |
justification for the category labels. |
fill_col |
a function, giving the fill colors used for exact and partial agreement |
line_col |
color used for the diagonal reference line |
formula |
a formula, such as |
data |
a data frame (or list), or a contingency table from which
the variables in |
subset |
an optional vector specifying a subset of the rows in the data frame to be used for plotting. |
xscale , yscale |
logicals indicating whether the marginals should be added on the x-axis/y-axis, respectively. |
prefix |
character string used as prefix for the viewport name |
... |
further graphics parameters (see |
Details
Weights can be specified to allow for partial agreement, taking into
account contributions from off-diagonal cells. Partial agreement
is typically represented in the display by lighter shading, as given by
fill_col(j)
, corresponding to weights[j]
.
A weight vector of length 1 means strict agreement only, each additional element increases the maximum number of disagreement steps.
cotabplot
can be used for stratified analyses (see examples).
Value
Invisibly returned, a list with components
Bangdiwala |
the unweighted agreement strength statistic. |
Bangdiwala_Weighted |
the weighted statistic. |
weights |
the weight vector used. |
Author(s)
David Meyer David.Meyer@R-project.org
References
Bangdiwala, S. I. (1988). The Agreement Chart. Department of Biostatistics, University of North Carolina at Chapel Hill, Institute of Statistics Mimeo Series No. 1859, https://repository.lib.ncsu.edu/bitstream/handle/1840.4/3827/ISMS_1988_1859.pdf
Bangdiwala, S. I., Ana S. Haedo, Marcela L. Natal, and Andres Villaveces. The agreement chart as an alternative to the receiver-operating characteristic curve for diagnostic tests. Journal of Clinical Epidemiology, 61 (9), 866-874.
Michael Friendly (2000), Visualizing Categorical Data. SAS Institute, Cary, NC.
Examples
data("SexualFun")
agreementplot(t(SexualFun))
data("MSPatients")
## Not run:
## best visualized using a resized device, e.g. using:
## get(getOption("device"))(width = 12)
pushViewport(viewport(layout = grid.layout(ncol = 2)))
pushViewport(viewport(layout.pos.col = 1))
agreementplot(t(MSPatients[,,1]), main = "Winnipeg Patients",
newpage = FALSE)
popViewport()
pushViewport(viewport(layout.pos.col = 2))
agreementplot(t(MSPatients[,,2]), main = "New Orleans Patients",
newpage = FALSE)
popViewport(2)
dev.off()
## End(Not run)
## alternatively, use cotabplot:
cotabplot(MSPatients, panel = cotab_agreementplot)