ความซับซ้อนของการคำนวณค่าสัมประสิทธิ์สหสัมพันธ์ของสเปียร์แมนคืออะไร?


10

ฉันกำลังศึกษาสัมประสิทธิ์สหสัมพันธ์ของสเปียร์แมน

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

สำหรับสองรายการ x1,,xn และ y1,,yn. อะไรคือความซับซ้อนของขั้นตอนวิธี?

เนื่องจากอัลกอริทึมควรคำนวณ n การลบมันเป็นไปได้ไหม O(n) ?

คำตอบ:


8

คุณต้องคำนวณ

  • สองค่าเฉลี่ย
  • 2n ความแตกต่าง
  • สามจำนวนด้วย n summands - ซึ่งสามารถคำนวณได้ในเวลาคงที่ - แต่ละอันและ
  • การหารหนึ่งการคูณหนึ่งและหนึ่งสแควร์รูท

ทั้งหมดนี้สามารถทำได้ในเวลาเชิงเส้นถ้าเราถือว่าการดำเนินการทางคณิตศาสตร์ระดับประถมศึกษาทำงานในเวลาคงที่ดังนั้นเวลาทั้งหมดใน O(n)เป็นไปได้อย่างแน่นอน โปรดทราบว่าการคำนวณรูทอาจทำให้เกิดปัญหา

เกี่ยวกับพื้นที่คุณมีหลายตัวเลือก:

  • เก็บเฉพาะค่าเฉลี่ยนั่นคือตัวเลขสองตัว (O(logM) กับ Mจำนวนสูงสุด) คุณต้องคำนวณความแตกต่างทั้งหมดใหม่อีกครั้ง6n subtractions
  • เก็บค่าเฉลี่ยและความแตกต่างนั่นคือ2n+2 ตัวเลข (O(nlogM)) สิ่งนี้ช่วยคุณได้4n subtractions

สิ่งที่ดีกว่าขึ้นอยู่กับบริบทของคุณ


6

คุณได้ละขั้นตอนสำคัญออกไป ... สูตรที่คุณใช้มีความสัมพันธ์กับลูกแพร์สัน สิ่งที่ทำให้ spearman คือ x และ y เป็นอันดับของตัวแปรดั้งเดิมสองตัว ขั้นตอนการจัดอันดับนี้จะต้องพิจารณาถึงความซับซ้อนของสัมประสิทธิ์สหสัมพันธ์สเปียร์แมน โดยพื้นฐานแล้วคุณต้องจัดเรียงตัวแปรสองตัวแต่ละตัวซึ่งจะขึ้นอยู่กับอัลกอริทึมการเรียงลำดับที่คุณเลือกตามด้วยการคำนวณที่กล่าวถึงข้างต้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.