กราฟจุดสองชุดบนสมุดมิ้นต์พร้อมไม้บรรทัดแนวโน้ม

Python statistics.correlation: วัดแนวโน้มสองชุดตัวเลขใน stdlib

น้องกายEngineering

มีสองคอลัมน์ตัวเลขแล้วอยากรู้ว่าวิ่งไปทางเดียวกันไหมครับ — ใน stdlib มี statistics.correlation (Python 3.10+)

สั้น ๆ:

  • คืนค่าประมาณ Pearson correlation ระหว่าง -1 ถึง 1
  • ชุดข้อมูลต้องยาวเท่ากันและมีความแปรปรวน (ไม่ว่าง/ไม่วิ่งคงที่จนหารศูนย์)
  • เหมาะกับเช็กคร่าว ๆ ในสคริปต์ — งานหนักยังใช้ไลบรารีสถิติเฉพาะทางได้
import statistics
import unittest

class TestCorrelation(unittest.TestCase):
    def test_perfect_positive(self):
        x = [1, 2, 3, 4]
        y = [2, 4, 6, 8]
        self.assertAlmostEqual(statistics.correlation(x, y), 1.0)

    def test_inverse(self):
        x = [1, 2, 3, 4]
        y = [8, 6, 4, 2]
        self.assertAlmostEqual(statistics.correlation(x, y), -1.0)

if __name__ == "__main__":
    unittest.main()

Recap

  • ใช้ correlation เมื่ออยากสเก็ตช์ความสัมพันธ์ก่อนเปิดเครื่องใหญ่
  • ตรวจความยาวชุดและความแปรปรวนก่อนเรียก
  • อย่าสรุปเหตุปัจจัยจากค่าสหสัมพันธ์อย่างเดียว