Guest User

Untitled

a guest
Jun 21st, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. # calculate the prob of P(fake|data)
  2. calc_prob <- function(heads)
  3. {
  4. P_fake = .1 # my prior belief of the experiment being rigged
  5. P_real = 1 - P_fake
  6.  
  7. P_data_given_fake = dnorm(heads, mean=10000, sd=10) # P(data|fake)
  8. P_data_given_real = dbinom(heads, size=20000, p=.5) # P(data|real)
  9.  
  10. # bayes theorem
  11. P_data = P_data_given_fake * P_fake + P_data_given_real * P_real
  12. P_fake_given_data = P_data_given_fake * P_fake / P_data
  13.  
  14. P_fake_given_data
  15. }
  16.  
  17. calc_prob(10000)
  18. calc_prob(10093)
  19.  
  20. library(ggplot2)
  21.  
  22. x <- 9900:10100
  23. fake_dist <- dnorm(x, mean=10000, sd=10)
  24. real_dist <- dbinom(x, size=20000, p=.5)
  25. posterior_dist <- calc_prob(x)
  26.  
  27. # make the data
  28. data <- data.frame(x=rep(x, 2), freq=c(fake_dist, real_dist),
  29. distribution=rep(c("Fake Normal(10000, 10)", "Real Binomial(20000, .5)"), each=length(x)))
  30.  
  31. # plot the data
  32. g <- ggplot(data, aes(x=x, y=freq, group=distribution))
  33. g + geom_line(aes(colour=distribution), size=1) + xlab("# of heads") + ylab("Density") +
  34. opts(title="Distribution for fake and real experiment")
  35. ggsave("cointoss.pdf")
Add Comment
Please, Sign In to add comment