202511122158 Status: school Tags: Datascience, correlation, non-linear correlation

distance correlation

De distance correlation meet niet alleen lineaire relaties (zoals pearson correlation), maar ook niet-lineaire verbanden tussen variabelen.
Waar Pearson enkel goed werkt bij rechte lijnen, kan distance correlation ook patronen detecteren zoals kromme of complexe relaties.

Kenmerken

  • Waarde ligt altijd tussen 0 en 1
  • 0 betekent: geen enkele relatie
  • 1 betekent: perfecte afhankelijkheid (lineair of niet-lineair)
  • Kan relaties detecteren waar pearson correlation r = 0 zou zijn

Python Voorbeeld

# Eerst installeren als nodig:
# conda install dcor -c conda-forge
 
import dcor
import numpy as np
 
x = np.array([1, 2, 3, 4, 5], dtype=float)
y = np.array([2, 4, 6, 8, 10], dtype=float)  # perfect lineair verband
 
distance_corr = dcor.distance_correlation(x, y)
 
print(f"Distance Correlation (tussen 0 en 1): {distance_corr}")

Uitleg:

  • dcor.distance_correlation(x, y) berekent de correlatie op basis van afstanden in plaats van waarden.
  • Deze methode kijkt naar hoe de afstand tussen punten in de ene variabele overeenkomt met de afstanden in de andere variabele.

Vergelijking met andere methodes

KenmerkPearsonSpearmanDistance Correlation
Type relatieLineairMonotoon (stijgend of dalend)Elke vorm
Gebruikt rangen?NeeJaNee
Waardenbereik-1 tot 1-1 tot 10 tot 1
Detecteert niet-lineaire verbanden?NeeAlleen monotoneJa, alle
Detecteert complexe vormen (zoals parabolen)?NeeNeeJa

References

Ik was een notitie aan het schrijven over non-linear correlation.