Taxa de juros

Author

Natan Henrique Alves

Pacotes necessários

library(ggthemes)
library(quantmod)
Loading required package: xts
Loading required package: zoo

Attaching package: 'zoo'
The following objects are masked from 'package:base':

    as.Date, as.Date.numeric
Loading required package: TTR
Registered S3 method overwritten by 'quantmod':
  method            from
  as.zoo.data.frame zoo 
library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.5.1     ✔ tibble    3.2.1
✔ lubridate 1.9.3     ✔ tidyr     1.3.1
✔ purrr     1.0.2     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::first()  masks xts::first()
✖ dplyr::lag()    masks stats::lag()
✖ dplyr::last()   masks xts::last()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors

Primeira Base de Dados

# Defina o período para os dados
start_date <- "1970-01-01"
end_date <- Sys.Date()

# Obtenha os dados da Federal Funds Rate
getSymbols("FEDFUNDS", src = "FRED", from = start_date, to = end_date)
[1] "FEDFUNDS"
fed_funds <- FEDFUNDS

# Obtenha os dados da taxa de juros de Treasury Bills de 1 ano
getSymbols("TB1YR", src = "FRED", from = start_date, to = end_date)
[1] "TB1YR"
treasury_bills <- TB1YR

# Combine os dados em um único data frame
data <- data.frame(Date = index(fed_funds), 
                   Federal_Funds_Rate = as.numeric(fed_funds),
                   Treasury_Bills_Rate = as.numeric(treasury_bills))

# Adicione uma coluna indicando recessões
data$Recession <- ifelse(data$Federal_Funds_Rate > data$Treasury_Bills_Rate, "Recession", "No Recession")

# Crie um gráfico usando ggplot2
ggplot(data, aes(x = Date)) +
  geom_line(aes(y = Federal_Funds_Rate, color = "Federal Funds Rate")) +
  geom_line(aes(y = Treasury_Bills_Rate, color = "Treasury Bills Rate")) +
  scale_color_manual(values = c("red", "blue")) +
  labs(title = "Federal Funds Rate vs Treasury Bills Rate",
       y = "Taxa de Juros (%)",
       color = "Interest Rate Type") +
  theme_economist_white()

Segunda Base de Dados

# Defina o período para os dados
start_date <- "1970-01-01"
end_date <- Sys.Date()

# Obtenha os dados da Federal Funds Rate
getSymbols("FEDFUNDS", src = "FRED", from = start_date, to = end_date)
[1] "FEDFUNDS"
fed_funds <- FEDFUNDS

# Obtenha os dados da taxa de juros de Treasury Bills de 3 meses
getSymbols("TB3MS", src = "FRED", from = start_date, to = end_date)
[1] "TB3MS"
treasury_bills <- TB3MS

# Combine os dados em um único data frame
data <- data.frame(Date = index(fed_funds), 
                   Federal_Funds_Rate = as.numeric(fed_funds),
                   Treasury_Bills_Rate = as.numeric(treasury_bills))

# Adicione uma coluna indicando recessões
data$Recession <- ifelse(data$Federal_Funds_Rate > data$Treasury_Bills_Rate, "Recession", "No Recession")

# Crie um gráfico usando ggplot2
ggplot(data, aes(x = Date)) +
  geom_line(aes(y = Federal_Funds_Rate, color = "Federal Funds Rate")) +
  geom_line(aes(y = Treasury_Bills_Rate, color = "Treasury Bills Rate")) +
  scale_color_manual(values = c("red", "blue")) +
  labs(title = "Federal Funds Rate vs Treasury Bills Rate",
       y = "Taxa de Juros (%)",
       color = "Interest Rate Type") +
  theme_economist_white()

Quarta Base de Dados

# Defina o período para os dados
start_date <- "1970-01-01"
end_date <- Sys.Date()

# Obtenha os dados da Federal Funds Rate
getSymbols("FEDFUNDS", src = "FRED", from = start_date, to = end_date)
[1] "FEDFUNDS"
fed_funds <- FEDFUNDS

# Obtenha os dados da taxa de juros de Treasury Bills de 6 meses
getSymbols("TB6MS", src = "FRED", from = start_date, to = end_date)
[1] "TB6MS"
treasury_bills <- TB6MS

