Nahrazení chybějících hodnot – I
Jak jsi zjistil/a v předchozím cvičení, ve čtvrtletních datech HDP chybí několik pozorování. Konkrétně volání summary() odhalilo 80 chybějících hodnot!
Jak si možná pamatuješ z kurzu xts, knihovny xts a zoo nabízejí řadu funkcí pro práci s chybějícími daty.
Nejjednodušší technikou je příkaz na.locf(), který přenáší poslední dostupné pozorování před chybějící hodnotou dopředu (anglicky „last observation carried forward", zkráceně locf). Tento přístup je často nejvhodnějším způsobem, jak řešit chybějící data – zvláště pokud chceš být konzervativní ohledně odhadovaného růstu.
Podobná technika funguje i v opačném směru: bere první dostupné pozorování za chybějící hodnotou a přenáší ho zpět (anglicky „next observation carried backward", zkráceně nocb). I tuto metodu lze použít pomocí na.locf() – stačí nastavit argument fromLast na TRUE.
Která metoda je vhodnější závisí na typu dat a na tom, jaké předpoklady máš o tom, jak se data v čase mění.
Toto cvičení je součástí kurzu
Případová studie: Analýza časových řad městských dat v R
Pokyny k cvičení
- Pomocí
na.locf()doplň chybějící hodnoty vgdp_xtsmetodou přenosu posledního pozorování dopředu. Výsledný xts objekt ulož jakogdp_locf. - Dalším voláním
na.locf()doplň chybějící hodnoty vgdp_xtsmetodou přenosu následujícího pozorování zpět. Nastav přitom argumentfromLastnaTRUE. Výsledný xts objekt ulož jakogdp_nocb. - Oba objekty vykresli pomocí
plot.xts(). Použij předpřipravený příkazpar(), aby se oba grafy zobrazily vedle sebe. - Z každého objektu (
gdp_locfagdp_nocb) získej hodnoty HDP za rok 1993.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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