Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(ggplot2)
- library(tidyverse)
- fedData <- read.csv("PATH TO CSV FILE", header = TRUE)
- fedDataReduced <-
- fedData %>%
- transmute(date = `ï..Date`,
- recessionProb = Rec_prob,
- inRecession = NBER_Rec) %>%
- filter(!is.na(recessionProb) & !is.na(inRecession)) %>%
- mutate(date = as.POSIXct(strptime(date,format="%m/%d/%Y"))) %>%
- arrange(date) %>%
- mutate(newRecession = ifelse(lag(inRecession, default = 0) == 0 & inRecession == 1, 1, 0)) %>%
- mutate(leadR1 = lead(inRecession,1, default = 0),
- leadR2 = lead(inRecession,2, default = 0),
- leadR3 = lead(inRecession,3, default = 0),
- leadR4 = lead(inRecession,4, default = 0),
- leadR5 = lead(inRecession,5, default = 0),
- leadR6 = lead(inRecession,6, default = 0),
- leadR7 = lead(inRecession,7, default = 0),
- leadR8 = lead(inRecession,8, default = 0),
- leadR9 = lead(inRecession,9, default = 0),
- leadR10 = lead(inRecession,10, default = 0),
- leadR11 = lead(inRecession,11, default = 0),
- leadR12 = lead(inRecession,12, default = 0),
- sumR = leadR1+leadR2+leadR3+leadR4+leadR5+leadR6+leadR7+leadR8+leadR9+leadR10+leadR11+leadR12,
- recessionNextYear = ifelse(sumR > 0 , 1, 0)) %>%
- mutate(leadNR1 = lead(newRecession,1, default = 0),
- leadNR2 = lead(newRecession,2, default = 0),
- leadNR3 = lead(newRecession,3, default = 0),
- leadNR4 = lead(newRecession,4, default = 0),
- leadNR5 = lead(newRecession,5, default = 0),
- leadNR6 = lead(newRecession,6, default = 0),
- leadNR7 = lead(newRecession,7, default = 0),
- leadNR8 = lead(newRecession,8, default = 0),
- leadNR9 = lead(newRecession,9, default = 0),
- leadNR10 = lead(newRecession,10, default = 0),
- leadNR11 = lead(newRecession,11, default = 0),
- leadNR12 = lead(newRecession,12, default = 0),
- sumNR = leadNR1+leadNR2+leadNR3+leadNR4+leadNR5+leadNR6+leadNR7+leadNR8+leadNR9+leadNR10+leadNR11+leadNR12,
- newRecessionNextYear = ifelse(sumNR > 0 , 1, 0)) %>%
- mutate(bucket = ifelse(recessionProb < 1, 9, NA)) %>%
- mutate(bucket = ifelse(recessionProb < 0.9, 8, bucket)) %>%
- mutate(bucket = ifelse(recessionProb < 0.8, 7, bucket)) %>%
- mutate(bucket = ifelse(recessionProb < 0.7, 6, bucket)) %>%
- mutate(bucket = ifelse(recessionProb < 0.6, 5, bucket)) %>%
- mutate(bucket = ifelse(recessionProb < 0.5, 4, bucket)) %>%
- mutate(bucket = ifelse(recessionProb < 0.4, 3, bucket)) %>%
- mutate(bucket = ifelse(recessionProb < 0.3, 2, bucket)) %>%
- mutate(bucket = ifelse(recessionProb < 0.2, 1, bucket)) %>%
- mutate(bucket = ifelse(recessionProb < 0.1, 0, bucket)) %>%
- group_by(bucket) %>%
- summarize(n = n(),
- recCount = sum(recessionNextYear),
- nRecCount = sum(newRecessionNextYear),
- percentRec = recCount / n,
- percentNRec = nRecCount / n) %>%
- mutate(pred = bucket/10,
- dataCount = ifelse(n < 150, 150, 400)) %>%
- mutate(dataCount = ifelse(n < 100, 100, dataCount)) %>%
- mutate(dataCount = ifelse(n < 50, 50, dataCount)) %>%
- mutate(dataCount = ifelse(n < 25, 25, dataCount)) %>%
- mutate(dataCount = ifelse(n < 10, 10, dataCount))
- ggplot(fedDataReduced) +
- geom_line(aes(x=pred,y=pred)) +
- geom_line(aes(x=pred,y=pred - 0.1)) +
- geom_point(aes(x=pred,y=percentRec, colour = as.factor(dataCount))) +
- labs(x="Prediction",
- y="Occurence Rate",
- colour="Data Count Less Than")
- ggplot(fedDataReduced) +
- geom_line(aes(x=pred,y=pred)) +
- geom_line(aes(x=pred,y=pred - 0.1)) +
- geom_point(aes(x=pred,y=percentNRec, colour = as.factor(dataCount))) +
- labs(x="Prediction",
- y="Occurence Rate",
- colour="Data Count Less Than")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement