Apa kompleksitas perhitungan koefisien korelasi peringkat Spearman?

10

Saya telah mempelajari koefisien korelasi peringkat Spearman

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

untuk dua daftar dan . Apa kompleksitas dari algoritma tersebut?x1,,xny1,,yn

Karena algoritma seharusnya menghitung pengurangan, apakah mungkin menjadi ?nO(n)

DavideChicco.it
sumber

Jawaban:

8

Anda harus menghitung

  • dua rata-rata,
  • 2n perbedaan,
  • tiga penjumlahan dengan n penjumlahan - yang dapat dihitung dalam waktu konstan - masing-masing dan
  • satu divisi, satu multiplikasi dan satu root kuadrat.

Semua ini dapat dilakukan dalam waktu linier jika kita mengasumsikan operasi aritmatika dasar berjalan dalam waktu konstan, oleh karena itu total waktu dalam tentu saja mungkin. Perhatikan bahwa menghitung root mungkin mengacaukan segalanya.O(n)

Mengenai ruang, Anda memiliki beberapa opsi:

  • Simpan hanya rata-rata, yaitu dua angka ( dengan jumlah maksimum). Anda harus menghitung ulang semua perbedaan, yaitu melakukan total pengurangan .O(logM)M6n
  • Menyimpan rata-rata dan perbedaannya, yaitu angka ( ). Ini menghemat pengurangan Anda.2n+2O(nlogM)4n

Yang lebih disukai tergantung pada konteks Anda.

Raphael
sumber
6

Anda telah meninggalkan langkah penting ... Formula yang Anda miliki adalah untuk korelasi pearson. Apa yang membuatnya spearman adalah bahwa x dan y adalah peringkat untuk dua variabel asli. Langkah peringkat ini harus diperhitungkan untuk kompleksitas koefisien korelasi spearman. Pada dasarnya Anda harus mengurutkan masing-masing dari dua variabel, yang akan tergantung pada algoritma pengurutan yang Anda pilih, diikuti oleh perhitungan yang disebutkan di atas.

Derek McCrae Norton
sumber