Learn R Programming

DescTools (version 0.99.56)

UncertCoef: Uncertainty Coefficient

Description

The uncertainty coefficient U(C|R) measures the proportion of uncertainty (entropy) in the column variable Y that is explained by the row variable X. The function has interfaces for a table, a matrix, a data.frame and for single vectors.

Usage

UncertCoef(x, y = NULL, direction = c("symmetric", "row", "column"), 
           conf.level = NA, p.zero.correction = 1/sum(x)^2, ...)

Value

Either a single numeric value, if no confidence interval is required,

or a vector with 3 elements for estimate, lower and upper confidence intervall.

Arguments

x

a numeric vector, a factor, matrix or data frame.

y

NULL (default) or a vector, an ordered factor, matrix or data frame with compatible dimensions to x.

direction

direction of the calculation. Can be "row" (default) or "column", where "row" calculates UncertCoef (R|C) ("column dependent").

conf.level

confidence level of the interval. If set to NA (which is the default) no confidence interval will be calculated.

p.zero.correction

slightly nudge zero values so that their logarithm can be calculated

...

further arguments are passed to the function table, allowing i.e. to set useNA. This refers only to the vector interface.

Author

Andri Signorell <andri@signorell.net> strongly based on code from Antti Arppe <antti.arppe@helsinki.fi>

Details

The uncertainty coefficient is computed as $$U(C|R) = \frac{H(X) + H(Y) - H(XY)}{H(Y)} $$ and ranges from [0, 1].

References

Theil, H. (1972), Statistical Decomposition Analysis, Amsterdam: North-Holland Publishing Company.

See Also

Entropy, Lambda, Assocs

Examples

Run this code
# example from Goodman Kruskal (1954)

m <- as.table(cbind(c(1768,946,115), c(807,1387,438), c(189,746,288), c(47,53,16)))
dimnames(m) <- list(paste("A", 1:3), paste("B", 1:4))
m

# direction default is "symmetric"
UncertCoef(m)
UncertCoef(m, conf.level=0.95)

UncertCoef(m, direction="row")
UncertCoef(m, direction="column")

Run the code above in your browser using DataLab