From bf80da15a9a783ed55270a3a98954a501ef233f2 Mon Sep 17 00:00:00 2001 From: SowinskiBraeden Date: Thu, 9 Apr 2026 11:15:13 -0700 Subject: [PATCH] lab 09 --- lab09.R | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 lab09.R diff --git a/lab09.R b/lab09.R new file mode 100644 index 0000000..c11588c --- /dev/null +++ b/lab09.R @@ -0,0 +1,124 @@ +set.seed(123) + +# Q1 +NormalMeans = function(n, m) +{ + means <- c(1:n) + + for (i in 1:n) + { + values <- rnorm(m, mean = 0, sd = 1) + means[i] <- mean(values) + } + + title <- paste(n, "sample means from N(0,1) with sample size", m) + hist(means, main = title, xlab = "Sample mean", ylab = "Frequency") + + return(c(mean(means), sd(means))) +} + +normal_m1 <- NormalMeans(10000, 1) +normal_m2 <- NormalMeans(10000, 2) +normal_m10 <- NormalMeans(10000, 10) +normal_m50 <- NormalMeans(10000, 50) +normal_m100 <- NormalMeans(10000, 100) + +normal_m1 +normal_m2 +normal_m10 +normal_m50 +normal_m100 + +# Q2 +ExponentialMeans = function(n, m) +{ + means <- c(1:n) + + for (i in 1:n) + { + values <- rexp(m, rate = 1) + means[i] <- mean(values) + } + + title <- paste(n, "sample means from Exp(1) with sample size", m) + hist(means, main = title, xlab = "Sample mean", ylab = "Frequency") + + return(c(mean(means), sd(means))) +} + +exp_m1 <- ExponentialMeans(10000, 1) +exp_m2 <- ExponentialMeans(10000, 2) +exp_m10 <- ExponentialMeans(10000, 10) +exp_m50 <- ExponentialMeans(10000, 50) +exp_m100 <- ExponentialMeans(10000, 100) + +exp_m1 +exp_m2 +exp_m10 +exp_m50 +exp_m100 + +# Q3 +ExponentialMeansProb = function(n, m, z) +{ + means <- c(1:n) + + for (i in 1:n) + { + values <- rexp(m, rate = 1) + means[i] <- mean(values) + } + + probability <- mean(means >= (1 - z) & means <= (1 + z)) + return(probability) +} + +prob_2_1 <- ExponentialMeansProb(10000, 2, 1) +prob_2_05 <- ExponentialMeansProb(10000, 2, 0.5) +prob_2_02 <- ExponentialMeansProb(10000, 2, 0.2) + +prob_5_1 <- ExponentialMeansProb(10000, 5, 1) +prob_5_05 <- ExponentialMeansProb(10000, 5, 0.5) +prob_5_02 <- ExponentialMeansProb(10000, 5, 0.2) + +prob_10_1 <- ExponentialMeansProb(10000, 10, 1) +prob_10_05 <- ExponentialMeansProb(10000, 10, 0.5) +prob_10_02 <- ExponentialMeansProb(10000, 10, 0.2) + +prob_2_1 +prob_2_05 +prob_2_02 +prob_5_1 +prob_5_05 +prob_5_02 +prob_10_1 +prob_10_05 +prob_10_02 + +# Q4 +library(MASS) + +data(genotype) + +groupA <- subset(genotype, Litter == "A") +groupB <- subset(genotype, Litter == "B") +groupI <- subset(genotype, Litter == "I") +groupJ <- subset(genotype, Litter == "J") + +qqnorm(groupA$Wt, main = "QQ Plot of Weight for Litter Genotype A") +qqline(groupA$Wt) + +qqnorm(groupB$Wt, main = "QQ Plot of Weight for Litter Genotype B") +qqline(groupB$Wt) + +qqnorm(groupI$Wt, main = "QQ Plot of Weight for Litter Genotype I") +qqline(groupI$Wt) + +qqnorm(groupJ$Wt, main = "QQ Plot of Weight for Litter Genotype J") +qqline(groupJ$Wt) + +# Optional support if you want a numerical check as well +shapiro.test(groupA$Wt) +shapiro.test(groupB$Wt) +shapiro.test(groupI$Wt) +shapiro.test(groupJ$Wt)