Skip to content

Add Spearman correlation support to statistics.correlation() #95861

Description

@rhettinger

Spearman correlation would be easily supported by adding a ranked option to statistics.correlation(). It is appropriate for ordinal data or for continuous data that doesn't meet the linear proportionality assumption required for Pearson correlation.

>>> # Example from https://statistics.laerd.com/statistical-guides/spearmans-rank-order-correlation-statistical-guide.php
>>> eng = [56, 75, 45, 71, 61, 64, 58, 80, 76, 61]
>>> math = [66, 70, 40, 60, 65, 56, 59, 77, 67, 63]

>>> # Pearson correlation reports the strength of a linear relationship
>>> correlation(math, eng)      
0.8005386765540159

>>> # Spearman correlation reports strength of a monotonic relationship
>>> correlation(math, eng, ranked=True)    
0.6686960980480711

The code would be mostly unchanged. If ranked is true, then the data is replaced by rankings using a helper function

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

3.12only security fixesstdlibStandard Library Python modules in the Lib/ directorytype-featureA feature request or enhancement

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions