Advertisement
Guest User

Untitled

a guest
May 19th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. library(tidyverse)
  2. library(broom)
  3.  
  4. data <- tribble(
  5. ~ age, ~ gender, ~ make, ~ claim_count, ~ severity,
  6. "18-25", "M", "Tesla", 0, NA,
  7. "18-25", "M", "Tesla", 0, NA,
  8. "18-25", "M", "Toyota", 0, NA,
  9. "18-25", "M", "Toyota", 0, NA,
  10. "18-25", "M", "Toyota", 0, NA,
  11. "18-25", "M", "Toyota", 0, NA,
  12. "18-25", "M", "Toyota", 0, NA,
  13. "18-25", "M", "Toyota", 1, 2000,
  14. "18-25", "M", "Toyota", 2, 1500,
  15. "18-25", "M", "BMW", 0, NA,
  16. "18-25", "M", "BMW", 0, NA,
  17. "18-25", "M", "BMW", 1, 8000,
  18. "18-25", "M", "BMW", 1, 1000000,
  19. "18-25", "M", "BMW", 2, 15000,
  20. "18-25", "F", "Tesla", 0, NA,
  21. "18-25", "F", "Tesla", 0, NA,
  22. "18-25", "F", "Tesla", 0, NA,
  23. "18-25", "F", "Toyota", 0, NA,
  24. "18-25", "F", "Toyota", 0, NA,
  25. "18-25", "F", "Toyota", 1, 500,
  26. "18-25", "F", "Toyota", 2, 1000,
  27. "18-25", "F", "Toyota", 2, 500,
  28. "18-25", "F", "BMW", 1, 20000,
  29. "26-30", "M", "Toyota", 0, NA,
  30. "26-30", "M", "Toyota", 0, NA,
  31. "26-30", "M", "Toyota", 0, NA,
  32. "26-30", "M", "Toyota", 0, NA,
  33. "26-30", "M", "Toyota", 0, NA,
  34. "26-30", "M", "Toyota", 0, NA,
  35. "26-30", "M", "Toyota", 0, NA,
  36. "26-30", "M", "Toyota", 2, 500,
  37. "26-30", "M", "Toyota", 2, 800,
  38. "26-30", "M", "BMW", 0, NA,
  39. "26-30", "M", "BMW", 0, NA,
  40. "26-30", "M", "BMW", 0, NA,
  41. "26-30", "M", "BMW", 0, NA,
  42. "26-30", "M", "BMW", 0, NA,
  43. "26-30", "F", "Tesla", 0, NA,
  44. "26-30", "F", "Tesla", 0, NA,
  45. "26-30", "F", "Toyota", 0, NA,
  46. "26-30", "F", "Toyota", 0, NA,
  47. "26-30", "F", "Toyota", 0, NA,
  48. "26-30", "F", "Toyota", 0, NA,
  49. "26-30", "F", "BMW", 0, NA,
  50. "26-30", "F", "BMW", 0, NA,
  51. "26-30", "F", "BMW", 0, NA,
  52. "26-30", "F", "BMW", 0, NA,
  53. "26-30", "F", "BMW", 0, NA
  54. ) %>%
  55. mutate(id = row_number())
  56.  
  57.  
  58. glm_count <- glm(
  59. claim_count ~ age + gender + make,
  60. data = data,
  61. family = "poisson"
  62. )
  63.  
  64. glm_severity <- glm(
  65. severity ~ age + gender + make,
  66. family = Gamma(link = "log"),
  67. data = data
  68. )
  69.  
  70. glm_severity_random_effects <- lme4::glmer(
  71. severity ~ age + gender + (1|make),
  72. family = Gamma(link = "log"),
  73. data = data
  74. )
  75.  
  76. tesla_new_data <- tibble(age = "18-25", gender = "M", make = "Tesla")
  77.  
  78. predict(
  79. glm_count,
  80. tesla_new_data
  81. )
  82.  
  83. # errors
  84. predict(
  85. glm_severity,
  86. tesla_new_data
  87. )
  88.  
  89. predict(
  90. glm_severity_random_effects,
  91. tesla_new_data,
  92. type = "response",
  93. allow.new.levels = TRUE
  94. )
  95.  
  96. # this gives pretty different results than the average relativity
  97. # approach from before. maybe the average was missing a exp() or log()?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement