#studi kasus 1
#survei 1
n1 <- 30
mean1 <- 5
sd1 <- 2
alpha <- 0.05
t_value1 <- qt(1 - alpha/2, df = n1-1)
error_margin1 <- t_value1 * sd1 / sqrt(n1)
interval1 <- c(mean1 - error_margin1, mean1 + error_margin1)
interval1
## [1] 4.253188 5.746812
#studi kasus 2 
# Survei 2
n2 <- 100
mean2 <- 5
sd2 <- 2
t_value2 <- qt(1 - alpha/2, df = n2-1)
error_margin2 <- t_value2 * sd2 / sqrt(n2)
interval2 <- c(mean2 - error_margin2, mean2 + error_margin2)
interval2
## [1] 4.603157 5.396843
# Kelas A
nA <- 40
meanA <- 75
sdA <- 10
alpha <- 0.05
t_valueA <- qt(1 - alpha/2, df = nA-1)
error_marginA <- t_valueA * sdA / sqrt(nA)
intervalA <- c(meanA - error_marginA, meanA + error_marginA)
intervalA
## [1] 71.80184 78.19816
# Kelas B
nB <- 40
meanB <- 75
sdB <- 20
t_valueB <- qt(1 - alpha/2, df = nB-1)
error_marginB <- t_valueB * sdB / sqrt(nB)
intervalB <- c(meanB - error_marginB, meanB + error_marginB)
intervalB
## [1] 68.60369 81.39631
# Tingkat Kepercayaan 90%
alpha90 <- 0.10
t_value90 <- qt(1 - alpha90/2, df = 49)
error_margin90 <- t_value90 * 15 / sqrt(50)
interval90 <- c(100 - error_margin90, 100 + error_margin90)
interval90
## [1]  96.4435 103.5565
# Tingkat Kepercayaan 99%
alpha99 <- 0.01
t_value99 <- qt(1 - alpha99/2, df = 49)
error_margin99 <- t_value99 * 15 / sqrt(50)
interval99 <- c(100 - error_margin99, 100 + error_margin99)
interval99
## [1]  94.31496 105.68504
#studi kasus 4 
mean_tinggi <- 170 # dalam cm
sd_tinggi <- 5 # dalam cm (diketahui)
n <- 36
alpha <- 0.05
# Menghitung nilai z untuk tingkat kepercayaan 95%
z_value <- qnorm(1 - alpha/2)
# Menghitung margin of error
error_margin <- z_value * sd_tinggi / sqrt(n)
# Menghitung interval kepercayaan
interval <- c(mean_tinggi - error_margin, mean_tinggi + error_margin)
interval
## [1] 168.3667 171.6333
#studi kasus 5 
# Data tinggi badan sampel (dalam cm)
tinggi_badan <- c(165, 168, 170, 172, 169, 167, 171, 166, 173, 174,
                  170, 168, 169, 167, 172, 171, 170, 169, 168, 173,
                  172, 170, 169, 167, 171)

mean_tinggi <- mean(tinggi_badan)
sd_tinggi <- sd(tinggi_badan)
n <- length(tinggi_badan)
alpha <- 0.05
# Menghitung nilai t untuk tingkat kepercayaan 95% dan df = n-1
t_value <- qt(1 - alpha/2, df = n-1)
# Menghitung margin of error
error_margin <- t_value * sd_tinggi / sqrt(n)
# Menghitung interval kepercayaan
interval <- c(mean_tinggi - error_margin, mean_tinggi + error_margin)
interval
## [1] 168.6802 170.5998
#tugas 
# Set seed untuk replikasi hasil
set.seed(123)

# Definisi faktor dan level
sample_sizes <- c(5, 30, 100)     
std_devs <- c(10, 50, 90)            
pop_sd_known <- c(TRUE, FALSE)    
alpha <- 0.05                       
mean_populasi <- 170                

# Simpan hasilnya dalam data frame
hasil_simulasi <- data.frame()

