Instructions
Consider a set of Random numbers from the standard normal distribution in a vector-like X.
Step 1
Plot a histogram of 1000 random numbers from the standard normal distribution. (Keep breaks=50 and the Z Score=1.669)
# Load necessary libraries
library(ggplot2)
# Set the seed for reproducibility
set.seed(143)
# Create a data frame of Random Numbers that form a normal distribution
# Generate 1000 random numbers from the standard normal distribution
data <- data.frame(values = rnorm(1000))
Generate a Histogram of Random Numbers
# Plot a histogram of 1000 random numbers from the standard normal distribution. (Keep breaks=50 and the Z Score=1.669)
histogram <- ggplot(data, aes(x = values)) +
geom_histogram(aes(fill = ifelse(values > -1.669 & values < 1.669, "red", "blue")), brakes = 50,
col = "black", position = "identity") +
scale_fill_manual(values = c("blue", "red")) + # Assign colors to the specified ranges
labs(title = "Histogram of Standard Normal Distribution", x = "Z Score", y = "Frequency")
# Print the histogram
print(histogram)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Step 2
Now take 1000 samples of size 20 from the standard normal distribution at the same time. Use a matrix, where each row of X is a sample of size 20 from the standard normal distribution with 1000 rows.
# Generate 1000 samples of size 20 from the standard normal distribution
X <- matrix(rnorm(1000*20), ncol = 20, nrow = 1000)
histogram <- ggplot(data, aes(x = values)) +
geom_histogram(aes(fill = ifelse(values > -1.669 & values < 1.669, "red", "blue")), brakes = 50,
col = "black", position = "identity") +
scale_fill_manual(values = c("blue", "red")) + # Assign colors to the specified ranges
labs(title = "Histogram of Standard Normal Distribution", x = "Z Score", y = "Frequency")
# Print the histogram
print(histogram)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Step 3
Repeat Step 1 with random numbers from an exponential distribution. (Take lambda=0.6)
# Set lambda value
lambda <- 0.6
# Number of random numbers to generate
num_samples <- 1000
# Generate random numbers from exponential distribution
data <- data.frame(values = rexp(num_samples, rate = lambda))
Draw the historam
# Create a histogram with 50 brakes
histogram <- ggplot(data, aes(x = values)) +
geom_histogram(aes(fill = ifelse(values > -1.669 & values < 1.669, "red", "blue")), brakes = 50, bins = 30,
col = "black", position = "identity") +
scale_fill_manual(values = c("blue", "red")) +
labs(title = "Histogram of Exponential Distribution", x = "Values", y = "Frequency")
# Print the histogram
print(histogram)

