Description Usage Arguments Details Value Author(s) References See Also Examples

Calculate Cramer's V, Pearson's contingency coefficient and phi,
Yule's Q and Y and Tschuprow's T of `x`

, if `x`

is a table. If both, `x`

and `y`

are given, then the according table will be built first.

1 2 3 4 5 6 7 8 |

`x` |
can be a numeric vector, a matrix or a table. |

`y` |
NULL (default) or a vector with compatible dimensions to |

`conf.level` |
confidence level of the interval. This is only implemented for Cramer's V. If set to |

`method` |
string defining the method to calculate confidence intervals for Cramer's V. One out of |

`correct` |
logical. This argument only applies for |

`...` |
further arguments are passed to the function |

For x either a matrix or two vectors `x`

and `y`

are expected. In latter case `table(x, y, ...)`

is calculated.
The function handles `NAs`

the same way the `table`

function does, so tables are by default calculated with `NAs`

omitted.

A provided matrix is interpreted as a contingency table, which seems in the case of frequency data the natural interpretation
(this is e.g. also what `chisq.test`

expects).

Use the function `PairApply`

(pairwise apply) if the measure should be calculated pairwise for all columns.
This allows matrices of association measures to be calculated the same way `cor`

does. `NAs`

are by default omitted pairwise,
which corresponds to the `pairwise.complete`

option of `cor`

.
Use `complete.cases`

, if only the complete cases of a `data.frame`

are to be used. (see examples)

The maximum value for Phi is *√(min(r, c) - 1)*. The contingency coefficient goes from 0 to *√(\frac{min(r, c) - 1}{min(r, c)})*. For the corrected contingency coefficient and for Cramer's V the range is 0 to 1.

A Cramer's V in the range of [0, 0.3] is considered as weak, [0.3,0.7] as medium and > 0.7 as strong.
The minimum value for all is 0 under statistical independence.

a single numeric value if no confidence intervals are requested,

and otherwise a numeric vector with 3 elements for the estimate, the lower and the upper confidence interval

Andri Signorell <[email protected]>,

Michael Smithson <[email protected]> (confidence intervals for Cramer V)

Yule, G. Uday (1912) On the methods of measuring association between two attributes. *Journal of the Royal Statistical Society, LXXV*, 579-652

Tschuprow, A. A. (1939) *Principles of the Mathematical Theory of Correlation*, translated by M. Kantorowitsch. W. Hodge & Co.

Cramer, H. (1946) *Mathematical Methods of Statistics*. Princeton University Press

Agresti, Alan (1996) *Introduction to categorical data analysis*. NY: John Wiley and Sons

Sakoda, J.M. (1977) Measures of Association for Multivariate Contingency Tables,
*Proceedings of the Social Statistics Section of the American Statistical Association* (Part III), 777-780.

Smithson, M.J. (2003) *Confidence Intervals, Quantitative Applications in the Social Sciences Series*, No. 140. Thousand Oaks, CA: Sage. pp. 39-41

`table`

, `PlotCorr`

, `PairApply`

, `Assocs`

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 | ```
tab <- table(d.pizza$driver, d.pizza$wine_delivered)
Phi(tab)
ContCoef(tab)
CramerV(tab)
TschuprowT(tab)
# just x and y
CramerV(d.pizza$driver, d.pizza$wine_delivered)
# data.frame
PairApply(d.pizza[,c("driver","operator","area")], CramerV, symmetric = TRUE)
# useNA is passed to table
PairApply(d.pizza[,c("driver","operator","area")], CramerV,
useNA="ifany", symmetric = TRUE)
d.frm <- d.pizza[,c("driver","operator","area")]
PairApply(d.frm[complete.cases(d.frm),], CramerV, symmetric = TRUE)
m <- as.table(matrix(c(2,4,1,7), nrow=2))
YuleQ(m)
YuleY(m)
# Bootstrap confidence intervals for Cramer's V
# http://support.sas.com/documentation/cdl/en/statugfreq/63124/PDF/default/statugfreq.pdf, p. 1821
tab <- as.table(rbind(
c(26,26,23,18, 9),
c( 6, 7, 9,14,23)))
d.frm <- Untable(tab)
n <- 1000
idx <- matrix(sample(nrow(d.frm), size=nrow(d.frm) * n, replace=TRUE), ncol=n, byrow=FALSE)
v <- apply(idx, 2, function(x) CramerV(d.frm[x,1], d.frm[x,2]))
quantile(v, probs=c(0.025,0.975))
# compare this to the analytical ones
CramerV(tab, conf.level=0.95)
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.