วิทยาศาสตร์ข้อมูล- สหสัมพันธ์ทางสถิติ


ความสัมพันธ์

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

เรากล่าวว่าฟังก์ชันมีวัตถุประสงค์ในการทำนายค่า โดยการแปลงอินพุต (x) เป็นเอาต์พุต (f(x)) เราสามารถพูดได้อีกอย่างว่าฟังก์ชันใช้ความสัมพันธ์ระหว่างสองตัวแปรในการทำนาย


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

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

สัมประสิทธิ์สหสัมพันธ์ต้องไม่น้อยกว่า -1 หรือสูงกว่า 1

  • 1 = มีความสัมพันธ์เชิงเส้นตรงที่สมบูรณ์แบบระหว่างตัวแปร (เช่น Average_Pulse เทียบกับ Calorie_Burnage)
  • 0 = ไม่มีความสัมพันธ์เชิงเส้นตรงระหว่างตัวแปร
  • -1 = มีความสัมพันธ์เชิงเส้นเชิงลบที่สมบูรณ์แบบระหว่างตัวแปร (เช่น ชั่วโมงทำงานน้อยลง นำไปสู่การเผาผลาญแคลอรีที่สูงขึ้นในระหว่างการฝึก)

ตัวอย่างความสัมพันธ์เชิงเส้นที่สมบูรณ์แบบ (สัมประสิทธิ์สหสัมพันธ์ = 1)

เราจะใช้ scatterplot เพื่อแสดงภาพความสัมพันธ์ระหว่าง Average_Pulse และ Calorie_Burnage (เราใช้ชุดข้อมูลขนาดเล็กของนาฬิกาสปอร์ตที่มีการสังเกต 10 รายการ)

คราวนี้เราต้องการแปลงกระจาย เราจึงเปลี่ยนชนิดเป็น "กระจาย":

ตัวอย่าง

import matplotlib.pyplot as plt

health_data.plot(x ='Average_Pulse', y='Calorie_Burnage', kind='scatter')
plt.show()

เอาท์พุท:

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

ดังที่เราเห็นก่อนหน้านี้ มีความสัมพันธ์เชิงเส้นตรงที่สมบูรณ์แบบระหว่าง Average_Pulse และ Calorie_Burnage



ตัวอย่างความสัมพันธ์เชิงเส้นเชิงลบที่สมบูรณ์แบบ (สัมประสิทธิ์สหสัมพันธ์ = -1)

สัมประสิทธิ์สหสัมพันธ์ = -1

เราได้วางแผนข้อมูลสมมติไว้ที่นี่ แกน x แสดงถึงจำนวนชั่วโมงทำงานที่งานของเราก่อนเซสชั่นการฝึกอบรม แกน y คือ Calorie_Burnage

หากเราทำงานเป็นเวลานานขึ้น เรามักจะเผาผลาญแคลอรีน้อยลงเพราะเราหมดแรงก่อนการฝึก

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

ตัวอย่าง

import pandas as pd
import matplotlib.pyplot as plt

negative_corr = {'Hours_Work_Before_Training': [10,9,8,7,6,5,4,3,2,1],
'Calorie_Burnage': [220,240,260,280,300,320,340,360,380,400]}
negative_corr = pd.DataFrame(data=negative_corr)

negative_corr.plot(x ='Hours_Work_Before_Training', y='Calorie_Burnage', kind='scatter')
plt.show()

ตัวอย่างไม่มีความสัมพันธ์เชิงเส้น (สัมประสิทธิ์สหสัมพันธ์ = 0)

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

ที่นี่ เราได้พล็อต Max_Pulse เทียบกับ Duration จากชุด full_health_data แล้ว

อย่างที่คุณเห็น ไม่มีความสัมพันธ์เชิงเส้นตรงระหว่างตัวแปรทั้งสอง หมายความว่าเซสชั่นการฝึกที่ยาวนานขึ้นไม่ได้ทำให้ Max_Pulse สูงขึ้น

สัมประสิทธิ์สหสัมพันธ์นี่คือ 0

ตัวอย่าง

import matplotlib.pyplot as plt

full_health_data.plot(x ='Duration', y='Max_Pulse', kind='scatter')
plt.show()