Skip to content

Instantly share code, notes, and snippets.

@wandrson
Created April 6, 2014 14:59
Show Gist options
  • Save wandrson/10007166 to your computer and use it in GitHub Desktop.
Save wandrson/10007166 to your computer and use it in GitHub Desktop.
R script to analyze random data simulating a six sided die
# Analyze dice data to establish if it is random
setwd("~/Development/hardware-rng/avr-hardware-random-number-generation/Entropy/examples/Dice")
library(foreign)
library(prettyR)
sink("analysis.prn")
Dice.data <- read.csv("dice.txt")
Dice.data$Sum <- Dice.data$Die1 + Dice.data$Die2
png(filename="cumulative.png", width=800, height=600)
hist(Dice.data$Sum,
freq=FALSE,
breaks=c(1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5,11.5,12.5),
main="Distribution of Dice rolls",
xlab="Combined value",
ylab="Probability",
ylim=c(0.00,0.20))
dev.off()
Dice.data.freq <- freq(Dice.data, display.na=FALSE,decr.order=FALSE)
Dice.data.freq <-as.data.frame(Dice.data.freq["Sum"])
print(Dice.data.freq)
events <- sum(Dice.data.freq$Sum)
print(chisq.test(Dice.data.freq$Sum, p=c(0.0278,0.0556,0.0833,0.1111,0.1389,0.1666,0.1389,0.1111,0.0833,0.0556,0.0278)))
Independent.Rolls <- c(Dice.data$Die1,Dice.data$Die2)
png(filename="independent.png",width=800,height=600)
hist(Independent.Rolls,
freq=FALSE,
breaks=c(0.5,1.5,2.5,3.5,4.5,5.5,6.5),
main="Distribution of Dice rolls",
xlab="Independent values",
ylab="Probability",
ylim=c(0.00,0.20))
dev.off()
Independent.Rolls.freq <- freq(Independent.Rolls, display.na=FALSE,decr.order=FALSE)
Independent.Rolls.freq <- as.data.frame(Independent.Rolls.freq["Independent.Rolls"])
print(Independent.Rolls.freq)
print(chisq.test(Independent.Rolls.freq))
sink()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment