在R中应用fredr程序包:分析FRED的美国国内汽车生产数据

在以前的文章中,我展示了如何从Twitter(twitteR),Yahoo Finance(quantmod),Guardian(guardianR)和OECD(R包)中检索和使用数据。在这篇文章中,我将展示如何使用可用的R包,使用API​​密钥访问FRED数据:fredr。作者还发布了有关fredr软件包入门的良好文档:http://sboysel.github.io/fredr/articles/fredr.html

我以美国国内汽车生产和进口汽车销售为例,演示了FRED时间序列数据的数据检索过程。

第一步是在R脚本中设置FRED API密钥。为此,您必须在FRED上注册并复制粘贴API密钥。您可以在这里执行以下操作:https://research.stlouisfed.org/useraccount/apikey

# 从CRAN安装软件包
#install.packages("fredr")
# 加载包
library(fredr)
# 设置fredr API密钥
fredr_set_key(api_key) # api_key字符串必须从 https://research.stlouisfed.org/useraccount/apikey

使用fredr_set_key函数设置FRED API密钥后,fredr_series_search_text函数将启用FRED数据库中的时间序列搜索:

# 搜索汽车生产系列的数据库
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函数返回一个汇总搜索结果的列表,提供相关ID和重要数据集特征(例如,例如季节性调整。

使用fredr_series_observations,可以通过指定相关的序列ID来检索所需的时间序列数据。使用do.call函数,可以将返回的时间序列列表转换为可在ggplot2中绘制的数据帧:

# 加载ggplot2 R包
library(ggplot2)

# DAUPSA是按季节调整的每月国内汽车产量(单位)的ID
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]")

上图总结了自1993年以来美国国内汽车产量(单位为月,经季节调整)。可以看出,历史产量下降了。

但是新车的进口呢?下面我重复上述工作流程,以季度报告和季节性调整的十亿美元进口新车销售:

# B149RC1Q027SBEA是在美国国内销售的季节性调整后的进口新车的ID,价值数十亿美元
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]")

Leave a Reply

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Close

功能