# Combine os dados em um único data frame
data <- data.frame(Date = index(fed_funds), 
                   Federal_Funds_Rate = as.numeric(fed_funds),
                   Treasury_Bills_Rate = as.numeric(treasury_bills))

# Adicione uma coluna indicando recessões
data$Recession <- ifelse(data$Federal_Funds_Rate > data$Treasury_Bills_Rate, "Recession", "No Recession")

# Crie um gráfico usando ggplot2
ggplot(data, aes(x = Date)) +
  geom_line(aes(y = Federal_Funds_Rate, color = "Federal Funds Rate")) +
  geom_line(aes(y = Treasury_Bills_Rate, color = "Treasury Bills Rate")) +
  scale_color_manual(values = c("red", "blue")) +
  labs(title = "Federal Funds Rate vs Treasury Bills Rate",
       y = "Taxa de Juros (%)",
       color = "Interest Rate Type") +
  theme_economist_white()

Quinta Base de Dados

# Defina o período para os dados
start_date <- "1970-01-01"
end_date <- Sys.Date()

# Obtenha os dados do Produto Interno Bruto (PIB) real, PIB potencial e taxa de desemprego dos EUA
getSymbols(c("GDPC1", "GDPPOT", "UNRATE"), src = "FRED", from = start_date, to = end_date)
[1] "GDPC1"  "GDPPOT" "UNRATE"
# Ajuste o comprimento dos dados para corresponder aos outros dados
gdp_real <- na.omit(GDPC1)
gdp_potential <- na.omit(GDPPOT)
unemployment_rate <- na.omit(UNRATE)

# Mantenha apenas as datas comuns aos três conjuntos de dados
common_dates <- index(GDPC1) %in% index(GDPPOT) & index(GDPC1) %in% index(UNRATE)
gdp_real <- GDPC1[common_dates]
gdp_potential <- GDPPOT[common_dates]
unemployment_rate <- UNRATE[common_dates]

# Combine os dados do PIB real e potencial em um único data frame
data_gdp <- data.frame(Date = index(gdp_real), 
                       Real_GDP = as.numeric(coredata(gdp_real)),
                       Potential_GDP = as.numeric(coredata(gdp_potential)))

# Combine os dados da taxa de desemprego em um único data frame
data_unemployment <- data.frame(Date = index(unemployment_rate), 
                                Unemployment_Rate = as.numeric(coredata(unemployment_rate)))

# Crie os gráficos separados
plot_gdp <- ggplot(data_gdp, aes(x = Date)) +
  geom_line(aes(y = Real_GDP/1000, color = "Real GDP"), linetype = "solid") +
  geom_line(aes(y = Potential_GDP/1000, color = "Potential GDP"), linetype = "solid") +
  scale_y_continuous(sec.axis = sec_axis(~.*1000, name = "GDP (billions of dollars)")) +
  scale_color_manual(values = c("blue", "red")) +
  labs(title = "US Real GDP vs Potential GDP",
       y = "GDP (billions of dollars)",
       color = "GDP Type") +
   theme_economist_white()

plot_unemployment <- ggplot(data_unemployment, aes(x = Date, y = Unemployment_Rate)) +
  geom_line(color = "red") +
  labs(title = "US Unemployment Rate",
       y = "Unemployment Rate (%)",
       x = "") +
  theme_economist_white()

Sexta Base Dedados

# Defina o período para os dados
start_date <- "1970-01-01"
end_date <- Sys.Date()

# Obtenha os dados do Produto Interno Bruto (PIB) real e do PIB potencial dos EUA
getSymbols(c("GDPC1", "GDPPOT"), src = "FRED", from = start_date, to = end_date)
[1] "GDPC1"  "GDPPOT"
# Ajuste o comprimento dos dados do PIB para corresponder aos outros dados
gdp_real <- na.omit(GDPC1)
gdp_potential <- na.omit(GDPPOT)
gdp <- merge(gdp_real, gdp_potential)

# Crie um data frame com as datas, o PIB real e o PIB potencial
data <- data.frame(Date = index(gdp), 
                   GDP_Real = as.numeric(coredata(gdp[,1])),
                   GDP_Potential = as.numeric(coredata(gdp[,2])))

