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

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

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

`x`

. If y is provided,`table(x, y, ...)`

is calculated.- direction
direction of the calculation. Can be

`"row"`

(default) or`"column"`

, where`"row"`

calculates Somers' D (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.- ...
further arguments are passed to the function

`table`

, allowing i.e. to set useNA. This refers only to the vector interface.

Andri Signorell <andri@signorell.net>

Somers' D(C|R) and Somers' D(R|C) are asymmetric modifications of \(\tau_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 - \sum(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.

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.

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:
# http://support.sas.com/documentation/cdl/en/statugfreq/63124/PDF/default/statugfreq.pdf
# 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)
```

Run the code above in your browser using DataLab