I tidligere indlæg viste jeg, hvordan man henter og bruger data fra Twitter ( twitteR ), Yahoo Finance ( quantmod ), The Guardian ( guardianR ) og OECD ( oecd R-package ). I dette indlæg viser jeg, hvordan du får adgang til FRED-data med en API-nøgle ved hjælp af den tilgængelige R-pakke: fredr. En god dokumentation for at komme i gang med fredr-pakken er også udgivet af forfatterne: http://sboysel.github.io/fredr/articles/fredr.html
Jeg demonstrerer datahentningsprocessen for FRED-tidsseriedata ved at bruge amerikansk indenlandsk bilproduktion og importeret bilsalg som eksempel.
Første trin er at opsætte FRED API-nøglen i R-scriptet. Til dette skal du registrere dig hos FRED og copy-paste API-nøglen. Du kan gøre dette her: https://research.stlouisfed.org/useraccount/apikey
#install.packages("fredr")
library(fredr)
fredr_set_key(api_key)
Når først FRED API-nøglen er blevet sat op ved hjælp af fredr_set_key-funktionen, vil fredr_series_search_text-funktionen aktivere en tidsseriesøgning i FRED-databasen:
search_ls <- fredr_series_search_text("car production")
colnames(search_ls)
## [1] "id" "realtime_start"
## [3] "realtime_end" "title"
## [5] "observation_start" "observation_end"
## [7] "frequency" "frequency_short"
## [9] "units" "units_short"
## [11] "seasonal_adjustment" "seasonal_adjustment_short"
## [13] "last_updated" "popularity"
## [15] "group_popularity" "notes"
Fredr_series_search_text-funktionen returnerer en liste, der opsummerer søgeresultaterne og giver et overblik over relevante ID’er og vigtige datasætkarakteristika, såsom f.eks. sæsonjustering.
Ved at bruge fredr_series_observations kan man hente de ønskede tidsseriedata ved at angive det relevante serie-ID . Med do.call-funktionen kan man konvertere den returnerede tidsserieliste til en dataramme, der kan plottes i ggplot2:
library(ggplot2)
series_ls <-fredr_series_observations(series_id = "DAUPSA")
series_df <- do.call(cbind.data.frame, series_ls)
ggplot(series_df) + geom_line(mapping = aes(x=date,y=value),
color = "red") +
ggtitle("Monthly US car production, seasonally adjusted [in thousands]") +
xlab("time") +
ylab("monthly cars produced [thousands of units]")
Ovenstående diagram opsummerer den amerikanske indenlandske bilproduktion i enheder siden 1993 (månedlige tal, sæsonkorrigeret). Som det kan ses, er den historiske produktionsmængde faldet.
Men hvad med import af nye biler? Nedenfor gentager jeg ovenstående arbejdsgang for salg af importerede nye biler i milliarder USD, kvartalsrapporteret og sæsonkorrigeret:
series_df <-do.call(cbind.data.frame,
fredr_series_observations(series_id = "B149RC1Q027SBEA"))
ggplot(series_df) + geom_line(mapping = aes(x=date,y=value),
color = "red") +
ggtitle("Quarterly US imported new car sales, seasonally adjusted [in billion USD]") +
xlab("time") +
ylab("quarterly new imported car sales [billion USD]")
Industriingeniør som gerne beskæftiger sig med optimering, simulation og matematisk modellering i R, SQL, VBA og Python
Leave a Reply