Soal 1

Buatlah 100 data acak dari distribusi binomial dengan n = 10 dan p = 0.3. Hitung rata-ratanya. Berapakah nilai yang paling mendekati rata-rata tersebut? Gunakan set.seed(123)

A. 5.0

B. 3.0

C. 7.0

D. 2.5

set.seed(123)
data <- rbinom(100, size = 10, prob = 0.3)
mean(data)
## [1] 3.02

Nilai yang paling mendekati rata-rata tersebut adalah (B) 3.0

Soal 2

Buat 100 data acak dari distribusi normal dengan mean 50 dan sd 10. Hitung standar deviasi dari data tersebut. Gunakan set.seed(123)

A. Sekitar 9.1

B. Sekitar 11.2

C. 7.5

D. Sekitar 12.5

set.seed(123)
data1 <- rnorm (100, mean = 50, sd = 10)
sd(data1)
## [1] 9.128159

Standar deviasi dari data tersebut adalah (A) Sekitar 9.1

Soal 3

Simulasikan 100 data dari distribusi eksponensial dengan rate = 1. Berapakah nilai median dari data tersebut? Gunakan set.seed(123)

A. 0.5

B. 0.84

C. 1

D. 1.5

set.seed(123)
data2 <- rexp (100, rate = 1)
median(data2)
## [1] 0.847754

Nilai median dari data tersebut adalah (B) 0.84

Soal 4

Simulasikan 100 data dari distribusi Poisson dengan λ = 4. Berapa nilai modus dari data yang dihasilkan? Gunakan set.seed(123)

A. 5

B. 2

C. 3

D. 4

set.seed(123)
data3 <- rpois (100, lambda = 4)
modus <- as.numeric(names(which.max(table(data3))))
modus
## [1] 2

Nilai modus dari data yang dihasilkan adalah (A) 2

Soal 5

Buat 100 data dari distribusi normal N(0,1), lalu ambil hanya data yang lebih besar dari 1. Berapa banyak data yang tersisa? Gunakan set.seed(123)

A. Sekitar 50

B. Sekitar 68

C. Sekitar 16

D. Sekitar 34

set.seed(123)
data4 <- rnorm(100, mean = 0, sd = 1)
sum(data4 > 1)
## [1] 17

Banyak data yang tersisa adalah (C) 16

Soal 6

Dari data rnorm(100), berapa banyak data yang berada di luar ±2 SD? Gunakan set.seed(123)

A. Sekitar 25

B. Sekitar 2

C. Sekitar 10

D. Sekitar 5

set.seed(123)
data5 <- rnorm(100)
sum(data5 < -2 | data5 > 2)
## [1] 4

Banyak data yang berada di luar ±2 SD adalah (D) Sekitar 5

Soal 7

Buat data berikut: x <- c(5, 8, 12, 13, 15, 18, 21) Lakukan bootstrap sebanyak 10.000 kali untuk menghitung interval kepercayaan 95% dari median data. Manakah interval berikut yang paling mendekati hasil? Gunakan set.seed(123)

A. (10, 13)

B. (9, 15)

C. (8, 14)

D. (8, 18)

set.seed(123)
x <- c(5, 8, 12, 13, 15, 18, 21)

length(x)
## [1] 7
set.seed(123)
sample.size <- 7 
n.samples <- 10000
bootstrap.results <- c() 

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

quantile(bootstrap.results, c(0.025, 0.975))
##  2.5% 97.5% 
##     8    18

Interval yang paling mendekati hasil adalah (D) (8, 18)

Soal 8

Buatlah sebuah regresi linear sederhana dari data berikut: x <- 1:10 y <- 2 * x + rnorm(10, 0, 1) Berapa estimasi koefisien slope dari model lm(y ~ x)? Gunakan set.seed(123)

A. 1.91

B. 1.75

C. 2.20

D. 1.89

set.seed(123)
x <- 1:10
y <- 2 * x + rnorm(10, 0, 1)
model <- lm(y ~ x)
summary(model)$coefficients[2, 1]
## [1] 1.918029

Estimasi koefisien slope dari model lm(y ~ x) adalah (A) 1.91

Soal 9

Dari data rnorm(100, mean=70, sd=5), berapakah nilai maksimum dari data tersebut? Gunakan set.seed(123)

A. Sekitar 76

B.Sekitar 95

C. Sekitar 81

D. Sekitar 90

set.seed(123)
data6 <- rnorm(100, mean=70, sd=5)
summary(data6)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   58.45   67.53   70.31   70.45   73.46   80.94

Nilai maksimum dari data tersebut adalah (D) Sekitar 90

Soal 10

Gunakan sample() untuk membuat 100 data kategorik (“A”, “B”, “C”) dengan probabilitas masing-masing 0.2, 0.3, 0.5. Berapa banyak kategori “B”? Gunakan set.seed(123)

A. Sekitar 50

B. Sekitar 60

C. Sekitar 20

D. Sekitar 30

set.seed(123)
categories <- c("A", "B", "C")
probabilities <- c(0.2, 0.3, 0.5)
sampled_data <- sample(categories, size=100, prob=probabilities, replace=TRUE)
table(sampled_data)["B"]
##  B 
## 29

Banyak kategori B adalah (D) Sekitar 30

Soal 11

Dengan menggunakan fungsi rbinom, simulasikan 1000 percobaan dengan n = 10 dan p = 0.3. Berapa rata-rata jumlah sukses? Gunakan set.seed(123)

A. 2.8

B. 3.1

C. 2.9

D. 2.7

set.seed(123)
n_trials <- 1000
n <- 10
p <- 0.3
sukses <- rbinom(n_trials, n, p)
mean(sukses)
## [1] 2.989

Jata-rata jumlah suksesnya adalah (C) 2.9

Soal 12

Lakukan bootstrap 1000 kali terhadap sampel x <- c(5, 7, 8, 10, 12). Hitung rata-rata dari setiap bootstrap, lalu ambil rata-rata dari hasil tersebut. Nilai mendekati berapa? Gunakan set.seed(123)

A. 8.35

B. 8.50

C. 7.90

D. 8.10

set.seed(123)

x <- c(5, 7, 8, 10, 12)
n_boot <- 1000

bootstrap_means <- numeric(n_boot)

for (i in 1:n_boot) 
{
  sample_boot <- sample(x, size = length(x), replace = TRUE)
  bootstrap_means[i] <- mean(sample_boot)
}

mean_bootstrap <- mean(bootstrap_means)
print(mean_bootstrap)
## [1] 8.3572

Nilai mendekati (A) 8.35

Soal 13

Simulasikan 50 data dari N(100,15) dan 50 data dari N(80,10), lalu gabungkan. Berapa rata-rata dari seluruh data gabungan? Gunakan set.seed(123)

A. 95

B. 85

C. 90

D. 100

set.seed(123)
dataA <- rnorm(50, mean = 100, sd = 15)
dataB <- rnorm(50, mean = 80, sd = 10)

combined_data <- c(dataA, dataB)

mean_combined <- mean(combined_data)
print(mean_combined)
## [1] 90.99007

Rata-rata dari seluruh data gabungannya adalah (C) 90

Soal 14

Buatlah simulasi data dengan 3 variabel prediktorx1 <- rnorm(100) x2 <- x1 + rnorm(100, 0, 0.01) x3 <- rnorm(100) y <- 3 + 2x1 - 1x3 + rnorm(100) Buat model lm(y ~ x1 + x2 + x3). Berdasarkan output model, manakah pernyataan berikut yang paling tepat? Gunakan set.seed(42)

A. x1 dan x2 memiliki efek signifikan terhadap y

B. x2 akan muncul tidak signifikan karena multikolinearitas tinggi

C. Model menunjukkan overfitting karena nilai R² sangat rendah

D. x3 tidak berpengaruh karena nilainya random

set.seed(42)
x1 <- rnorm(100)
x2 <- x1 + rnorm(100, 0, 0.01)  
x3 <- rnorm(100)
y <- 3 + 2*x1 - 1*x3 + rnorm(100)

model <- lm(y ~ x1 + x2 + x3)
summary(model)
## 
## Call:
## lm(formula = y ~ x1 + x2 + x3)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.7944 -0.5867 -0.1038  0.6188  2.3280 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.03150    0.08914  34.007   <2e-16 ***
## x1           1.17483    9.89434   0.119    0.906    
## x2           0.88292    9.89031   0.089    0.929    
## x3          -1.03161    0.08882 -11.614   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8867 on 96 degrees of freedom
## Multiple R-squared:  0.8927, Adjusted R-squared:  0.8893 
## F-statistic: 266.2 on 3 and 96 DF,  p-value: < 2.2e-16

Berdasarkan output model, pernyataan yang paling tepat adalah (B) x2 akan muncul tidak signifikan karena multikolinearitas tinggi

Soal 15

Simulasikan 100 data dari distribusi uniform antara 20 sampai 80. Berapa nilai range (max - min) yang paling mendekati hasil simulasi? Gunakan set.seed(123)

A. Sekitar 59

B. Sekitar 50

C. Sekitar 61

D. Sekitar 45

set.seed(123)
data7 <- runif(100, min = 20, max = 80)

# Hitung range
range_value <- max(data7) - min(data7)
print(range_value)
## [1] 59.6187

Nilai range (max - min) yang paling mendekati hasil simulasi adalah (A) Sekitar 59