SomersDelta: Somers' Delta

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


Calculate Somers' Delta statistic, a measure of association for ordinal factors in a two-way table. The function has interfaces for a table (matrix) and for single vectors.


SomersDelta(x, y = NULL, direction = c("row", "column"), conf.level = NA, ...)



a numeric vector or a table. A matrix will be treated as table.


NULL (default) or a vector with compatible dimensions to x. If y is provided, table(x, y, ...) is calculated.


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


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


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


Somers' D(C|R) and Somers' D(R|C) are asymmetric modifications of τ_b and Goodman-Kruskal's Gamma. C|R indicates that the row variable x is regarded as the independent variable and the column variable y is regarded as dependent. Similarly, R|C indicates that the column variable y is regarded as the independent variable and the row variable x is regarded as dependent. It is logically very similar to Gamma, but differs in that it uses a correction only for pairs that are tied on the dependent variable. As Gamma and the Taus, D is appropriate only when both variables lie on an ordinal scale.
Somers' D is computed as

D(C | R) = \frac{P-Q}{n^2 - ∑(n_i.^2)}

where P equals twice the number of concordances and Q twice the number of discordances and n_i. rowSums(tab). Its range lies [-1, 1]. The interpretation of d is analogous to Gamma.


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 <>


Agresti, A. (2002) Categorical Data Analysis. John Wiley & Sons, pp. 57–59.

Brown, M.B., Benedetti, J.K.(1977) Sampling Behavior of Tests for Correlation in Two-Way Contingency Tables, Journal of the American Statistical Association, 72, 309-315.

Goodman, L. A., & Kruskal, W. H. (1954) Measures of association for cross classifications. Journal of the American Statistical Association, 49, 732-764.

Somers, R. H. (1962) A New Asymmetric Measure of Association for Ordinal Variables, American Sociological Review, 27, 799–811.

Goodman, L. A., & Kruskal, W. H. (1963) Measures of association for cross classifications III: Approximate sampling theory. Journal of the American Statistical Association, 58, 310–364.

See Also

There's an implementation of Somers's D in Frank Harrell's Hmisc somers2, which is quite fast for large sample sizes. However it is restricted to computing Somers' Dxy rank correlation between a variable x and a binary (0-1) variable y.
ConDisPairs yields concordant and discordant pairs

Other association measures:
KendallTauA (tau-a), KendallTauB (tau-b), cor (method="kendall") for tau-b, StuartTauC (tau-c), GoodmanKruskalGamma
Lambda, GoodmanKruskalTau, UncertCoef, MutInf


# example in:
# pp. S. 1821

tab <- as.table(rbind(c(26,26,23,18,9),c(6,7,9,14,23)))

# Somers' D C|R
SomersDelta(tab, direction="column", conf.level=0.95)
# Somers' D R|C
SomersDelta(tab, direction="row", conf.level=0.95)

Example output

0.4426720 0.2785571 0.6067869 
0.2569444 0.1592938 0.3545951 

DescTools documentation built on April 10, 2021, 9:06 a.m.