#Part 1 - A
## Generate 500 random numbers from U(0, 10)
uniform_sample <- runif(500, min = 0, max = 10)
##Summary and visualization
summary(uniform_sample)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.01786 2.38480 4.99019 4.91288 7.37617 9.95796
hist(uniform_sample, main = "Uniform Distribution (0, 10)",xlab= "values", col="purple" )
#Part 1 - B
##CDF for uniform distribution: P(X \<= 4)
p_uniform <- punif(4, min = 0, max = 10)
print(p_uniform)
## [1] 0.4
#Part 2 - A
## Generate 500 random numbers from Exp(0.1)
exponential_sample <- rexp(500, rate = 0.1)
## Summary and visualization
summary(exponential_sample)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.01263 2.77188 6.66605 9.83055 13.30339 78.79131
hist(exponential_sample, main= "Exponential Distribution (rate = 0.1)", xlab = "Values", col="pink")
#Part 2 - B
## Survival function: P(X \> 7)
p_exponential <- 1 - pexp(7, rate = 0.1)
print(p_exponential)
## [1] 0.4965853
#Part 3 - A
## Generate 500 random numbers from Poisson
poisson_sample <- rpois(500, lambda = 3)
## Summary and visualization
summary(poisson_sample)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 2.000 3.000 2.844 4.000 10.000
hist(poisson_sample, main ="Poisson Distribution (lambda = 3)", xlab = "Values", col = "light blue")
#Part 3 - B
## Probability of exactly 4 events: P(X = 4)
p_poisson <- dpois(4, lambda = 3)
print(p_poisson)
## [1] 0.1680314
#Part 4 - A ## Generate 500 random numbers from Binomial(10, 0.5)
binomial_sample <- rbinom(500, size = 10, prob = 0.5)
##Summary and visualization
summary(binomial_sample)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 4.000 5.000 4.944 6.000 10.000
hist(binomial_sample, main = "Binomial Distribution (n = 10, p = 0.5)",
xlab = "Values", col= "blue")
#Part 4 - B
## Probability of exactly 3 successes: P(X = 3)
p_binomial <- dbinom(3, size = 10, prob = 0.5)
print(p_binomial)
## [1] 0.1171875
#Part 5 - A
## Overlay histograms
hist(uniform_sample, main ="Comparison of Distributions", xlab = "Values", col =rgb(0.2, 0.5, 0.7,0.5), xlim = c(0, 30), breaks= 15)
hist(exponential_sample, col = rgb(0.3, 0.7, 0.3, 0.5), add = TRUE, breaks = 15)
hist(poisson_sample, col = rgb(0.8, 0.3, 0.3, 0.5), add = TRUE, breaks = 15)
hist(binomial_sample, col = rgb(0.7, 0.7, 0.1, 0.5), add = TRUE, breaks= 15)
legend("topright", legend = c("Uniform", "Exponential", "Poisson","Binomial"), fill = c(rgb(0.2, 0.5, 0.7, 0.5), rgb(0.3, 0.7, 0.3, 0.5), rgb(0.8, 0.3, 0.3, 0.5), rgb(0.7, 0.7, 0.1, 0.5)))
#Plot Density for Each Distribution
#set up the plotting area
plot(density(uniform_sample), main= "Comparison of Distributions", xlab=
"Values", col = "blue", lwd = 2, xlim = c(0,30), ylim = c(0, 0.4))
lines(density(exponential_sample), col= "green", lwd = 2)
lines(density(poisson_sample), col = "red", lwd = 2)
lines(density(binomial_sample), col = "yellow", lwd = 2)
#Adding a Legend
legend("topright", legend = c("Uniform", "Exponential", "Poisson", "Binomial"), col = c("blue", "green", "red","yellow"), lwd = 2)
library(ggplot2)
#create dataframe for each distribution
uniform_df <- data.frame(values = uniform_sample, distribution = "Uniform")
exponential_df <- data.frame(values = exponential_sample, distribution = "Exponential")
poisson_df <- data.frame(values = poisson_sample, distribution =
"Poisson")
binomial_df <- data.frame(values = binomial_sample, distribution = "Binomial")
#combine data frames into one
combined_df <- rbind(uniform_df,exponential_df, poisson_df, binomial_df)
#create plot with ggplot2
ggplot(combined_df, aes(x = values, fill = distribution)) +
geom_histogram(alpha = 0.5, position = "identity", bins = 15) +
scale_fill_manual(values = c("lightblue", "lightgreen", "lightcoral", "lightyellow")) +
labs(title = "Comparison of Distributions", x = "Values", y = "Frequency") +
theme_minimal() +
theme(legend.title = element_blank())