0Pricing
Learn AI with Python · บทเรียน

การวิเคราะห์สองตัวแปรและหลายตัวแปร

กราฟกระจาย กราฟคู่ แผนที่ความร้อนของสหสัมพันธ์ และสถิติแบบจัดกลุ่ม

การวิเคราะห์สองตัวแปรและหลายตัวแปร เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เวิร์กโฟลว์ EDA และการทำโปรไฟล์ข้อมูล
  2. การวิเคราะห์ตัวแปรเดียว
  3. การวิเคราะห์สองตัวแปรและหลายตัวแปร
  4. การแจกแจงคุณลักษณะและการวิเคราะห์เป้าหมาย
← กลับไปที่ Learn AI with Python