Step 4
Repeat the steps in Step 2 with random numbers from an exponential distribution. (Take lambda=0.6)
# Generate random numbers from exponential distribution
data <- data.frame(values = rexp(num_samples*20, rate = lambda))
# Create a histogram with 50 bins
histogram <- ggplot(data, aes(x = values)) +
geom_histogram(aes(fill = ifelse(values > -1.669 & values < 1.669, "red", "blue")), brakes = 50,
col = "black", position = "identity") +
scale_fill_manual(values = c("blue", "red")) +
labs(title = "Histogram of Exponential Distribution", x = "Values", y = "Frequency")
Warning in geom_histogram(aes(fill = ifelse(values > -1.669 & values < 1.669, :
Ignoring unknown parameters: `brakes`
# Print the histogram
print(histogram)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayBXcml0aW5nIEFzc2lnbm1lbnQgVW5pdCAyIE1hcmtkb3duIERvY3VtZW50IgpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDogaHRtbF9ub3RlYm9vawogICAgCiAgd29yZF9kb2N1bWVudDogZGVmYXVsdAogIHBkZl9kb2N1bWVudDogZGVmYXVsdAotLS0KIyMgSW5zdHJ1Y3Rpb25zCgpDb25zaWRlciBhIHNldCBvZiBSYW5kb20gbnVtYmVycyBmcm9tIHRoZSBzdGFuZGFyZCBub3JtYWwgZGlzdHJpYnV0aW9uIGluIGEgdmVjdG9yLWxpa2UgWC4KCiMgU3RlcCAxCgpQbG90IGEgaGlzdG9ncmFtIG9mIDEwMDAgcmFuZG9tIG51bWJlcnMgZnJvbSB0aGUgc3RhbmRhcmQgbm9ybWFsIGRpc3RyaWJ1dGlvbi4gKEtlZXAgYnJlYWtzPTUwIGFuZCB0aGUgWiBTY29yZT0xLjY2OSkKCgpgYGB7ciBzZXR1cCwgd2FybmluZz1GQUxTRX0KIyBMb2FkIG5lY2Vzc2FyeSBsaWJyYXJpZXMKbGlicmFyeShnZ3Bsb3QyKQoKIyBTZXQgdGhlIHNlZWQgZm9yIHJlcHJvZHVjaWJpbGl0eQpzZXQuc2VlZCgxNDMpCgoKCiMgQ3JlYXRlIGEgZGF0YSBmcmFtZSBvZiBSYW5kb20gTnVtYmVycyB0aGF0IGZvcm0gYSBub3JtYWwgZGlzdHJpYnV0aW9uCgoKIyBHZW5lcmF0ZSAxMDAwIHJhbmRvbSBudW1iZXJzIGZyb20gdGhlIHN0YW5kYXJkIG5vcm1hbCBkaXN0cmlidXRpb24KZGF0YSA8LSBkYXRhLmZyYW1lKHZhbHVlcyA9IHJub3JtKDEwMDApKQpgYGAKCiMgR2VuZXJhdGUgYSBIaXN0b2dyYW0gb2YgUmFuZG9tIE51bWJlcnMKYGBge3Igd2FybmluZz1GQUxTRX0KIyBQbG90IGEgaGlzdG9ncmFtIG9mIDEwMDAgcmFuZG9tIG51bWJlcnMgZnJvbSB0aGUgc3RhbmRhcmQgbm9ybWFsIGRpc3RyaWJ1dGlvbi4gKEtlZXAgYnJlYWtzPTUwIGFuZCB0aGUgWiBTY29yZT0xLjY2OSkKCmhpc3RvZ3JhbSA8LSBnZ3Bsb3QoZGF0YSwgYWVzKHggPSB2YWx1ZXMpKSArCiAgZ2VvbV9oaXN0b2dyYW0oYWVzKGZpbGwgPSBpZmVsc2UodmFsdWVzID4gLTEuNjY5ICYgdmFsdWVzIDwgMS42NjksICJyZWQiLCAiYmx1ZSIpKSwgYnJha2VzID0gNTAsIAogICAgICAgICAgICAgICAgIGNvbCA9ICJibGFjayIsIHBvc2l0aW9uID0gImlkZW50aXR5IikgKwogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoImJsdWUiLCAicmVkIikpICsgICMgQXNzaWduIGNvbG9ycyB0byB0aGUgc3BlY2lmaWVkIHJhbmdlcwogIGxhYnModGl0bGUgPSAiSGlzdG9ncmFtIG9mIFN0YW5kYXJkIE5vcm1hbCBEaXN0cmlidXRpb24iLCB4ID0gIlogU2NvcmUiLCB5ID0gIkZyZXF1ZW5jeSIpCgojIFByaW50IHRoZSBoaXN0b2dyYW0KcHJpbnQoaGlzdG9ncmFtKQpgYGAKCiMgU3RlcCAyCgpOb3cgdGFrZSAxMDAwIHNhbXBsZXMgb2Ygc2l6ZSAyMCBmcm9tIHRoZSBzdGFuZGFyZCBub3JtYWwgZGlzdHJpYnV0aW9uIGF0IHRoZSBzYW1lIHRpbWUuIFVzZSBhIG1hdHJpeCwgCndoZXJlIGVhY2ggcm93IG9mIFggaXMgYSBzYW1wbGUgb2Ygc2l6ZSAyMCBmcm9tIHRoZSBzdGFuZGFyZCBub3JtYWwgZGlzdHJpYnV0aW9uIHdpdGggMTAwMCByb3dzLgoKYGBge3Igd2FybmluZz1GQUxTRX0KIyBHZW5lcmF0ZSAxMDAwIHNhbXBsZXMgb2Ygc2l6ZSAyMCBmcm9tIHRoZSBzdGFuZGFyZCBub3JtYWwgZGlzdHJpYnV0aW9uClggPC0gbWF0cml4KHJub3JtKDEwMDAqMjApLCBuY29sID0gMjAsIG5yb3cgPSAxMDAwKQoKaGlzdG9ncmFtIDwtIGdncGxvdChkYXRhLCBhZXMoeCA9IHZhbHVlcykpICsKICBnZW9tX2hpc3RvZ3JhbShhZXMoZmlsbCA9IGlmZWxzZSh2YWx1ZXMgPiAtMS42NjkgJiB2YWx1ZXMgPCAxLjY2OSwgInJlZCIsICJibHVlIikpLCBicmFrZXMgPSA1MCwKICAgICAgICAgICAgICAgICBjb2wgPSAiYmxhY2siLCBwb3NpdGlvbiA9ICJpZGVudGl0eSIpICsKICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCJibHVlIiwgInJlZCIpKSArICAjIEFzc2lnbiBjb2xvcnMgdG8gdGhlIHNwZWNpZmllZCByYW5nZXMKICBsYWJzKHRpdGxlID0gIkhpc3RvZ3JhbSBvZiBTdGFuZGFyZCBOb3JtYWwgRGlzdHJpYnV0aW9uIiwgeCA9ICJaIFNjb3JlIiwgeSA9ICJGcmVxdWVuY3kiKQoKIyBQcmludCB0aGUgaGlzdG9ncmFtCnByaW50KGhpc3RvZ3JhbSkKYGBgCmBgYHtyfQoKYGBgCiMjIFN0ZXAgMyAKClJlcGVhdCBTdGVwIDEgd2l0aCByYW5kb20gbnVtYmVycyBmcm9tIGFuIGV4cG9uZW50aWFsIGRpc3RyaWJ1dGlvbi4gKFRha2UgbGFtYmRhPTAuNikKCmBgYHtyfQojIFNldCBsYW1iZGEgdmFsdWUKbGFtYmRhIDwtIDAuNgoKIyBOdW1iZXIgb2YgcmFuZG9tIG51bWJlcnMgdG8gZ2VuZXJhdGUKbnVtX3NhbXBsZXMgPC0gMTAwMAoKIyBHZW5lcmF0ZSByYW5kb20gbnVtYmVycyBmcm9tIGV4cG9uZW50aWFsIGRpc3RyaWJ1dGlvbgpkYXRhIDwtIGRhdGEuZnJhbWUodmFsdWVzID0gcmV4cChudW1fc2FtcGxlcywgcmF0ZSA9IGxhbWJkYSkpCmBgYAojIERyYXcgdGhlIGhpc3RvcmFtCmBgYHtyIHdhcm5pbmc9RkFMU0V9CiMgQ3JlYXRlIGEgaGlzdG9ncmFtIHdpdGggNTAgYnJha2VzCmhpc3RvZ3JhbSA8LSBnZ3Bsb3QoZGF0YSwgYWVzKHggPSB2YWx1ZXMpKSArCiAgZ2VvbV9oaXN0b2dyYW0oYWVzKGZpbGwgPSBpZmVsc2UodmFsdWVzID4gLTEuNjY5ICYgdmFsdWVzIDwgMS42NjksICJyZWQiLCAiYmx1ZSIpKSwgYnJha2VzID0gNTAsIGJpbnMgPSAzMCwgCiAgICAgICAgICAgICAgICAgY29sID0gImJsYWNrIiwgcG9zaXRpb24gPSAiaWRlbnRpdHkiKSArCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYygiYmx1ZSIsICJyZWQiKSkgKwogIGxhYnModGl0bGUgPSAiSGlzdG9ncmFtIG9mIEV4cG9uZW50aWFsIERpc3RyaWJ1dGlvbiIsIHggPSAiVmFsdWVzIiwgeSA9ICJGcmVxdWVuY3kiKQoKCiMgUHJpbnQgdGhlIGhpc3RvZ3JhbQpwcmludChoaXN0b2dyYW0pCmBgYApgYGB7cn0KCmBgYAojIyBTdGVwIDQKClJlcGVhdCB0aGUgc3RlcHMgaW4gU3RlcCAyIHdpdGggcmFuZG9tIG51bWJlcnMgZnJvbSBhbiBleHBvbmVudGlhbCBkaXN0cmlidXRpb24uIChUYWtlIGxhbWJkYT0wLjYpCgpgYGB7cn0KIyBHZW5lcmF0ZSByYW5kb20gbnVtYmVycyBmcm9tIGV4cG9uZW50aWFsIGRpc3RyaWJ1dGlvbgpkYXRhIDwtIGRhdGEuZnJhbWUodmFsdWVzID0gcmV4cChudW1fc2FtcGxlcyoyMCwgcmF0ZSA9IGxhbWJkYSkpCgojIENyZWF0ZSBhIGhpc3RvZ3JhbSB3aXRoIDUwIGJpbnMKaGlzdG9ncmFtIDwtIGdncGxvdChkYXRhLCBhZXMoeCA9IHZhbHVlcykpICsKICBnZW9tX2hpc3RvZ3JhbShhZXMoZmlsbCA9IGlmZWxzZSh2YWx1ZXMgPiAtMS42NjkgJiB2YWx1ZXMgPCAxLjY2OSwgInJlZCIsICJibHVlIikpLCBicmFrZXMgPSA1MCwKICAgICAgICAgICAgICAgICBjb2wgPSAiYmxhY2siLCBwb3NpdGlvbiA9ICJpZGVudGl0eSIpICsKICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCJibHVlIiwgInJlZCIpKSArCiAgbGFicyh0aXRsZSA9ICJIaXN0b2dyYW0gb2YgRXhwb25lbnRpYWwgRGlzdHJpYnV0aW9uIiwgeCA9ICJWYWx1ZXMiLCB5ID0gIkZyZXF1ZW5jeSIpCgoKIyBQcmludCB0aGUgaGlzdG9ncmFtCnByaW50KGhpc3RvZ3JhbSkKYGBgCgoKCgoK