# Simulasi untuk setiap kombinasi faktor
for (n in sample_sizes) {
for (sigma in std_devs) {
for (known in pop_sd_known) {
      
# Simulasi data dari distribusi normal
sampel <- rnorm(n, mean = mean_populasi, sd = sigma)
mean_sampel <- mean(sampel)
      
if (known) {
#Jika standar deviasi populasi diketahui, gunakan distribusi normal (Z)
error_margin <- qnorm(1 - alpha/2) * (sigma / sqrt(n))
} else {
# Jika standar deviasi populasi tidak diketahui, gunakan distribusi t
sample_sd <- sd(sampel)
error_margin <- qt(1 - alpha/2, df = n-1) * (sample_sd / sqrt(n))
      }
      
# Lebar interval kepercayaan
ci_width <- 2 * error_margin
# Simpan hasil dalam data frame
hasil_simulasi <- rbind(hasil_simulasi, 
data.frame(Sample_Size = n, 
Std_Dev = sigma, 
SD_Known = ifelse(known, "Diketahui", "Tidak Diketahui"), 
CI_Width = ci_width))
    }
  }
}

# Tampilkan hasil simulasinya
print(hasil_simulasi)
##    Sample_Size Std_Dev        SD_Known   CI_Width
## 1            5      10       Diketahui  17.530451
## 2            5      10 Tidak Diketahui  28.893263
## 3            5      50       Diketahui  87.652254
## 4            5      50 Tidak Diketahui 175.203915
## 5            5      90       Diketahui 157.774057
## 6            5      90 Tidak Diketahui 282.054842
## 7           30      10       Diketahui   7.156777
## 8           30      10 Tidak Diketahui   6.495727
## 9           30      50       Diketahui  35.783883
## 10          30      50 Tidak Diketahui  42.884906
## 11          30      90       Diketahui  64.410989
## 12          30      90 Tidak Diketahui  65.024702
## 13         100      10       Diketahui   3.919928
## 14         100      10 Tidak Diketahui   3.980583
## 15         100      50       Diketahui  19.599640
## 16         100      50 Tidak Diketahui  18.310974
## 17         100      90       Diketahui  35.279352
## 18         100      90 Tidak Diketahui  35.749291
# Visualisasi hasil menggunakan ggplot2
library(ggplot2)

ggplot(hasil_simulasi, aes(x = factor(Sample_Size), y = CI_Width, fill = factor(SD_Known))) +
  geom_bar(stat = "identity", position = "dodge") +
  facet_wrap(~ Std_Dev) +
  labs(title = "Pengaruh Ukuran Sampel, Variabilitas, dan Pengetahuan SD terhadap Lebar CI",
       x = "Ukuran Sampel (n)",
       y = "Lebar Interval Kepercayaan",
       fill = "Standar Deviasi Diketahui") +
  theme_minimal()

#hasil interprestasi hasil simulasi menunjukkan bahwa tiga faktor utama mempengaruhi lebar interval kepercayaan 95%. Pertama, ukuran sampel yang lebih besar menghasilkan interval yang lebih sempit, karena semakin banyak data yang dikumpulkan, semakin kecil ketidakpastian dalam estimasi rata-rata populasi.Kedua, variabilitas data yang lebih tinggi (standar deviasi yang besar) menyebabkan interval kepercayaan lebih lebar, karena data yang lebih tersebar membutuhkan rentang yang lebih luas untuk mencakup rata-rata populasi dengan tingkat kepercayaan yang sama. Ketiga, pengetahuan tentang standar deviasi populasi juga berpengaruh, di mana jika standar deviasi populasi diketahui, interval kepercayaan lebih sempit karena menggunakan distribusi normal, sedangkan jika tidak diketahui, interval lebih lebar karena menggunakan distribusi t-Student, terutama pada sampel kecil. Secara keseluruhan, peningkatan ukuran sampel dan pengurangan variabilitas data dapat meningkatkan ketepatan estimasi, sementara informasi lebih lengkap tentang populasi dapat membantu mempersempit interval kepercayaan.