R: Cliff's Delta effect size for ordinal variables

cliff.delta {effsize} | R Documentation

## Cliff's Delta effect size for ordinal variables

### Description

Computes the Cliff's Delta effect size for ordinal variables with the related confidence interval using efficient algorithms.

### Usage

    cliff.delta(d, ... )

    ## S3 method for class 'formula'
    cliff.delta(formula, data=list() ,conf.level=.95,
                                    use.unbiased=TRUE, use.normal=FALSE,
                                    return.dm=FALSE, ...)

    ## Default S3 method:
    cliff.delta(d, f, conf.level=.95,
                             use.unbiased=TRUE, use.normal=FALSE,
                             return.dm=FALSE, ...)

### Arguments

`d` | a numeric vector giving either the data values (if `f` is a factor) or the treatment group values (if `f` is a numeric vector)
`f` | either a factor with two levels or a numeric vector of values (see Detials)
`conf.level` | confidence level of the confidence interval
`use.unbiased` | a logical indicating whether to compute the delta's variance using the "unbiased" estimate formula or the "consistent" estimate
`use.normal` | logical indicating whether to use the normal or Student-t distribution for the confidence interval estimation
`return.dm` | logical indicating whether to return the dominance matrix. Warning: the explicit computation of the dominance uses a sub-optimal algorithm both in terms of memory and time
`formula` | a formula of the form `y ~ f`, where `y` is a numeric variable giving the data values and `f` a factor with two levels giving the corresponding group
`data` | an optional matrix or data frame containing the variables in the formula `formula`. By default the variables are taken from `environment(formula)`.
`...` | further arguments to be passed to or from methods.

### Details

Uses the original formula reported in (Cliff 1996).

If the dominance matrix is required i.e. `return.dm=TRUE`) the full matrix is computed thus using the naive algorithm. Otherwise, if `treatment` and `control` are `factor`s then the optimized linear complexity algorithm is used, otherwise the RLE algorithm (with complexity n log n) is used.

### Value

A list of class `effsize` containing the following components:

`estimate` | the Cliff's delta estimate
`conf.int` | the confidence interval of the delta
`var` | the estimated variance of the delta
`conf.level` | the confidence level used to compute the confidence interval
`dm` | the dominance matrix used for computation, only if `return.dm` is TRUE
`magnitude` | a qualitative assessment of the magnitude of effect size
`method` | the method used for computing the effect size, always `"Cliff's Delta"`
`variance.estimation` | the method used to compute the delta variance estimation, either `"unbiased"` or `"consistent"`
`CI.distribution` | the distribution used to compute the confidence interval, either `"Normal"` or `"Student-t"`

The magnitude is assessed using the thresholds provided in (Romano 2006), i.e. |d|<0.147 `"negligible"`, |d|<0.33 `"small"`, |d|<0.474 `"medium"`, otherwise `"large"`

### Author(s)

Marco Torchiano http://softeng.polito.it/torchiano/

### References

Norman Cliff (1996). Ordinal methods for behavioral data analysis. Routledge.

J. Romano, J. D. Kromrey, J. Coraggio, J. Skowronek, Appropriate statistics for ordinal level data: Should we really be using t-test and cohen's d for evaluating group differences on the NSSE and other surveys?, in: Annual meeting of the Florida Association of Institutional Research, 2006.

K.Y. Hogarty and J.D.Kromrey (1999). Using SAS to Calculate Tests of Cliff's Delta. Proceedings of the Twenty-Foursth Annual SAS User Group International Conference, Miami Beach, Florida, p 238. Available at: http://www2.sas.com/proceedings/sugi24/Posters/p238-24.pdf

### See Also

`cohen.d`, `print.effsize`

### Examples

    ## Example data from Hogarty and Kromrey (1999)
    treatment <- c(10,10,20,20,20,30,30,30,40,50)
    control <- c(10,20,30,40,40,50)
    res = cliff.delta(treatment,control,return.dm=TRUE)
    print(res)
    print(res$dm)

[Package effsize version 0.7.1 Index]