ความสัมพันธ์เชิงเส้น (Correlation)

สถิติเบื้องต้นด้วย Python

Maggie Matsui

Content Developer, DataCamp

ความสัมพันธ์ระหว่างสองตัวแปร

กราฟกระจายแสดงพฤติกรรมการนอนของสัตว์เลี้ยงลูกด้วยนม เปรียบเทียบชั่วโมงนอนทั้งหมดต่อวันกับชั่วโมงนอน REM ต่อวัน

  • x = ตัวแปรอธิบาย/ตัวแปรอิสระ
  • y = ตัวแปรตอบสนอง/ตัวแปรตาม
สถิติเบื้องต้นด้วย Python

ค่าสัมประสิทธิ์สหสัมพันธ์

  • วัดความสัมพันธ์เชิงเส้นระหว่างสองตัวแปร
  • ค่าอยู่ระหว่าง -1 ถึง 1
  • ขนาดของค่าบ่งบอกความแข็งแกร่งของความสัมพันธ์
  • เครื่องหมาย (+ หรือ -) บ่งบอกทิศทางของความสัมพันธ์
สถิติเบื้องต้นด้วย Python

ขนาดค่า = ความแข็งแกร่งของความสัมพันธ์

0.99 (ความสัมพันธ์แข็งแกร่งมาก)

กราฟกระจายที่จุดข้อมูลอยู่ใกล้เส้นมาก

สถิติเบื้องต้นด้วย Python

ขนาดค่า = ความแข็งแกร่งของความสัมพันธ์

0.99 (ความสัมพันธ์แข็งแกร่งมาก)

กราฟกระจายที่จุดข้อมูลอยู่ใกล้เส้นมาก

              0.75 (ความสัมพันธ์แข็งแกร่ง)

กราฟกระจายที่จุดข้อมูลอยู่ห่างจากเส้นมากขึ้น

สถิติเบื้องต้นด้วย Python

ขนาดค่า = ความแข็งแกร่งของความสัมพันธ์

0.56 (ความสัมพันธ์ปานกลาง)

กราฟกระจายที่จุดข้อมูลอยู่ห่างจากเส้นมากขึ้นอีก

สถิติเบื้องต้นด้วย Python

ขนาดค่า = ความแข็งแกร่งของความสัมพันธ์

0.56 (ความสัมพันธ์ปานกลาง)

กราฟกระจายที่จุดข้อมูลอยู่ห่างจากเส้นมากขึ้นอีก

             0.21 (ความสัมพันธ์อ่อน)

กราฟกระจายที่จุดข้อมูลกระจายแบบสุ่มเกือบทั้งหมด

สถิติเบื้องต้นด้วย Python

ขนาดค่า = ความแข็งแกร่งของความสัมพันธ์

0.04 (ไม่มีความสัมพันธ์)

กราฟกระจายที่จุดข้อมูลกระจายแบบสุ่มทั้งหมด

  • การรู้ค่า x ไม่ได้บอกข้อมูลใดเกี่ยวกับ y เลย
สถิติเบื้องต้นด้วย Python

เครื่องหมาย = ทิศทาง

0.75:  เมื่อ x เพิ่มขึ้น y ก็เพิ่มขึ้น

กราฟกระจายที่ y เพิ่มขึ้นเมื่อ x เพิ่มขึ้น

-0.75:  เมื่อ x เพิ่มขึ้น y ลดลง

กราฟกระจายที่ y ลดลงเมื่อ x เพิ่มขึ้น

สถิติเบื้องต้นด้วย Python

การแสดงภาพความสัมพันธ์

import seaborn as sns

sns.scatterplot(x="sleep_total", y="sleep_rem", data=msleep)
plt.show()

กราฟกระจายของ sleep_rem กับ sleep_total

สถิติเบื้องต้นด้วย Python

การเพิ่มเส้นแนวโน้ม

import seaborn as sns
sns.lmplot(x="sleep_total", y="sleep_rem", data=msleep, ci=None)

plt.show()

กราฟกระจายของ sleep_rem กับ sleep_total พร้อมเส้นแนวโน้มเชิงเส้น

สถิติเบื้องต้นด้วย Python

การคำนวณค่าสหสัมพันธ์

msleep['sleep_total'].corr(msleep['sleep_rem'])
0.751755

 

msleep['sleep_rem'].corr(msleep['sleep_total'])
0.751755
สถิติเบื้องต้นด้วย Python

วิธีคำนวณค่าสหสัมพันธ์มีหลายแบบ

  • ที่ใช้ในคอร์สนี้: Pearson product-moment correlation   ($r$)
    • พบบ่อยที่สุด
    • $\bar{x} =$ ค่าเฉลี่ยของ $x$
    • $\sigma_x =$ ส่วนเบี่ยงเบนมาตรฐานของ $x$

$$ r = \frac{1}{n - 1} \sum_{i=1}^{n} \frac{(x_i - \bar{x})(y_i - \bar{y})}{\sigma_x \cdot \sigma_y}$$

  • รูปแบบอื่นของสูตรนี้:
    • Kendall's tau
    • Spearman's rho
สถิติเบื้องต้นด้วย Python

มาฝึกกันเถอะ!

สถิติเบื้องต้นด้วย Python

Preparing Video For Download...