R/cramer.R
, R/phi.R
, R/xtab_statistics.R
crosstable_statistics.Rd
This function calculates various measure of association for contingency tables and returns the statistic and pvalue. Supported measures are Cramer's V, Phi, Spearman's rho, Kendall's tau and Pearson's r.
cramer(tab, ...)
# S3 method for formula
cramer(
formula,
data,
ci.lvl = NULL,
n = 1000,
method = c("dist", "quantile"),
...
)
phi(tab, ...)
crosstable_statistics(
data,
x1 = NULL,
x2 = NULL,
statistics = c("auto", "cramer", "phi", "spearman", "kendall", "pearson", "fisher"),
weights = NULL,
...
)
xtab_statistics(
data,
x1 = NULL,
x2 = NULL,
statistics = c("auto", "cramer", "phi", "spearman", "kendall", "pearson", "fisher"),
weights = NULL,
...
)
tab  A 

...  Other arguments, passed down to the statistic functions

formula  A formula of the form 
data  A data frame or a table object. If a table object, 
ci.lvl  Scalar between 0 and 1. If not 
n  Number of bootstraps to be generated. 
method  Character vector, indicating if confidence intervals should be
based on bootstrap standard error, multiplied by the value of the
quantile function of the tdistribution (default), or on sample
quantiles of the bootstrapped values. See 'Details' in 
x1  Name of first variable that should be used to compute the
contingency table. If 
x2  Name of second variable that should be used to compute the
contingency table. If 
statistics  Name of measure of association that should be computed. May
be one of 
weights  Name of variable in 
For phi()
, the table's Phi value. For cramer()
, the
table's Cramer's V.
For crosstable_statistics()
, a list with following components:
estimate
the value of the estimated measure of association.
p.value
the pvalue for the test.
statistic
the value of the test statistic.
stat.name
the name of the test statistic.
stat.html
if applicable, the name of the test statistic, in HTMLformat.
df
the degrees of freedom for the contingency table.
method
character string indicating the name of the measure of association.
method.html
if applicable, the name of the measure of association, in HTMLformat.
method.short
the short form of association measure, equals the statistics
argument.
fisher
logical, if Fisher's exact test was used to calculate the pvalue.
The pvalue for Cramer's V and the Phi coefficient are based
on chisq.test()
. If any expected value of a table cell is
smaller than 5, or smaller than 10 and the df is 1, then fisher.test()
is used to compute the pvalue, unless statistics = "fisher"
; in
this case, the use of fisher.test()
is forced to compute the
pvalue. The test statistic is calculated with cramer()
resp.
phi()
.
Both test statistic and pvalue for Spearman's rho, Kendall's tau
and Pearson's r are calculated with cor.test()
.
When statistics = "auto"
, only Cramer's V or Phi are calculated,
based on the dimension of the table (i.e. if the table has more than
two rows or columns, Cramer's V is calculated, else Phi).
# Phi coefficient for 2x2 tables
tab < table(sample(1:2, 30, TRUE), sample(1:2, 30, TRUE))
phi(tab)
#> [1] 0.04977376
# Cramer's V for nominal variables with more than 2 categories
tab < table(sample(1:2, 30, TRUE), sample(1:3, 30, TRUE))
cramer(tab)
#> [1] 0.157634
# formula notation
data(efc)
cramer(e16sex ~ c161sex, data = efc)
#> [1] 0.05258249
# bootstrapped confidence intervals
cramer(e16sex ~ c161sex, data = efc, ci.lvl = .95, n = 100)
#> cramer conf.low conf.high
#> 1 0.05258249 0.004321533 0.1085876
# 2x2 table, compute Phi automatically
crosstable_statistics(efc, e16sex, c161sex)
#>
#> # Measure of Association for Contingency Tables
#>
#> Chisquared: 2.2327
#> Phi: 0.0526
#> df: 1
#> pvalue: 0.135
#> Observations: 900
# more dimensions than 2x2, compute Cramer's V automatically
crosstable_statistics(efc, c172code, c161sex)
#>
#> # Measure of Association for Contingency Tables
#>
#> Chisquared: 4.1085
#> Cramer's V: 0.0699
#> df: 2
#> pvalue: 0.128
#> Observations: 841
# ordinal data, use Kendall's tau
crosstable_statistics(efc, e42dep, quol_5, statistics = "kendall")
#>
#> # Measure of Association for Contingency Tables
#>
#> z: 9.5951
#> Kendall's tau: 0.2496
#> df: 75
#> pvalue: < .001***
#> Observations: 896
# calcilate Spearman's rho, with continuity correction
crosstable_statistics(efc,
e42dep,
quol_5,
statistics = "spearman",
exact = FALSE,
continuity = TRUE
)
#>
#> # Measure of Association for Contingency Tables
#>
#> S: 157974157.4198
#> Spearman's rho: 0.3177
#> df: 75
#> pvalue: < .001***
#> Observations: 896