# Crie um gráfico usando ggplot2 com o PIB real e o PIB potencial
ggplot(data, aes(x = Date)) +
  geom_line(aes(y = GDP_Real, color = "Real GDP")) +
  geom_line(aes(y = GDP_Potential, color = "Potential GDP")) +
  scale_color_manual(values = c("blue", "red")) +
  labs(title = "US Real GDP vs Potential GDP",
       y = "GDP (billions of dollars)",
       x = "Data",
       color = "GDP Type") +
  theme_economist_white()+
   geom_vline(xintercept = as.numeric(as.Date(c("1978-01-01", "1980-12-31"))), linetype = "dashed", color = "black") +
  geom_vline(xintercept = as.numeric(as.Date(c("1989-01-01", "1990-12-31"))), linetype = "dashed", color = "red") +
  geom_vline(xintercept = as.numeric(as.Date(c("2000-01-01", "2001-12-31"))), linetype = "dashed", color = "black") +
  geom_vline(xintercept = as.numeric(as.Date(c("2006-01-01", "2007-12-31"))), linetype = "dashed", color = "red") +
  geom_vline(xintercept = as.numeric(as.Date(c("2019-01-01"))), linetype = "dashed", color = "black")
Warning: Removed 1 row containing missing values or values outside the scale range
(`geom_line()`).

Setima Base de Dados

# Defina o período para os dados
start_date <- "1970-01-01"
end_date <- Sys.Date()

# Obtenha os dados do Produto Interno Bruto (PIB) dos EUA
getSymbols("GDPC1", src = "FRED", from = start_date, to = end_date)
[1] "GDPC1"
gdp <- GDPC1

# Ajuste o comprimento dos dados do PIB para corresponder aos outros dados
gdp <- na.omit(gdp)
gdp <- window(gdp, start = start_date, end = end_date)

# Crie um gráfico usando ggplot2 apenas com os dados do PIB
ggplot(data.frame(Date = index(gdp), GDP = as.numeric(gdp)), aes(x = Date, y = GDP/1000)) +
  geom_line(color = "blue") +
  labs(title = "US Gross Domestic Product (GDP)",
       y = "GDP (trillions of dollars)",
       x = "Year") +
  theme_economist_white() + 
  geom_vline(xintercept = as.numeric(as.Date(c("1978-01-01", "1980-12-31"))), linetype = "dashed", color = "black") +
  geom_vline(xintercept = as.numeric(as.Date(c("1989-01-01", "1990-12-31"))), linetype = "dashed", color = "red") +
  geom_vline(xintercept = as.numeric(as.Date(c("2000-01-01", "2001-12-31"))), linetype = "dashed", color = "black") +
  geom_vline(xintercept = as.numeric(as.Date(c("2006-01-01", "2007-12-31"))), linetype = "dashed", color = "red") +
  geom_vline(xintercept = as.numeric(as.Date(c("2019-01-01"))), linetype = "dashed", color = "black")

Oitava Base de Dados

# Defina o período para os dados
start_date <- "1970-01-01"
end_date <- Sys.Date()

# Obtenha os dados da taxa de desemprego dos EUA
getSymbols("UNRATE", src = "FRED", from = start_date, to = end_date)
[1] "UNRATE"
unemployment_rate <- na.omit(UNRATE)

# Crie um data frame com as datas e a taxa de desemprego
data <- data.frame(Date = index(unemployment_rate), 
                   Unemployment_Rate = as.numeric(coredata(unemployment_rate)))

# Crie um gráfico usando ggplot2 com a taxa de desemprego
ggplot(data, aes(x = Date, y = Unemployment_Rate)) +
  geom_line(color = "red") +
  labs(title = "Taxa de Desemprego",
       y = "Taxa de Desemprego (%)",
       x = "Year") +
  theme_economist_white()+
   geom_vline(xintercept = as.numeric(as.Date(c("1978-01-01", "1980-12-31"))), linetype = "dashed", color = "black") +
  geom_vline(xintercept = as.numeric(as.Date(c("1989-01-01", "1990-12-31"))), linetype = "dashed", color = "red") +
  geom_vline(xintercept = as.numeric(as.Date(c("2000-01-01", "2001-12-31"))), linetype = "dashed", color = "black") +
  geom_vline(xintercept = as.numeric(as.Date(c("2006-01-01", "2007-12-31"))), linetype = "dashed", color = "red") +
  geom_vline(xintercept = as.numeric(as.Date(c("2019-01-01"))), linetype = "dashed", color = "black")