Zastępowanie brakujących danych – cz. I
Jak wykazało poprzednie ćwiczenie, w kwartalnych danych PKB brakuje kilku obserwacji. Wywołanie summary() ujawniło aż 80 brakujących punktów danych!
Jak zapewne pamiętasz z pierwszego kursu poświęconego xts, pakiety xts i zoo oferują różne funkcje do obsługi brakujących danych.
Najprostszą techniką jest polecenie na.locf(), które przenosi w przód ostatnią obserwację poprzedzającą brakujące dane (stąd nazwa: „last observation carried forward", czyli locf). To podejście jest często najbardziej odpowiednie do obsługi braków danych – szczególnie gdy chcesz zachować ostrożność w kwestii wzrostu wartości.
Podobna technika działa w przeciwnym kierunku: pobiera pierwszą obserwację po brakującej wartości i przenosi ją wstecz („next observation carried backward", czyli nocb). Tę metodę również można zastosować za pomocą polecenia na.locf(), ustawiając argument fromLast na TRUE.
Wybór metody zależy od rodzaju danych, z którymi pracujesz, oraz od tego, jak według ciebie zmieniają się one w czasie.
To ćwiczenie jest częścią kursu
Studium przypadku: analiza danych szeregów czasowych miasta w R
Instrukcje do ćwiczenia
- Użyj
na.locf(), aby uzupełnić brakujące wartości wgdp_xtsna podstawie ostatniej obserwacji przenoszonej w przód. Zapisz nowy obiekt xts jakogdp_locf. - Wywołaj ponownie
na.locf(), aby uzupełnić brakujące wartości wgdp_xtsna podstawie następnej obserwacji przenoszonej wstecz. W tym celu ustaw argumentfromLastnaTRUE. Zapisz nowy obiekt xts jakogdp_nocb. - Wykreśl oba obiekty za pomocą
plot.xts(). Skorzystaj z gotowego poleceniapar(), aby wyświetlić oba wykresy obok siebie. - Odpytaj każdy obiekt (
gdp_locfigdp_nocb) o wartość PKB w 1993 roku.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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