soal no 3

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

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

soal no 5

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

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

soal no 6

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)

set.seed(123) 
data1 <- rnorm(50, mean = 100, sd = 15) 
data2 <- rnorm(50, mean = 80, sd = 10)  
data_gabungan <- c(data1, data2)        
rata_rata <- mean(data_gabungan)        
rata_rata
## [1] 90.99007

soal no 7

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)

set.seed(123)
x <- c(5, 7, 8, 10, 12)
jumlah_bootstrap <- 1000
rata_rata_bootstrap <- numeric(jumlah_bootstrap)
for (i in 1:jumlah_bootstrap) {
  sampel_bootstrap <- sample(x, size = length(x), replace = TRUE) 
  rata_rata_bootstrap[i] <- mean(sampel_bootstrap) 
}
rata_rata_total <- mean(rata_rata_bootstrap)
rata_rata_total
## [1] 8.3572

soal no 9

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)

set.seed(123)
x <- 1:10
y <- 2* x + rnorm(10, 0, 1)
model <- lm(y ~ x)
summary(model)
## 
## Call:
## lm(formula = y ~ x)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.1348 -0.5624 -0.1393  0.3854  1.6814 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   0.5255     0.6673   0.787    0.454    
## x             1.9180     0.1075  17.835    1e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9768 on 8 degrees of freedom
## Multiple R-squared:  0.9755, Adjusted R-squared:  0.9724 
## F-statistic: 318.1 on 1 and 8 DF,  p-value: 1e-07

soal no 11

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

set.seed(123)
data_poisson <- rpois(100,4)

modus <- as.numeric(names(sort(table(data_poisson), decreasing = TRUE)[1]))
modus
## [1] 2

soal no 12

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)

set.seed(123)
data <- rnorm(100,0,1)
data_lebih_besar <- data[data > 1]
length(data_lebih_besar)
## [1] 17

soal no 13

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)

set.seed(42)
x1 <- rnorm(100)
x2 <- x1 + rnorm(100, 0, 0.01)
x3 <- rnorm(100)
y <- 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

soal no 14

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)

set.seed(123)
data_binomial <- rbinom(100, 10, 0.3)
rata_rata <- mean(data_binomial)
rata_rata
## [1] 3.02

soal no 15

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)

set.seed(123)
data_kategorik <- sample(c("A", "B", "C"),size = 100, replace = TRUE, prob = c(0.2, 0.3, 0.5))
jumlah_B <- sum(data_kategorik == "B")
jumlah_B
## [1] 29

soal no 16

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

set.seed(123) 
data_normal <- rnorm(100, mean = 70, sd = 5) 

nilai_maksimum <- max(data_normal)
nilai_maksimum
## [1] 80.93666

soal no 17

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)

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

n_bootstrap <- 10000
boot_medians <- numeric(n_bootstrap) 

for (i in 1:n_bootstrap) {
  sampel_bootstrap <- sample(x, size = length(x), replace = TRUE) 
  boot_medians[i] <- median(sampel_bootstrap) 
}

interval_kep <- quantile(boot_medians, c(0.025, 0.975))
interval_kep
##  2.5% 97.5% 
##     8    18

soal no 18

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

set.seed(123)
data_binomial <- rbinom(100, 10, 0.3)

rata_rata_sukses <- mean(data_binomial)
rata_rata_sukses
## [1] 3.02

soal no 19

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

set.seed(123)
data_uniform <- runif(100, 20, 80)

range_data <- max(data_uniform) - min(data_uniform)
range_data
## [1] 59.6187

soal no 20

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

set.seed(123)
data_normal <- rnorm(100)
sd_data <- sd(data_normal)

batas_bawah <- mean(data_normal) - 2 * sd_data
batas_atas <- mean(data_normal) + 2 * sd_data

luar_batas <- sum(data_normal < batas_bawah | data_normal > batas_atas)
luar_batas
## [1] 5