🟡 เตือน
คุณภาพ
missing_values
คอลัมน์ 'Cabin': คอลัมน์มีค่าว่าง 687 ค่า (77.1%) (พบ 687 แถว, 77.1%)
แล้วไงต่อ? จัดการค่าว่างก่อนวิเคราะห์ (เติมค่า, flag, หรือลบตามความเหมาะสม)
🟡 เตือน
คุณภาพ
missing_values
คอลัมน์ 'Age': คอลัมน์มีค่าว่าง 177 ค่า (19.9%) (พบ 177 แถว, 19.9%)
แล้วไงต่อ? จัดการค่าว่างก่อนวิเคราะห์ (เติมค่า, flag, หรือลบตามความเหมาะสม)
🟡 เตือน
โครงสร้าง
คอลัมน์มีค่าว่างสูงผิดปกติ
คอลัมน์ 'Cabin': คอลัมน์มีค่าว่าง 77.1% — ข้อมูลส่วนใหญ่หายไป (687 รายการ, 77.1%)
แล้วไงต่อ? พิจารณาตัดคอลัมน์ทิ้ง หรือตรวจสอบสาเหตุที่ข้อมูลหายไป
🟡 เตือน
โครงสร้าง
พบการปนชนิดข้อมูล (ตัวเลข/ข้อความ)
คอลัมน์ 'Ticket': คอลัมน์เป็นตัวเลข 74% แต่มี 230 ค่า (25.8%) ที่เป็นสตริงไม่ใช่ตัวเลข (230 รายการ, 25.8%)
แล้วไงต่อ? แปลงเป็นตัวเลขแล้วตรวจค่าที่แปลงไม่ได้ (ค่าแทน เช่น 'N/A', '-')
🟡 เตือน
ความผิดปกติ
พบค่าผิดปกติจากโมเดล (Isolation Forest)
คอลัมน์ 'SibSp': Isolation Forest พบค่าผิดปกติ 74 ค่า (คะแนนผิดปกติสุด -0.332; ยิ่งต่ำยิ่งผิดปกติ) (74 รายการ, 8.3%)
แล้วไงต่อ? ค่าผิดปกติแบบ ML ใช้เสริมวิธีเชิงสถิติ — ควรตรวจสอบจุดที่ถูก flag ประกอบกัน
🟡 เตือน
ความผิดปกติ
พบหมวดหมู่ที่คล้ายกันจนน่าสงสัยว่าซ้ำ
คอลัมน์ 'Ticket': พบคู่หมวดหมู่ที่คล้ายกันเกือบเหมือน 20 คู่ (ความคล้าย > 0.8) (60 รายการ, 6.7%)
แล้วไงต่อ? ค่าเหล่านี้น่าจะหมายถึงสิ่งเดียวกัน (เช่น 'กรุงเทพ' กับ 'กรุงเทพฯ') ควรทำให้เป็นค่ามาตรฐานเดียว
🟡 เตือน
ความผิดปกติ
พบค่าผิดปกติเชิงตัวเลข (outlier)
คอลัมน์ 'Age': พบค่าผิดปกติเชิงตัวเลข 2 ค่า ด้วยวิธี z_score (ความเบ้ของการกระจาย ≈ 0.39) (2 รายการ, 0.3%)
แล้วไงต่อ? ตรวจสอบค่าเหล่านี้ — อาจเป็นการกรอกผิด หน่วยไม่ตรงกัน ค่าสุดขั้วจริง หรือค่าสุดขั้วทางธุรกิจที่ถูกต้อง
🟡 เตือน
การกระจาย
การกระจายเบ้มาก
คอลัมน์ 'SibSp' มีการกระจายเบ้ขวา (หางยาวด้านมาก) (skew=3.70) — ค่าเฉลี่ยอาจไม่สะท้อนค่ากลางที่แท้จริง
แล้วไงต่อ? พิจารณาแปลง 'SibSp' ด้วย log/sqrt/Box-Cox ก่อนวิเคราะห์หรือสร้างโมเดล
🟡 เตือน
การกระจาย
การกระจายเบ้มาก
คอลัมน์ 'Parch' มีการกระจายเบ้ขวา (หางยาวด้านมาก) (skew=2.75) — ค่าเฉลี่ยอาจไม่สะท้อนค่ากลางที่แท้จริง
แล้วไงต่อ? พิจารณาแปลง 'Parch' ด้วย log/sqrt/Box-Cox ก่อนวิเคราะห์หรือสร้างโมเดล
🟡 เตือน
การกระจาย
การกระจายเบ้มาก
คอลัมน์ 'Fare' มีการกระจายเบ้ขวา (หางยาวด้านมาก) (skew=4.79) — ค่าเฉลี่ยอาจไม่สะท้อนค่ากลางที่แท้จริง
แล้วไงต่อ? พิจารณาแปลง 'Fare' ด้วย log/sqrt/Box-Cox ก่อนวิเคราะห์หรือสร้างโมเดล
🔵 ข้อมูล
ความผิดปกติ
พบหมวดหมู่หายาก (<1%)
คอลัมน์ 'Ticket': พบหมวดหมู่ 681 ค่า ที่ปรากฏน้อยกว่า 1% ของแถว — อาจเป็นการพิมพ์ผิดหรือค่าที่หายาก (891 รายการ, 100.0%)
แล้วไงต่อ? ตรวจสอบหมวดหมู่หายาก รวมค่าที่พิมพ์ผิดหรือจัดเข้ากลุ่ม 'อื่น ๆ'
🔵 ข้อมูล
ความผิดปกติ
พบค่าผิดปกติเชิงตัวเลข (outlier)
คอลัมน์ 'Fare': พบค่าผิดปกติเชิงตัวเลข 160 ค่า ด้วยวิธี modified_z_score (MAD) (ความเบ้ของการกระจาย ≈ 4.79) การกระจายแบบหางยาวมักมีค่าสุดขั้วทางธุรกิจที่ถูกต้อง จึงไม่ใช่ defect ของข้อมูลเสมอไป (160 รายการ, 18.0%)
แล้วไงต่อ? ตรวจสอบค่าเหล่านี้ — อาจเป็นการกรอกผิด หน่วยไม่ตรงกัน ค่าสุดขั้วจริง หรือค่าสุดขั้วทางธุรกิจที่ถูกต้อง
pattern_outlier
พบ outlier 30 แถวในคอลัมน์ 'SibSp' (z-score ≥ 3.0)
จัดกลุ่มตาม: SibSp · ตัววัด: SibSp · outlier
คอลัมน์ 'SibSp' มี 30 ค่าที่เป็น outlier (3.4% ของข้อมูล, max z-score=6.8, mean=0.5, std=1.1)
แล้วไงต่อ? ตรวจสอบ outlier ในคอลัมน์ 'SibSp' — อาจเป็นค่าผิดปกติจริงหรือการกรอกผิด พิจารณา clip/transform ก่อนนำไปวิเคราะห์หรือสร้างโมเดล
pattern_outlier
พบ outlier 15 แถวในคอลัมน์ 'Parch' (z-score ≥ 3.0)
จัดกลุ่มตาม: Parch · ตัววัด: Parch · outlier
คอลัมน์ 'Parch' มี 15 ค่าที่เป็น outlier (1.7% ของข้อมูล, max z-score=7.0, mean=0.4, std=0.8)
แล้วไงต่อ? ตรวจสอบ outlier ในคอลัมน์ 'Parch' — อาจเป็นค่าผิดปกติจริงหรือการกรอกผิด พิจารณา clip/transform ก่อนนำไปวิเคราะห์หรือสร้างโมเดล
pattern_outlier
พบ outlier 20 แถวในคอลัมน์ 'Fare' (z-score ≥ 3.0)
จัดกลุ่มตาม: Fare · ตัววัด: Fare · outlier
คอลัมน์ 'Fare' มี 20 ค่าที่เป็น outlier (2.2% ของข้อมูล, max z-score=9.7, mean=32.2, std=49.7)
แล้วไงต่อ? ตรวจสอบ outlier ในคอลัมน์ 'Fare' — อาจเป็นค่าผิดปกติจริงหรือการกรอกผิด พิจารณา clip/transform ก่อนนำไปวิเคราะห์หรือสร้างโมเดล
pattern_correlation
'Pclass' และ 'Fare' มีสหสัมพันธ์ Spearman (non-linear)สูง (ρ=-0.73)
จัดกลุ่มตาม: Pclass · ตัววัด: Fare · correlation
คอลัมน์ 'Pclass' และ 'Fare' มีสหสัมพันธ์ Spearman (non-linear)เป็นลบที่ strong (ρ=-0.731, n=714) — ค่าเคลื่อนไหวไปด้วยกัน
แล้วไงต่อ? คอลัมน์ทั้งสองสัมพันธ์กันสูง — อาจวัดสิ่งเดียวกัน พิจารณาใช้คอลัมน์ใดคอลัมน์หนึ่ง หรือรวมเป็น feature เดียวเพื่อกัน multicollinearity
กลุ่มโดดเด่น
กลุ่ม 'S' โดดเด่นใน 'SibSp' (ตาม 'Embarked')
จัดกลุ่มตาม: Embarked · ตัววัด: SibSp · sum
กลุ่ม 'S' มีผลรวม 'SibSp' สูงสุดที่ 368.0 — สูงกว่ากลุ่มรอง 5.7 เท่า (จัดกลุ่มตาม 'Embarked')
กราฟนี้บอกอะไรเรา

แล้วไงต่อ? ตรวจสอบว่าเหตุใดกลุ่ม 'S' จึงโดดเด่น และพิจารณาใช้เป็นจุดโฟกัสในการวิเคราะห์/ตัดสินใจ
เปรียบเทียบกลุ่ม
กลุ่ม 'female' ต่างจากกลุ่มอื่นอย่างมีนัยสำคัญใน 'Survived' (ตาม 'Sex')
จัดกลุ่มตาม: Sex · ตัววัด: Survived · mean
กลุ่ม 'female' มีค่าเฉลี่ย 'Survived' 293% สูงกว่ากลุ่มอื่น (เฉลี่ย 0.7 เทียบกับ 0.2, p=0.000)
กราฟนี้บอกอะไรเรา

ส่วนต่าง: 292.8% · ค่าเฉลี่ย: 0.74 vs 0.19 · ค่า p=0.0 · n=314/577
แล้วไงต่อ? ความแตกต่างระหว่างกลุ่มมีนัยสำคัญ — พิจารณาแยกวิเคราะห์ 'Survived' ตาม 'Sex' หรือใช้เป็นฟีเจอร์ในการสร้างโมเดล
เปรียบเทียบกลุ่ม
กลุ่ม 'C' ต่างจากกลุ่มอื่นอย่างมีนัยสำคัญใน 'Fare' (ตาม 'Embarked')
จัดกลุ่มตาม: Embarked · ตัววัด: Fare · mean
กลุ่ม 'C' มีค่าเฉลี่ย 'Fare' 134% สูงกว่ากลุ่มอื่น (เฉลี่ย 60.0 เทียบกับ 25.6, p=0.000)
กราฟนี้บอกอะไรเรา

ส่วนต่าง: 134.1% · ค่าเฉลี่ย: 59.95 vs 25.61 · ค่า p=0.0 · n=168/721
แล้วไงต่อ? ความแตกต่างระหว่างกลุ่มมีนัยสำคัญ — พิจารณาแยกวิเคราะห์ 'Fare' ตาม 'Embarked' หรือใช้เป็นฟีเจอร์ในการสร้างโมเดล
สัดส่วนหลัก
กลุ่ม 'S' คิดเป็นสัดส่วนใหญ่ของผลรวม 'Parch' (ตาม 'Embarked')
จัดกลุ่มตาม: Embarked · ตัววัด: Parch · sum
กลุ่ม 'S' คิดเป็น 78.2% ของผลรวม 'Parch' ทั้งหมด (จัดกลุ่มตาม 'Embarked')
กราฟนี้บอกอะไรเรา

สัดส่วน: 78.2%
แล้วไงต่อ? กลุ่ม 'S' มีสัดส่วนสูงต่อภาพรวม — ติดตามเป็นพิเศษ และประเมินความเสี่ยงจากการพึ่งพากลุ่มเดียว