การวิเคราะห์ตัวแปรเดียว
กราฟการแจกแจง ฮิสโตแกรม กราฟกล่อง และกราฟนับเพื่อทำความเข้าใจคุณลักษณะแต่ละรายการ
การวิเคราะห์ตัวแปรเดียว เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
การวิเคราะห์ตัวแปรเดียวคืออะไร
การวิเคราะห์ตัวแปรเดียว จะตรวจสอบตัวแปรทีละตัวเพื่อทำความเข้าใจการกระจายของตัวแปรนั้น ได้แก่ ค่ากลาง การกระจาย รูปร่าง และค่าที่ผิดปกติ
กราฟที่เหมาะสมขึ้นอยู่กับชนิดของตัวแปร:
- เชิงตัวเลข → ฮิสโตแกรม, KDE, แผนภาพกล่อง, แผนภาพไวโอลิน
- เชิงหมวดหมู่ → แผนภูมิความถี่ (แผนภูมิแท่งที่แสดงความถี่)
การเตรียมไลบรารีสำหรับสร้างกราฟ
เราใช้ไลบรารี แมทพลอตลิบ (plt) และ ซีบอร์น (sns) โดยซีบอร์นทำงานอยู่บนแมทพลอตลิบและมีค่าเริ่มต้นที่เหมาะกับกราฟเชิงสถิติมากกว่า
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
sns.set_theme(style="whitegrid")
df = pd.read_csv("data.csv")ฮิสโตแกรมด้วย plt.hist
ฮิสโตแกรม จะแบ่งค่าตัวเลขออกเป็นช่วงและนับว่ามีกี่ค่าที่ตกอยู่ในแต่ละช่วง จึงช่วยให้เห็นรูปร่างโดยรวมของการกระจาย
อาร์กิวเมนต์ bins จะควบคุมความละเอียด หากมีช่วงน้อยเกินไปจะซ่อนโครงสร้างของข้อมูลไว้ แต่หากมีมากเกินไปจะเพิ่มสัญญาณรบกวน
plt.hist(df["age"], bins=30, edgecolor="black")
plt.xlabel("Age")
plt.ylabel("Count")
plt.title("Age Distribution")
plt.show()กราฟ KDE — ความหนาแน่นแบบเรียบ
การประมาณความหนาแน่นด้วยเคอร์เนล (sns.kdeplot) จะแสดงเส้นโค้งเรียบที่ประมาณการกระจายของข้อมูล ซึ่งอาจอ่านได้ง่ายกว่าแท่งฮิสโตแกรมที่ขรุขระ
ใช้ทั้งสองแบบร่วมกันด้วย sns.histplot(..., kde=True) เพื่อวางเส้นโค้งเรียบบนแท่งกราฟ
sns.kdeplot(df["age"], fill=True)
plt.show()
sns.histplot(df["age"], bins=30, kde=True)
plt.show()การตรวจจับ skew
skew ใช้วัดความไม่สมมาตร หากมีหางยาวไปทางขวา เรียกว่า skew ทางขวา (เป็นบวก) หากมีหางยาวไปทางซ้าย เรียกว่า skew ทางซ้าย (เป็นลบ)
รายได้ ราคา และจำนวนต่าง ๆ มักมี skew ทางขวา คุณสามารถคำนวณค่าได้ด้วย df[col].skew() โดยค่าที่ห่างจาก 0 มากบ่งบอกว่ามี skew
print(df["income"].skew()) # e.g. 2.3 -> strong right skew
sns.histplot(df["income"], bins=40, kde=True)
plt.show()การตรวจจับการกระจายแบบสองยอด
การกระจายแบบสองยอดมีจุดสูงสุดสองจุด ซึ่งมักบ่งบอกว่ามีสองกลุ่มที่แตกต่างกันปะปนอยู่ด้วยกัน เช่น สินค้าสองประเภทในคอลัมน์ราคาเดียวกัน
กราฟ KDE ช่วยให้เห็นการกระจายแบบสองยอดได้ชัดเจน ให้มองหายอดโค้งสองยอด นี่เป็นสัญญาณว่าตัวแปรเชิงหมวดหมู่ที่ซ่อนอยู่อาจอธิบายการแบ่งกลุ่มนี้ได้
sns.kdeplot(df["price"], fill=True)
plt.title("Two peaks suggest two subpopulations")
plt.show()แผนภาพกล่องด้วย sns.boxplot
แผนภาพกล่องแสดงค่ามัธยฐาน (เส้นตรงกลาง) พิสัยระหว่างควอร์ไทล์ (IQR หรือกล่อง) และหนวดที่ยื่นออกไปประมาณ 1.5 เท่าของ IQR จุดที่อยู่นอกหนวดจะถูกระบุว่าเป็นค่าผิดปกติ
sns.boxplot(x=df["income"])
plt.title("Income — box plot")
plt.show()ค่าผิดปกติและกฎ IQR
แผนภาพกล่องใช้กฎ IQR โดยจุดหนึ่งจะเป็นค่าผิดปกติหากอยู่ต่ำกว่า Q1 - 1.5*IQR หรือสูงกว่า Q3 + 1.5*IQR
คุณสามารถคำนวณขอบเขตด้วยตนเองเพื่อกรองหรือตัดค่าที่สูงหรือต่ำเกินไปได้
q1 = df["income"].quantile(0.25)
q3 = df["income"].quantile(0.75)
iqr = q3 - q1
low, high = q1 - 1.5*iqr, q3 + 1.5*iqr
outliers = df[(df["income"] < low) | (df["income"] > high)]
print(len(outliers), "outliers")แผนภาพไวโอลินด้วย sns.violinplot
แผนภาพไวโอลินผสานแผนภาพกล่องเข้ากับ KDE แบบสะท้อนกลับ ความกว้างในแต่ละระดับแสดงความหนาแน่น ทำให้เห็นทั้งรูปร่างและค่าสถิติสรุปได้พร้อมกัน
แผนภาพไวโอลินเหมาะอย่างยิ่งสำหรับเปิดเผยความเบ้หรือการกระจายแบบสองยอดที่แผนภาพกล่องธรรมดาอาจซ่อนไว้
sns.violinplot(x=df["age"])
plt.title("Age — violin plot")
plt.show()แผนภูมิความถี่สำหรับตัวแปรเชิงหมวดหมู่
สำหรับคอลัมน์เชิงหมวดหมู่ ให้ใช้ sns.countplot ซึ่งเป็นแผนภูมิแท่งที่แสดงความถี่ของแต่ละหมวดหมู่ และเป็นรูปแบบกราฟของ value_counts()
จัดเรียงแท่งตามความถี่เพื่อให้อ่านง่ายขึ้นด้วยอาร์กิวเมนต์ order
order = df["city"].value_counts().index
sns.countplot(y="city", data=df, order=order)
plt.title("Records per city")
plt.show()การเลือกกราฟตัวแปรเดียวที่เหมาะสม
แนวทางการตัดสินใจอย่างรวดเร็ว:
- รูปร่างของคอลัมน์เชิงตัวเลข → ฮิสโตแกรม หรือ KDE
- ค่าผิดปกติและควอร์ไทล์ → แผนภาพกล่อง
- รูปร่างและค่าสรุปร่วมกัน → แผนภาพไวโอลิน
- ความถี่ของหมวดหมู่ → แผนภูมิความถี่
ตรวจสอบอย่างรวดเร็ว: การเลือกกราฟ
คุณต้องการดูค่ามัธยฐาน ควอร์ไทล์ และค่าผิดปกติของคอลัมน์เชิงตัวเลขเพียงคอลัมน์เดียว
สรุป: การวิเคราะห์ตัวแปรเดียว
คุณได้เรียนรู้วิธีตรวจสอบตัวแปรทีละตัวแล้ว:
plt.histและsns.kdeplotสำหรับดูรูปร่างของการกระจาย.skew()สำหรับวัดความไม่สมมาตร และดูยอดของ KDE เพื่อค้นหาการกระจายแบบสองยอดsns.boxplotและกฎ IQR สำหรับค้นหาค่าผิดปกติsns.violinplotสำหรับดูรูปร่างและค่าสรุปร่วมกันsns.countplotสำหรับดูความถี่ของข้อมูลเชิงหมวดหมู่
ถัดไป เราจะดูความสัมพันธ์ระหว่างตัวแปรตั้งแต่สองตัวขึ้นไป
คำถามที่พบบ่อย
บทเรียน “การวิเคราะห์ตัวแปรเดียว” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การวิเคราะห์ตัวแปรเดียว” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ 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 ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การวิเคราะห์ตัวแปรเดียว” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม
ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เวิร์กโฟลว์ EDA และการทำโปรไฟล์ข้อมูล
- การวิเคราะห์ตัวแปรเดียว
- การวิเคราะห์สองตัวแปรและหลายตัวแปร
- การแจกแจงคุณลักษณะและการวิเคราะห์เป้าหมาย