Thay thế dữ liệu thiếu - I
Như bạn đã thấy ở bài trước, dữ liệu GDP theo quý của bạn dường như thiếu khá nhiều quan sát. Thực tế, lệnh summary() ở bài trước đã cho thấy có 80 điểm dữ liệu bị thiếu!
Như bạn có thể nhớ từ khóa xts đầu tiên, xts và zoo cung cấp nhiều hàm để xử lý dữ liệu thiếu.
Kỹ thuật đơn giản nhất là lệnh na.locf(), vốn sẽ “kéo dài” giá trị quan sát gần nhất trước khi bị thiếu về phía trước (do đó là "last observation carried forward", hay locf). Cách làm này thường phù hợp nhất khi xử lý dữ liệu thiếu, đặc biệt khi bạn muốn thận trọng về tăng trưởng trong dữ liệu.
Một cách tương tự theo hướng ngược lại là lấy giá trị quan sát đầu tiên ngay sau chỗ bị thiếu và “kéo” ngược về trước ("next observation carried backward", hay nocb). Kỹ thuật này cũng có thể thực hiện bằng na.locf() với đối số fromLast đặt là TRUE.
Phương pháp nào tốt hơn phụ thuộc vào loại dữ liệu bạn đang làm và giả định của bạn về cách dữ liệu biến động theo thời gian.
Bài tập này là một phần của khóa học
Nghiên cứu tình huống: Phân tích dữ liệu chuỗi thời gian của thành phố bằng R
Hướng dẫn bài tập
- Dùng
na.locf()để điền các giá trị bị thiếu tronggdp_xtsdựa trên quy tắc “kéo dài giá trị quan sát cuối cùng về phía trước”. Lưu xts mới này làgdp_locf. - Gọi
na.locf()lần nữa để điền giá trị thiếu tronggdp_xtsdựa trên giá trị quan sát kế tiếp được kéo ngược về trước. Làm điều đó bằng cách đặt đối sốfromLast=TRUE. Lưu xts mới này làgdp_nocb. - Vẽ từng đối tượng bằng
plot.xts(). Bao gồm lệnhpar()đã viết sẵn để hiển thị cả hai biểu đồ cùng nhau. - Truy vấn từng đối tượng (
gdp_locfvàgdp_nocb) để lấy GDP năm 1993.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Fill NAs in gdp_xts with the last observation carried forward
gdp_locf <-
# Fill NAs in gdp_xts with the next observation carried backward
gdp_nocb <-
# Produce a plot for each of your new xts objects
par(mfrow = c(2,1))
plot.xts(___, major.format = "%Y")
plot.xts(___, major.format = "%Y")
# Query for GDP in 1993 in both gdp_locf and gdp_nocb