Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. library(dplyr)
  2. library(purrr)
  3.  
  4. set.seed(2017-06-27)
  5.  
  6. # Imagine this function gives us measurements from nature
  7. data_generator <- function(n = 500){
  8. data_frame(var1 = rnorm(500)) %>%
  9. mutate(var2 = var1 + rnorm(500)) %>%
  10. mutate(var3 = var1 * var2 + rnorm(500)) %>%
  11. mutate(resp = abs(var1 + var2 + var3)) %>%
  12. mutate(resp = abs(resp)/max(resp)) %>%
  13. mutate(resp = as.numeric(resp > median(resp)))
  14. }
  15.  
  16. # Collect some data
  17. dataset1 <- data_generator()
  18.  
  19. # Build a model
  20. model <- glm(resp ~ ., data = dataset1, family = binomial())
  21.  
  22. model %>%
  23. summary()
  24. # Coefficients:
  25. # Estimate Std. Error z value Pr(>|z|)
  26. # (Intercept) -0.10570 0.10664 -0.991 0.32160
  27. # var1 0.78714 0.15443 5.097 3.45e-07 ***
  28. # var2 0.11033 0.09607 1.148 0.25082
  29. # var3 0.18189 0.06002 3.031 0.00244 **
  30.  
  31. # Function to calculate RMSE
  32. rmse <- . %>%
  33. mutate(pred = predict(model, newdata = ., type = "response")) %>%
  34. mutate(error = resp - pred) %>%
  35. select(error) %>%
  36. unlist() %>%
  37. `^`(2) %>% mean() %>% sqrt()
  38.  
  39. # Function to do sampling with replacement
  40. bootstrapped_rmse <- . %>%
  41. sample_frac(replace = TRUE) %>%
  42. rmse()
  43.  
  44. # 100 bootstrap replicates (do 1000 or 10000)
  45. rmse_ci <- 1:100 %>%
  46. map(~ dataset1) %>%
  47. map_dbl(bootstrapped_rmse)
  48.  
  49. # Here's your 95% CI
  50. quantile(rmse_ci, c(0.025, 0.975))
  51. # 2.5% 97.5%
  52. # 0.4473360 0.4744052
  53.  
  54. # Collect more data
  55. dataset2 <- data_generator()
  56.  
  57. # Inspect RMSE
  58. dataset2 %>%
  59. rmse()
  60. # 0.4580332
  61.  
  62. # It's in the CI which suggests the model might be good.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement