จากฮิสโทแกรมสู่ KDE
ในแบบฝึกหัดชุดนี้ เราจะวิเคราะห์ข้อมูลย่อยจากชุดข้อมูลใบสั่งที่ออกให้กับรถประเภท "Heavy Duty Truck" สมมติว่าเราเป็นคนขับรถที่ใส่ใจข้อมูล และอยากรู้ว่าช่วงเวลาใดที่มีความเสี่ยงบนท้องถนนมากที่สุด โดยขนาดของตัวอย่างในที่นี้มีเพียง 32 รายการเท่านั้น
โค้ดด้านล่างสร้างฮิสโทแกรมแบบค่าเริ่มต้นด้วย ggplot ซึ่งคาดได้เลยว่าผลลัพธ์ไม่ค่อยดีนัก เนื่องจากข้อมูลมีน้อยเกินไปที่จะกระจายครบทั้ง 30 bins ทำให้อ่านและทำความเข้าใจข้อมูลได้ยาก ให้เปลี่ยน geometry เป็น KDE โดยใช้ geom_density() และเพื่อให้ภาพแสดงข้อมูลได้โปร่งใสที่สุด ให้เพิ่ม subtitle บอกผู้อ่านถึงค่า bin-width ที่ใช้ในการสร้าง KDE ด้วย
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
แนวทางปฏิบัติที่ดีที่สุดสำหรับการสร้างภาพข้อมูลใน R
คำแนะนำการฝึกหัด
- เปลี่ยน geometry ของฮิสโทแกรมเป็นแบบ density (
geom_density()) - ปรับค่า bin width เริ่มต้นเป็น
1.5หน่วย - เพิ่ม
subtitleว่า"Gaussian kernel SD = 1.5"ลงในกราฟ เพื่อแจ้งให้ผู้อ่านทราบถึงค่า binwidth ของเคอร์เนลที่ใช้
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# filter data to just heavy duty trucks
truck_speeding <- md_speeding %>%
filter(vehicle_type == "Heavy Duty Truck")
ggplot(truck_speeding, aes(x = hour_of_day)) +
# switch to density with bin width of 1.5, keep fill
geom_histogram(fill = 'steelblue') +
# add a subtitle stating binwidth
labs(title = 'Citations by hour')