У чому полягає складність обчислення коефіцієнта кореляції коефіцієнта Спірмена?


10

Я вивчав коефіцієнт кореляції Спірмена

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

для двох списків та . У чому складність алгоритму?x1,,xny1,,yn

Оскільки алгоритм повинен просто обчислити віднімань, чи можна бути ?nO(n)

Відповіді:


8

Ви повинні зробити обчислення

  • два середніх,
  • 2n різниці,
  • три суми з сумами - які можна обчислити в постійному часі - кожен іn
  • одне ділення, одне множення і один квадратний корінь.

Все це можна зробити за лінійним часом, якщо припустити, що елементарні арифметичні операції виконуються в постійному часі, тому загальний час в , безумовно, можливий. Зауважте, що обчислення кореня може накрутити речі.O(n)

Щодо місця, у вас є кілька варіантів:

  • Зберігайте лише середні значення, тобто два числа ( з максимальним числом ). Ви повинні перерахувати всі відмінності, тобто виконати загалом віднімання.O(logM)M6n
  • Зберігають середнє значення та різниці, тобто числа ( ). Це економить віднімання.2n+2O(nlogM)4n

Що краще, залежить від вашого контексту.


6

Ви залишили важливий крок ... Формула, яку ви маєте, - це співвіднесеність груші. Що робить його сперманом, це те, що x і y - це ранги для двох оригінальних змінних. Цей крок рейтингу повинен враховувати складність коефіцієнта кореляції спермана. По суті, ви повинні сортувати кожну з двох змінних, що залежатиме від обраного алгоритму сортування, з подальшим розрахунком, згаданим вище.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.