Wie komplex ist die Berechnung des Rangkorrelationskoeffizienten nach Spearman?


10

Ich habe den Rangkorrelationskoeffizienten des Spearman untersucht

ρ=i(xix¯)(yiy¯)i(xix¯)2i(yiy¯)2 .

für zwei Listen und . Was ist die Komplexität des Algorithmus?y 1 , , y nx1,,xny1,,yn

Ist es möglich, zu sein, da der Algorithmus nur Subtraktionen berechnen sollte ?O ( n )nO(n)

Antworten:


8

Du musst rechnen

  • zwei Durchschnittswerte,
  • 2n Unterschiede,
  • drei Summen mit Summanden - die in konstanter Zeit berechnet werden können - jeweils undn
  • eine Division, eine Multiplikation und eine Quadratwurzel.

All dies kann in linearer Zeit erfolgen, wenn wir annehmen, dass elementare arithmetische Operationen in konstanter Zeit ablaufen, daher ist die Gesamtzeit in sicherlich möglich. Beachten Sie, dass die Berechnung der Wurzel möglicherweise Fehler verursacht.O(n)

In Bezug auf den Platz haben Sie mehrere Möglichkeiten:

  • Speichern Sie nur die Durchschnittswerte, dh zwei Zahlen ( mit die maximale Zahl). Sie müssen alle Differenzen neu berechnen, dh insgesamt Subtraktionen durchführen.M 6 nO(logM)M6n
  • Speichern Sie den Durchschnitt und die Unterschiede, dh Zahlen ( ). Dies erspart Ihnen Subtraktionen.O ( n log M ) 4 n2n+2O(nlogM)4n

Was vorzuziehen ist, hängt von Ihrem Kontext ab.


6

Sie haben einen wichtigen Schritt ausgelassen ... Die Formel, die Sie haben, ist für die Pearson-Korrelation. Was es zu Spearman macht, ist, dass x und y die Ränge für die beiden ursprünglichen Variablen sind. Dieser Rangschritt muss für die Komplexität des Spearman-Korrelationskoeffizienten berücksichtigt werden. Im Wesentlichen müssen Sie jede der beiden Variablen sortieren, was von Ihrem gewählten Sortieralgorithmus abhängt, gefolgt von der oben genannten Berechnung.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.