การวิเคราะห์สองตัวแปรและหลายตัวแปร
กราฟกระจาย กราฟคู่ แผนที่ความร้อนของสหสัมพันธ์ และสถิติแบบจัดกลุ่ม
การวิเคราะห์สองตัวแปรและหลายตัวแปร เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
จากตัวแปรเดียวสู่หลายตัวแปร
การวิเคราะห์สองตัวแปรศึกษาความสัมพันธ์ระหว่างตัวแปรสองตัว ส่วนการวิเคราะห์หลายตัวแปรจะพิจารณาหลายตัวแปรพร้อมกัน
เป้าหมายคือค้นหาว่าคุณลักษณะใดเปลี่ยนแปลงไปด้วยกัน ค้นหาปฏิสัมพันธ์ และตัดสินใจว่าตัวแปรใดใช้ทำนายตัวแปรเป้าหมายได้
แผนภาพกระจายด้วย plt.scatter
แผนภาพกระจายจะแสดงตัวแปรเชิงตัวเลขสองตัวเทียบกัน โดยจุดแต่ละจุดแทนหนึ่งแถว แผนภาพนี้ช่วยให้เห็นแนวโน้ม กลุ่ม และค่าผิดปกติ
import matplotlib.pyplot as plt
import seaborn as sns
plt.scatter(df["height"], df["weight"], alpha=0.4)
plt.xlabel("Height")
plt.ylabel("Weight")
plt.show()การอ่านแผนภาพกระจาย
ให้สังเกตทิศทาง (พุ่งขึ้น = ความสัมพันธ์เชิงบวก พุ่งลง = ความสัมพันธ์เชิงลบ) ความแรง (กลุ่มจุดที่อยู่ใกล้กันหรือกระจายเป็นกลุ่มเมฆ) และรูปร่าง (เป็นเส้นตรงหรือเป็นเส้นโค้ง)
เพิ่ม hue ด้วย sns.scatterplot เพื่อกำหนดสีจุดตามหมวดหมู่และเผยให้เห็นโครงสร้างของกลุ่ม
sns.scatterplot(x="height", y="weight", hue="gender", data=df, alpha=0.5)
plt.show()สหสัมพันธ์ด้วย df.corr()
df.corr() คำนวณสหสัมพันธ์เพียร์สันแบบจับคู่ระหว่างคอลัมน์เชิงตัวเลข โดยให้ค่าเป็นตัวเลขตั้งแต่ -1 ถึง +1
- +1 → ความสัมพันธ์เชิงเส้นบวกที่สมบูรณ์แบบ
- 0 → ไม่มีความสัมพันธ์เชิงเส้น
- -1 → ความสัมพันธ์เชิงลบที่สมบูรณ์แบบ
corr = df.corr(numeric_only=True)
print(corr["price"].sort_values(ascending=False))แผนที่ความร้อนของสหสัมพันธ์
เมทริกซ์สหสัมพันธ์อ่านได้ง่ายขึ้นเมื่อแสดงเป็นheatmap ส่งค่า annot=True เพื่อแสดงค่าภายในแต่ละช่อง
ใช้ชุดสีแบบไล่ทิศทาง เช่น coolwarm เพื่อให้สหสัมพันธ์เชิงบวกและเชิงลบมีสีที่แตกต่างกันอย่างชัดเจน
corr = df.corr(numeric_only=True)
sns.heatmap(corr, annot=True, fmt=".2f", cmap="coolwarm", center=0)
plt.show()การค้นหาภาวะหลายตัวแปรร่วมเชิงเส้น
เมื่อคุณลักษณะสองตัวมีสหสัมพันธ์สูงมาก เช่น มากกว่า 0.9 คุณลักษณะเหล่านั้นจะมีข้อมูลซ้ำซ้อนกัน ภาวะนี้เรียกว่าภาวะหลายตัวแปรร่วมเชิงเส้น ซึ่งอาจทำให้แบบจำลองเชิงเส้นไม่เสถียร
heatmap ช่วยให้เห็นคู่ข้อมูลที่ซ้ำซ้อนอย่างชัดเจน ทำให้คุณสามารถตัดหนึ่งในคู่ดังกล่าวออกได้
corr = df.corr(numeric_only=True).abs()
high = corr[(corr > 0.9) & (corr < 1.0)]
print(high.dropna(how="all"))สหสัมพันธ์ไม่ใช่เหตุเป็นผล
สหสัมพันธ์ที่สูงไม่ได้หมายความว่าตัวแปรหนึ่งเป็นสาเหตุของอีกตัวแปรหนึ่ง ทั้งสองตัวแปรอาจได้รับอิทธิพลจากตัวแปรที่สามซึ่งซ่อนอยู่ หรือความเชื่อมโยงนั้นอาจเกิดขึ้นโดยบังเอิญ
ใช้สหสัมพันธ์เพื่อสร้างสมมติฐาน แล้วตรวจสอบด้วยความรู้เฉพาะด้านและการวิเคราะห์แบบควบคุม
แผนภาพคู่ด้วย sns.pairplot
sns.pairplot จะสร้างตารางแผนภาพกระจายสำหรับคู่คอลัมน์เชิงตัวเลขทุกคู่ พร้อมฮิสโตแกรมหรือ KDE บนแนวทแยง
นี่เป็นวิธีที่รวดเร็วที่สุดในการดูความสัมพันธ์ระหว่างตัวแปรสองตัวทุกคู่พร้อมกัน หากชุดข้อมูลมีขนาดใหญ่ ควรจำกัดจำนวนคอลัมน์ เพราะขนาดการคำนวณจะเพิ่มตามกำลังสองของจำนวนคอลัมน์
sns.pairplot(df[["height", "weight", "age", "income"]], hue="gender")
plt.show()แผนภาพกล่องแบบแบ่งกลุ่ม
หากต้องการศึกษาความสัมพันธ์ระหว่างตัวแปรเชิงตัวเลขกับตัวแปรเชิงหมวดหมู่ ให้วางหมวดหมู่ไว้บนแกน x ของแผนภาพกล่อง คุณจะสามารถเปรียบเทียบการกระจายของแต่ละกลุ่มได้ทันที
sns.boxplot(x="city", y="income", data=df)
plt.xticks(rotation=45)
plt.show()การสรุปค่าแบบแบ่งกลุ่ม
ตัวเลขช่วยเสริมข้อมูลจากกราฟได้ ใช้ groupby ร่วมกับ agg เพื่อสรุปคอลัมน์เชิงตัวเลขแยกตามหมวดหมู่
นี่คือการวิเคราะห์หลายตัวแปรในรูปแบบตาราง โดยเปรียบเทียบค่าเฉลี่ย ค่ามัธยฐาน และจำนวนได้เคียงข้างกัน
summary = df.groupby("city")["income"].agg(["mean", "median", "count"])
print(summary.sort_values("mean", ascending=False))กราฟหลายตัวแปรด้วยการเข้ารหัสด้วยภาพ
คุณสามารถแสดงตัวแปรตั้งแต่สามตัวขึ้นไปในกราฟเดียวได้ด้วยการเข้ารหัสด้วยภาพ ได้แก่ x, y, สี (hue) และขนาด
วิธีนี้แสดงให้เห็นว่าความสัมพันธ์เปลี่ยนแปลงไปอย่างไรตามมิติที่สาม โดยไม่ต้องสร้างกราฟแยกกัน
sns.scatterplot(x="height", y="weight", hue="age", size="income", data=df)
plt.show()ตรวจสอบอย่างรวดเร็ว: ช่วงของสหสัมพันธ์
คุณเรียกใช้ df.corr() และพบค่า -0.85 ระหว่างคุณลักษณะสองตัว
สรุป: การวิเคราะห์สองตัวแปรและหลายตัวแปร
ขณะนี้คุณสามารถสำรวจความสัมพันธ์ระหว่างตัวแปรได้แล้ว:
plt.scatter/sns.scatterplotสำหรับตัวแปรเชิงตัวเลขสองตัวdf.corr()+sns.heatmap(annot=True)สำหรับเมทริกซ์สหสัมพันธ์- สหสัมพันธ์ที่สูงเป็นสัญญาณของภาวะหลายตัวแปรร่วมเชิงเส้น (ให้ตัดคุณลักษณะที่ซ้ำซ้อนออก)
sns.pairplotสำหรับดูภาพรวมของทุกคู่- แผนภาพกล่องแบบแบ่งกลุ่มและ
groupby().agg()สำหรับความสัมพันธ์ระหว่างตัวแปรเชิงตัวเลขกับเชิงหมวดหมู่
ถัดไป เราจะเชื่อมโยงคุณลักษณะเข้ากับตัวแปรเป้าหมายที่ต้องการทำนายโดยตรง
คำถามที่พบบ่อย
บทเรียน “การวิเคราะห์สองตัวแปรและหลายตัวแปร” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การวิเคราะห์สองตัวแปรและหลายตัวแปร” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การวิเคราะห์สองตัวแปรและหลายตัวแปร”
กราฟกระจาย กราฟคู่ แผนที่ความร้อนของสหสัมพันธ์ และสถิติแบบจัดกลุ่ม คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การวิเคราะห์สองตัวแปรและหลายตัวแปร” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม
ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เวิร์กโฟลว์ EDA และการทำโปรไฟล์ข้อมูล
- การวิเคราะห์ตัวแปรเดียว
- การวิเคราะห์สองตัวแปรและหลายตัวแปร
- การแจกแจงคุณลักษณะและการวิเคราะห์เป้าหมาย