Created
December 3, 2016 15:54
-
-
Save diamonaj/4598b8bc85fae957316790bb7a32cf16 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # NOTE TO INSTRUCTOR: READ ENTIRE FILE BEFORE CLASS | |
| # RUN CODE FROM LINE 49 TO END BEFORE CLASS | |
| # CONSIDER THE FOLLOWING GAME... | |
| # IMAGINE YOU WANT TO ESTIMATE THE UNDERLYING PARAMETER VALUE | |
| # OF A BERNOULLI DISTRIBUTION (i.e., THE PROBABILITY OF A "1" | |
| # INSTEAD OF A "0"...) | |
| # YOU CAN PULL THE "CORR" LEVER AND OBTAIN 50 CORRELATED DATA | |
| # POINTS FROM THE BERNOULLI DISTRIBUTION | |
| # OR YOU CAN PULL THE "UNCORR" LEVER AND OBTAIN 50 UNCORRELATED DATA | |
| # POINTS FROM THE BERNOULLI DISTRIBUTION. | |
| # NOTICE THAT BOTH LEVERS PRODUCE RESULTS THAT HAVE THE SAME | |
| # EXPECTED VALUE AND THEREFORE THE SAME VARIANCE & STD DEVIATION | |
| # BECAUSE IN A BERNOULLI DISTRIBUTION, THE MEAN DETERMINES THE VARIANCE | |
| # WHICH IS A BETTER CHOICE (TO LEARN ABOUT THE TRUE PARAMETER VALUE)? | |
| corr.lever() | |
| uncorr.lever() | |
| sd(corr.lever()) | |
| sd(uncorr.lever()) | |
| plot(density(corr.lever())) | |
| plot(density(uncorr.lever())) | |
| # There are only 6 different outcomes you can get. | |
| yy <- c() | |
| for(i in 1:10000) {yy[i] <- mean(corr.lever())} | |
| hist(yy) | |
| # run 1000 experiments (simulated trials) | |
| for(i in 1:1000) | |
| { | |
| storage.corr[i] <- mean(corr.lever()) | |
| } | |
| for(i in 1:1000) | |
| { | |
| storage.uncorr[i] <- mean(uncorr.lever()) | |
| } | |
| # Was the standard deviation of the means derived from uncorrelated data | |
| # LOWER than the standard deviation of the means derived from correlated data? | |
| # Across all the simulated trials (for the whole shebang)? | |
| sd(storage.uncorr) < sd(storage.corr) | |
| # classic standard error formula: sqrt( p*(1-p) ) / sqrt(n) | |
| cat("uncorrelated data standard deviation:", sd(storage.uncorr)) | |
| # classic standard error formula does not work for correlated data | |
| cat("correlated data standard deviation:", sd(storage.corr)) # standard error | |
| # CODE BELOW: | |
| # RUN BEFORE CLASS TO LOAD FUNCTIONS IN MEMORY. | |
| # SHOW STUDENTS AFTER GAME ENDS. | |
| corr.lever <- function() | |
| { | |
| return(c( | |
| rep(rbinom(n = 1, size = 1, prob = 0.5), 10), | |
| rep(rbinom(n = 1, size = 1, prob = 0.5), 10), | |
| rep(rbinom(n = 1, size = 1, prob = 0.5), 10), | |
| rep(rbinom(n = 1, size = 1, prob = 0.5), 10), | |
| rep(rbinom(n = 1, size = 1, prob = 0.5), 10))) | |
| } | |
| # "PULL THE *UNCORR* LEVER" | |
| # uncorrelated data | |
| uncorr.lever <- function() | |
| { | |
| return(rbinom(n = 50, size = 1, prob = 0.5)) | |
| } | |
| # WHICH LEVER GIVES YOU BETTER INFORMATION? | |
| # WHY? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment