Advertisement
coltonpeltier

Untitled

Jan 21st, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.76 KB | None | 0 0
  1. library(ggplot2)
  2. library(tidyverse)
  3.  
  4. fedData <- read.csv("PATH TO CSV FILE", header = TRUE)
  5.  
  6. fedDataReduced <-
  7. fedData %>%
  8. transmute(date = `ï..Date`,
  9. recessionProb = Rec_prob,
  10. inRecession = NBER_Rec) %>%
  11. filter(!is.na(recessionProb) & !is.na(inRecession)) %>%
  12. mutate(date = as.POSIXct(strptime(date,format="%m/%d/%Y"))) %>%
  13. arrange(date) %>%
  14. mutate(newRecession = ifelse(lag(inRecession, default = 0) == 0 & inRecession == 1, 1, 0)) %>%
  15. mutate(leadR1 = lead(inRecession,1, default = 0),
  16. leadR2 = lead(inRecession,2, default = 0),
  17. leadR3 = lead(inRecession,3, default = 0),
  18. leadR4 = lead(inRecession,4, default = 0),
  19. leadR5 = lead(inRecession,5, default = 0),
  20. leadR6 = lead(inRecession,6, default = 0),
  21. leadR7 = lead(inRecession,7, default = 0),
  22. leadR8 = lead(inRecession,8, default = 0),
  23. leadR9 = lead(inRecession,9, default = 0),
  24. leadR10 = lead(inRecession,10, default = 0),
  25. leadR11 = lead(inRecession,11, default = 0),
  26. leadR12 = lead(inRecession,12, default = 0),
  27. sumR = leadR1+leadR2+leadR3+leadR4+leadR5+leadR6+leadR7+leadR8+leadR9+leadR10+leadR11+leadR12,
  28. recessionNextYear = ifelse(sumR > 0 , 1, 0)) %>%
  29. mutate(leadNR1 = lead(newRecession,1, default = 0),
  30. leadNR2 = lead(newRecession,2, default = 0),
  31. leadNR3 = lead(newRecession,3, default = 0),
  32. leadNR4 = lead(newRecession,4, default = 0),
  33. leadNR5 = lead(newRecession,5, default = 0),
  34. leadNR6 = lead(newRecession,6, default = 0),
  35. leadNR7 = lead(newRecession,7, default = 0),
  36. leadNR8 = lead(newRecession,8, default = 0),
  37. leadNR9 = lead(newRecession,9, default = 0),
  38. leadNR10 = lead(newRecession,10, default = 0),
  39. leadNR11 = lead(newRecession,11, default = 0),
  40. leadNR12 = lead(newRecession,12, default = 0),
  41. sumNR = leadNR1+leadNR2+leadNR3+leadNR4+leadNR5+leadNR6+leadNR7+leadNR8+leadNR9+leadNR10+leadNR11+leadNR12,
  42. newRecessionNextYear = ifelse(sumNR > 0 , 1, 0)) %>%
  43. mutate(bucket = ifelse(recessionProb < 1, 9, NA)) %>%
  44. mutate(bucket = ifelse(recessionProb < 0.9, 8, bucket)) %>%
  45. mutate(bucket = ifelse(recessionProb < 0.8, 7, bucket)) %>%
  46. mutate(bucket = ifelse(recessionProb < 0.7, 6, bucket)) %>%
  47. mutate(bucket = ifelse(recessionProb < 0.6, 5, bucket)) %>%
  48. mutate(bucket = ifelse(recessionProb < 0.5, 4, bucket)) %>%
  49. mutate(bucket = ifelse(recessionProb < 0.4, 3, bucket)) %>%
  50. mutate(bucket = ifelse(recessionProb < 0.3, 2, bucket)) %>%
  51. mutate(bucket = ifelse(recessionProb < 0.2, 1, bucket)) %>%
  52. mutate(bucket = ifelse(recessionProb < 0.1, 0, bucket)) %>%
  53. group_by(bucket) %>%
  54. summarize(n = n(),
  55. recCount = sum(recessionNextYear),
  56. nRecCount = sum(newRecessionNextYear),
  57. percentRec = recCount / n,
  58. percentNRec = nRecCount / n) %>%
  59. mutate(pred = bucket/10,
  60. dataCount = ifelse(n < 150, 150, 400)) %>%
  61. mutate(dataCount = ifelse(n < 100, 100, dataCount)) %>%
  62. mutate(dataCount = ifelse(n < 50, 50, dataCount)) %>%
  63. mutate(dataCount = ifelse(n < 25, 25, dataCount)) %>%
  64. mutate(dataCount = ifelse(n < 10, 10, dataCount))
  65.  
  66. ggplot(fedDataReduced) +
  67. geom_line(aes(x=pred,y=pred)) +
  68. geom_line(aes(x=pred,y=pred - 0.1)) +
  69. geom_point(aes(x=pred,y=percentRec, colour = as.factor(dataCount))) +
  70. labs(x="Prediction",
  71. y="Occurence Rate",
  72. colour="Data Count Less Than")
  73.  
  74. ggplot(fedDataReduced) +
  75. geom_line(aes(x=pred,y=pred)) +
  76. geom_line(aes(x=pred,y=pred - 0.1)) +
  77. geom_point(aes(x=pred,y=percentNRec, colour = as.factor(dataCount))) +
  78. labs(x="Prediction",
  79. y="Occurence Rate",
  80. colour="Data Count Less Than")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement