Latihan 1

Tetapkan set.seed pada angka 150. Hasilkan distribusi normal acak dari 1000 observasi, dengan rata-rata 30 dan simpangan baku 2.5. Hitung rata-rata dari 50 sampel dari 1000 observasi. Simpan hasil dalam vektor.

set.seed(150)

myData <- rnorm(1000, mean = 30, sd = 2.5)

length(myData)
## [1] 1000
mean(myData)
## [1] 29.92068
sd(myData)
## [1] 2.475175
sample.size <- 1000
n.samples <- 50

bootstrap.results <- c()

for (i in 1:n.samples) {
  obs <- sample(1:sample.size, replace = TRUE)
  bootstrap.results[i] <- mean(myData[obs])
}

length(bootstrap.results)
## [1] 50
summary(bootstrap.results)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   29.75   29.89   29.92   29.93   29.97   30.10
sd(bootstrap.results)
## [1] 0.06342673

Latihan 2

Buat dua histogram dalam satu grafik: distribusi rata-rata bootstrap (dari Latihan 1) dan distribusi data asli.

par(mfrow = c(2, 1), mar = c(4, 4, 3, 2))

hist(bootstrap.results,
     col  = "#d83737",
     xlab = "Mean",
     main = "Means of 50 Bootstrap Samples from myData")

hist(myData,
     col  = "#37aad8",
     xlab = "Value",
     main = "Distribution of myData (n=1000, mean=30, sd=2.5)")

par(mfrow = c(1, 1))