จัดการค่าที่หายไป
ในบทที่ 3 คุณใช้ na.locf() เพื่อเติมค่าที่หายไปด้วยค่าก่อนหน้าที่ไม่ใช่ค่าว่าง แต่ในบางกรณีการนำค่าก่อนหน้ามาใช้อาจไม่เหมาะสม จึงสามารถใช้การอินเทอร์โพเลชันแทนได้ ในแบบฝึกหัดนี้ คุณจะได้สำรวจวิธีอินเทอร์โพเลชัน 2 แบบ ได้แก่ แบบเชิงเส้น (linear) และแบบสไปลน์ (spline)
การอินเทอร์โพเลชันแบบเชิงเส้นคำนวณค่าที่อยู่บนเส้นตรงระหว่างจุดข้อมูลที่ทราบอยู่แล้ว 2 จุด เหมาะสำหรับข้อมูลที่มีแนวโน้มค่อนข้างเป็นเส้นตรง เช่น อนุกรมที่มีเทรนด์ชัดเจน ส่วนการอินเทอร์โพเลชันแบบสไปลน์เหมาะกับอนุกรมที่ไม่มีเทรนด์ชัดเจน เพราะคำนวณค่าประมาณแบบไม่เชิงเส้นโดยใช้หลายจุดข้อมูล
นำทั้งสองวิธีมาอินเทอร์โพเลตค่าที่หายไป 3 ค่าของอัตราดอกเบี้ยพันธบัตรรัฐบาลอายุ 10 ปีในออบเจกต์ DGS10 จากนั้นเปรียบเทียบผลลัพธ์กับผลลัพธ์ของ na.locf()
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การนำเข้าและจัดการข้อมูลทางการเงินใน R
คำแนะนำการฝึกหัด
- เติมคำสั่งให้ครบเพื่อใช้
na.approx()เติมค่าที่หายไปด้วยการอินเทอร์โพเลชันแบบเชิงเส้น - เติมคำสั่งให้ครบเพื่อใช้
na.spline()เติมค่าที่หายไปด้วยการอินเทอร์โพเลชันแบบสไปลน์ - รวม
locf,approxและsplineให้เป็นออบเจกต์เดียวชื่อna_filled - เติมคำสั่งให้ครบเพื่อพล็อตกราฟ
na_filled
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# fill NA using last observation carried forward
locf <- na.locf(DGS10)
# fill NA using linear interpolation
approx <- ___(DGS10)
# fill NA using spline interpolation
spline <- ___(DGS10)
# merge into one object
# plot combined object
___(___, col = c("black", "red", "green"))