# Start writing code here...
Discrete Random Variable
coin3 <- data.frame(
N_Heads = c(0, 1, 2, 3),
C_Heads = c(1, 3, 3, 1)
)
attach(coin3)
coin3$P_Heads <- C_Heads/sum(C_Heads)
options(repr.plot.width=7, repr.plot.height=4)
barplot(coin3$P_Heads, names = coin3$N_Heads, main = "Discrete Probability Distribution of flipping three coins")
Expected Value
attach(coin3)
E_X = sum(N_Heads * P_Heads)
cat("Expected value of number of heads in tossing 3 coins is ", E_X)
Variance
fees = data.frame(
N_Bags = c(0, 1, 2),
X = c(0, 25, 60),
P_X = c(0.54, 0.34, 0.12)
)
fees
attach(fees)
E_X <- sum(X * P_X)
cat("The expected revenue per passenger is $", E_X)
var <- sum((X - E_X)^2 * P_X)
cat("The variance of the revenue per passenger is ", var)
cat("The standard deviation of the revenue per passenger is $", round(sqrt(var),2))
Binomial Distribution
x <- seq(0,50)
y <- dbinom(x,50,0.5)
plot(x, y, 'h')
Continuous Random Variable
Uniform_Random_Number <- runif(10000, -2, 1)
hist(Uniform_Random_Number, probability = TRUE)
a <- -2
b <- 1
rand.unif <- runif(10000, min = -2, max = 1) # Generate 10,000 random numbers between -2 and 1.
hist(rand.unif, freq = FALSE, xlab = 'x', ylim = c(0, 0.35), xlim = c(-2.2,1.2),
density = 5, main = "Uniform distribution for the interval [-2,1]")
curve(dunif(x, min = a, max = b), from = -3, to = 2, n = 100000, col = "darkblue",
lwd = 5, add = TRUE, yaxt = "n", ylab = 'probability')
Normal Distribution
options(repr.plot.width=7, repr.plot.height=4)
x=seq(-4,4,length=200)
y=1/sqrt(2*pi)*exp(-x^2/2)
plot(x,y,type="l",lwd=2,col="red", main = "Normal Distribution")
Interactive Normal Distribution
Normal Approximation
normal_dist <- function(x, b){
mu = mean(x)
sigma = sd(x)
x1 <- seq(mu - 6*sigma, mu + 6*sigma, length = 100)
# Normal curve
fun <- dnorm(x1, mean = mu, sd = sigma)
# Histogram
options(repr.plot.width=7, repr.plot.height=4)
hist(x, prob = TRUE, col = "white", breaks = b,
xlim = c(mu - 6*sigma, mu + 6*sigma),
ylim = c(0, max(fun)),
main = "Histogram overlayed with normal curve")
lines(x1, fun, col = 2, lwd = 2)
}
data(chickwts)
attach(chickwts)
normal_dist(chickwts$weight, 20)
Test of Normality (Shapiro Test)
shapiro.test(chickwts$weight)
Z Score
chickwts$zscore = (weight - mean(weight))/sd(weight)
tail(chickwts)
Example Question
z_sophiaV = (160 - 151)/7
z_sophiaQ = (157 - 153)/7.67
cat("Z Score for Verbal= ", round(z_sophiaV,2), "\nZ Score for Quantitative Reasoning= ", round(z_sophiaQ, 2))
cat("The verbal ability percentile score is ",round(pnorm(1.29, lower.tail = TRUE),4)*100, "%\n")
cat("The quantitative reasoning percentile score is ",round(pnorm(0.52, lower.tail = TRUE),4)*100, "%\n")
# f.
cat(100 - round(pnorm(1.29, lower.tail = TRUE),4)*100, "%", "did better than Sophia in verbal ability\n")
cat(100 - round(pnorm(0.52, lower.tail = TRUE),4)*100, "%", "did better than Sophia in quantitative reasoning")