Ersätt saknade värden – I
Som du märkte i föregående övning saknar dina kvartalsvisa BNP-data flera observationer. Anropet till summary() visade faktiskt hela 80 saknade datapunkter!
Som du kanske minns från den första xts-kursen erbjuder xts och zoo flera funktioner för att hantera saknade värden.
Den enklaste metoden är kommandot na.locf(), som för den senaste observationen före det saknade värdet framåt (därav namnet "last observation carried forward", eller locf). Det här är ofta det mest lämpliga tillvägagångssättet, särskilt när du vill vara försiktig med antaganden om tillväxt i dina data.
En liknande metod fungerar i motsatt riktning – den tar den första observationen efter det saknade värdet och för den bakåt ("next observation carried backward", eller nocb). Även det här kan göras med na.locf() genom att sätta argumentet fromLast till TRUE.
Vilken metod som passar bäst beror på vilken typ av data du arbetar med och dina antaganden om hur datan förändras över tid.
Den här övningen är en del av kursen
Fallstudie: Analys av tidsseridata för städer i R
Övningsinstruktioner
- Använd
na.locf()för att fylla i saknade värden igdp_xtsbaserat på den senaste observationen förd framåt. Spara det nya xts-objektet somgdp_locf. - Använd ett nytt anrop till
na.locf()för att fylla i saknade värden igdp_xtsbaserat på den nästa observationen förd bakåt. Sätt argumentetfromLasttillTRUE. Spara det nya xts-objektet somgdp_nocb. - Plotta båda objekten med
plot.xts(). Använd den förskrivnapar()-funktionen för att visa båda graferna tillsammans. - Sök i respektive objekt (
gdp_locfochgdp_nocb) efter BNP-värden för 1993.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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