ความแข็งแกร่งของความสัมพันธ์
โดยสัญชาตญาณ เราสามารถมองกราฟที่แสดงไว้และ "มองเห็น" ได้ว่าตัวแปรทั้งสองมีแนวโน้มที่จะ "เปลี่ยนแปลงไปพร้อมกัน" หรือไม่
- ชุดข้อมูล A: x และ y เปลี่ยนแปลงไปด้วยกันและดูเหมือนมีความสัมพันธ์ที่แข็งแกร่ง
- ชุดข้อมูล B: มีแนวโน้มขาขึ้นอย่างคร่าว ๆ โดย x และ y ดูเหมือนมีความสัมพันธ์กันเพียงเล็กน้อย
- ชุดข้อมูล C: ดูเหมือนการกระจายแบบสุ่ม โดย x และ y ไม่ได้เปลี่ยนแปลงไปพร้อมกันและไม่มีความสัมพันธ์กัน



จำไว้ว่าค่าเบี่ยงเบนคือส่วนต่างจากค่าเฉลี่ย และเราทำให้เป็นค่ามาตรฐานโดยหารค่าเบี่ยงเบนด้วยส่วนเบี่ยงเบนมาตรฐาน ในแบบฝึกหัดนี้ให้เปรียบเทียบชุดข้อมูลทั้ง 3 ชุดโดยคำนวณค่าความสัมพันธ์ แล้วพิจารณาว่าชุดข้อมูลใดมีตัวแปร x และ y ที่มีความสัมพันธ์กันแข็งแกร่งที่สุด ใช้ตารางข้อมูล data_sets ที่เตรียมไว้ให้ ซึ่งเป็น dictionary ของระเบียนข้อมูล แต่ละระเบียนมีคีย์ 'name', 'x', 'y' และ 'correlation'
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Introduction to Linear Modeling in Python
คำแนะนำการฝึกหัด
- เขียนนิยามฟังก์ชัน
correlation()ให้สมบูรณ์ โดยใช้ค่าเฉลี่ยของผลคูณของค่าเบี่ยงเบนมาตรฐานของxและy - วนซ้ำผ่าน
data_setsโดยคำนวณและเก็บค่าความสัมพันธ์แต่ละค่าโดยใช้correlation(record['x'], record['y']) - รันโค้ดจนถึงจุดนี้ (คือจนถึงท้าย for loop) แล้วตรวจสอบผลลัพธ์ที่แสดงออกมา ชุดข้อมูลใดมีความสัมพันธ์แข็งแกร่งที่สุด?
- กำหนดชื่อชุดข้อมูล (
data_sets['A'],data_sets['B']หรือdata_sets['C']) ที่มีความสัมพันธ์แข็งแกร่งที่สุดให้กับตัวแปรbest_data
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Complete the function that will compute correlation.
def correlation(x,y):
x_dev = x - np.____(x)
y_dev = y - np.____(y)
x_norm = x_dev / np.____(x)
y_norm = y_dev / np.____(y)
return np.____(x_norm * y_norm)
# Compute and store the correlation for each data set in the list.
for name, data in data_sets.items():
data['correlation'] = ____(data['x'], data['y'])
print('data set {} has correlation {:.2f}'.format(name, data['correlation']))
# Assign the data set with the best correlation.
best_data = data_sets['____']