Bootstrap adalah metode resampling dengan pengembalian (replacement) yang digunakan untuk mengukur ketidakpastian estimasi statistik tanpa asumsi distribusi tertentu (Efron & Tibshirani, 1993). Pembelajaran ini mencakup pembangkitan data, proses bootstrap, dan visualisasi hasilnya.
# Membuat distribusi normal acak sebagai data awal
set.seed(300)
myData <- rnorm(2000, 20, 4.5)
# Sanity check
length(myData)
## [1] 2000
mean(myData)
## [1] 20.25773
sd(myData)
## [1] 4.590852
# Visualisasi distribusi myData
hist(myData,
breaks = 30,
col = "lightblue",
main = "Distribusi myData",
xlab = "Nilai",
ylab = "Frekuensi")
abline(v = mean(myData), col = "red", lwd = 2, lty = 2)
legend("topright",
legend = paste("Mean =", round(mean(myData), 5)),
col = "red", lty = 2, lwd = 2)
Tugas: Tetapkan set.seed(150),
bangkitkan distribusi normal 1000 observasi dengan mean = 30 dan SD =
2,5. Hitung mean dari 50 sampel bootstrap.
# Membangkitkan data
set.seed(150)
myData_lat1 <- rnorm(1000, mean = 30, sd = 2.5)
# Sanity check
length(myData_lat1)
## [1] 1000
mean(myData_lat1)
## [1] 29.92068
sd(myData_lat1)
## [1] 2.475175
# Bootstrap: hitung mean dari 50 sampel
set.seed(150)
sample.size <- 1000
n.samples <- 50
bootstrap_lat1 <- c()
for (i in 1:n.samples) {
obs <- sample(1:sample.size, replace = TRUE)
bootstrap_lat1[i] <- mean(myData_lat1[obs])
}
# Hasil bootstrap
length(bootstrap_lat1)
## [1] 50
summary(bootstrap_lat1)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 29.73 29.89 29.92 29.93 29.98 30.08
sd(bootstrap_lat1)
## [1] 0.07028105
Interpretasi: Standar deviasi dari distribusi mean bootstrap mengukur standard error estimasi. Nilai yang kecil menunjukkan estimasi mean yang stabil dan konsisten.
Tugas: Tampilkan dua histogram — distribusi mean bootstrap (Latihan 1) dan distribusi data asli — dalam satu grafik gabungan.
# Dua histogram dalam satu grafik
par(mfrow = c(2, 1))
hist(bootstrap_lat1,
col = "#d83737",
xlab = "Mean",
main = "Distribusi Mean dari 50 Sampel Bootstrap")
hist(myData_lat1,
col = "#37aad8",
xlab = "Nilai",
main = "Distribusi Data Asli (n = 1000, mean = 30, sd = 2,5)")
par(mfrow = c(1, 1)) # Reset layout
Interpretasi: Histogram atas menunjukkan distribusi mean bootstrap yang jauh lebih sempit dibanding distribusi data asli di bawahnya. Hal ini mencerminkan prinsip Teorema Limit Pusat — rata-rata sampel berdistribusi normal dengan variabilitas lebih kecil dari data aslinya.
Materi Week 6 memperkenalkan dua cara bootstrap yang berbeda:
# Pendekatan 1: Resampling dari data yang sudah ada
set.seed(200)
sample.size <- 2000
n.samples <- 1000
bootstrap_A <- c()
for (i in 1:n.samples) {
obs <- sample(1:sample.size, replace = TRUE)
bootstrap_A[i] <- mean(myData[obs])
}
# Pendekatan 2: Resampling dari proses pembangkitan data (DGP)
set.seed(200)
bootstrap_B <- c()
for (i in 1:n.samples) {
bootstrap_B[i] <- mean(rnorm(2000, 20, 4.5))
}
# Perbandingan hasil
cat("SD Bootstrap Pendekatan 1 (dari data):", round(sd(bootstrap_A), 7), "\n")
## SD Bootstrap Pendekatan 1 (dari data): 0.1021229
cat("SD Bootstrap Pendekatan 2 (dari DGP) :", round(sd(bootstrap_B), 7), "\n")
## SD Bootstrap Pendekatan 2 (dari DGP) : 0.1041927
# Visualisasi perbandingan
par(mfrow = c(2, 1))
hist(bootstrap_A,
col = "#d83737",
xlab = "Mean",
main = "Pendekatan 1: Mean dari 1000 Sampel Bootstrap (dari myData)")
hist(bootstrap_B,
col = "#8B0000",
xlab = "Mean",
main = "Pendekatan 2: Mean dari 1000 Sampel Bootstrap (dari DGP)")
par(mfrow = c(1, 1))
Interpretasi: Kedua pendekatan menghasilkan SD yang sangat mirip (~0,10), menunjukkan bahwa resampling dari data yang ada dan dari proses pembangkitan asli memberikan estimasi ketidakpastian yang setara ketika ukuran sampel cukup besar.
Metode bootstrap memungkinkan estimasi ketidakpastian secara komputasional tanpa bergantung pada asumsi distribusi. Tiga hal utama yang dipelajari:
rnorm() dan
pengecekan dengan length(), mean(),
sd()for loop
dan sample(..., replace=TRUE)hist() dan par()Standar deviasi dari distribusi bootstrap (bootstrap standard error) merupakan ukuran kuantitatif ketidakpastian estimasi yang dihasilkan.
Efron, B. & Tibshirani, R.J. (1993). An Introduction to the Bootstrap. Chapman & Hall/CRC.
Wickham, H. & Grolemund, G. (2017). R for Data Science. O’Reilly Media. https://r4ds.had.co.nz