มาลองใช้ Log Transform กัน
มาดูค่าควอร์ไทล์ของรายได้เฉลี่ยต่อรหัสไปรษณีย์ในรัฐ NC กัน
summary(high_inc$mean_income)
Min. 1st Qu. Median Mean 3rd Qu. Max.
55947 62380 71655 83682 90695 550849
ช่วงของข้อมูลกว้างเกือบ $500,000! อย่างไรก็ตาม ค่ามัธยฐานอยู่ใกล้กับค่าต่ำสุดมากกว่าค่าสูงสุด ซึ่งบ่งชี้ว่าข้อมูลเบ้ไปทางขวา เนื่องจากตัวแปรรายได้เฉลี่ยมีค่าที่สูงผิดปกติอยู่บ้าง การไล่สีแบบต่อเนื่องจึงไม่ค่อยช่วยให้เห็นความแตกต่างได้ชัดเจนนัก การทำ log transform กับตัวแปรที่เบ้ขวาจะดึงค่าสูงสุดให้เข้าใกล้ค่าเฉลี่ยมากขึ้น ทำให้การกระจายตัวของข้อมูลสมมาตรขึ้น
การทำ log transform กับรายได้เฉลี่ยบนแผนที่จะช่วยเพิ่มความหลากหลายของการไล่สีในรหัสไปรษณีย์รายได้สูง และทำให้เห็นการกระจายตัวของรายได้เฉลี่ยทั่วทั้งรัฐได้ชัดเจนยิ่งขึ้น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Interactive Maps with leaflet in R
คำแนะนำการฝึกหัด
- สร้าง color palette
nc_palเวอร์ชันที่ผ่านการทำ log transform - นำ color palette เวอร์ชัน log ไปใช้กับแผนที่
leaflet - คอมเมนต์ map tile ออกจากแผนที่
leafletเพื่อให้มองเห็นความแตกต่างของรายได้เฉลี่ยได้ชัดขึ้น (เพิ่ม # โดยไม่มีช่องว่างนำหน้าฟังก์ชันที่เพิ่ม map tile)
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Use the log function to create a new version of nc_pal
nc_pal <- colorNumeric("YlGn", domain = ___(high_inc@data$mean_income))
# comment out the map tile
high_inc %>%
leaflet() %>%
___addProviderTiles("CartoDB") %>%
# apply the new nc_pal to the map
addPolygons(weight = 1, color = ~nc_pal(___(mean_income)), fillOpacity = 1,
label = ~paste0("Mean Income: ", dollar(mean_income)),
highlightOptions = highlightOptions(weight = 5, color = "white", bringToFront = TRUE))