(a) Jumlah komentar per unggahan
Jumlah komentar diperoleh dengan menghitung (0, 1, 2, 3, …) dan berupa bilangan bulat.
Jadi variabel acaknya DISKRIT.
(b) Durasi video yang ditonton (detik)
Durasi diperoleh dengan mengukur dan dapat bernilai pecahan di dalam suatu interval (misalnya 12,37 detik atau 45,812 detik).
Jadi variabel acaknya KONTINU.
klasifikasi <- data.frame(
Variabel = c("(a) Jumlah komentar per unggahan",
"(b) Durasi video yang ditonton (detik)"),
Cara_Memperoleh = c("Menghitung (counting)", "Mengukur (measuring)"),
Jenis = c("Diskrit", "Kontinu")
)
print(klasifikasi)
## Variabel Cara_Memperoleh Jenis
## 1 (a) Jumlah komentar per unggahan Menghitung (counting) Diskrit
## 2 (b) Durasi video yang ditonton (detik) Mengukur (measuring) Kontinu
Diketahui: \(n = 10\), \(p = 0{,}25\), \(q = 1 - p = 0{,}75\), \(X \sim \text{Binomial}(10;\,0{,}25)\)
a) P(X = 2)
\[P(X=x) = \binom{n}{x}\, p^{x}\, (1-p)^{n-x}\]
\[P(X=2) = \binom{10}{2}(0{,}25)^{2}(0{,}75)^{8}\]
\[\binom{10}{2} = \frac{10!}{2!\,8!} = \frac{10 \times 9}{2 \times 1} = 45\]
\[(0{,}25)^2 = 0{,}0625 \qquad (0{,}75)^8 = 0{,}100113\]
\[P(X=2) = 45 \times 0{,}0625 \times 0{,}100113 = 0{,}2816\]
b) Rata-rata
\[\mu = n \cdot p = 10 \times 0{,}25 = 2{,}5 \text{ klik}\]
c) Standar deviasi
\[\sigma^2 = n\,p\,(1-p) = 10 \times 0{,}25 \times 0{,}75 = 1{,}875\]
\[\sigma = \sqrt{1{,}875} = 1{,}3693 \text{ klik}\]
n <- 10
p <- 0.25
# a) P(X = 2)
p_manual <- choose(n, 2) * p^2 * (1 - p)^(n - 2) # rumus manual
p_dbinom <- dbinom(2, size = n, prob = p) # fungsi bawaan R
cat("P(X = 2) rumus manual :", round(p_manual, 4), "\n")
## P(X = 2) rumus manual : 0.2816
cat("P(X = 2) dbinom() :", round(p_dbinom, 4), "\n")
## P(X = 2) dbinom() : 0.2816
# b) Rata-rata
rata2 <- n * p
cat("Rata-rata (mean) :", rata2, "klik\n")
## Rata-rata (mean) : 2.5 klik
# c) Standar deviasi
varians <- n * p * (1 - p)
sd_bin <- sqrt(varians)
cat("Varians :", varians, "\n")
## Varians : 1.875
cat("Standar deviasi (SD) :", round(sd_bin, 4), "klik\n")
## Standar deviasi (SD) : 1.3693 klik
x <- 0:n
probs <- dbinom(x, size = n, prob = p)
warna <- ifelse(x == 2, "firebrick", "yellow")
barplot(probs, names.arg = x, col = warna,
main = "Distribusi Binomial (n = 10, p = 0,25)",
xlab = "Jumlah klik (x)", ylab = "P(X = x)")
Kesimpulan: Peluang tepat 2 pengguna mengklik iklan adalah 0,2816 (28,16%), dengan rata-rata 2,5 klik dan SD 1,3693 klik.
Diketahui: \(\lambda = 8\) unggahan per menit, \(X \sim \text{Poisson}(8)\)
\[P(X=x) = \frac{e^{-\lambda}\lambda^{x}}{x!}\]
\[P(X=5) = \frac{e^{-8}\,8^{5}}{5!}\]
\[e^{-8} = 0{,}000335463 \qquad 8^5 = 32.768 \qquad 5! = 120\]
\[P(X=5) = \frac{0{,}000335463 \times 32.768}{120} = \frac{10{,}99254}{120} = 0{,}0916\]
Pengecekan manual dengan R (sebagai kalkulator):
lambda <- 8
pembilang <- exp(-lambda) * lambda^5
penyebut <- factorial(5)
p5_manual <- pembilang / penyebut
cat("e^-8 :", exp(-lambda), "\n")
## e^-8 : 0.0003354626
cat("8^5 :", lambda^5, "\n")
## 8^5 : 32768
cat("5! :", penyebut, "\n")
## 5! : 120
cat("P(X = 5) manual :", round(p5_manual, 4), "\n")
## P(X = 5) manual : 0.0916
cat("P(X = 5) dpois() :", round(dpois(5, lambda), 4), "\n")
## P(X = 5) dpois() : 0.0916
\[P(X > 12) = 1 - P(X \le 12)\]
# Cara 1: komplemen dari fungsi distribusi kumulatif
p_lebih12_a <- 1 - ppois(12, lambda = 8)
# Cara 2: langsung dengan lower.tail = FALSE
p_lebih12_b <- ppois(12, lambda = 8, lower.tail = FALSE)
# Cara 3: menjumlahkan peluang x = 13 sampai tak hingga (didekati sampai 100)
p_lebih12_c <- sum(dpois(13:100, lambda = 8))
cat("P(X <= 12) :", round(ppois(12, 8), 4), "\n")
## P(X <= 12) : 0.9362
cat("P(X > 12) cara 1 :", round(p_lebih12_a, 4), "\n")
## P(X > 12) cara 1 : 0.0638
cat("P(X > 12) cara 2 :", round(p_lebih12_b, 4), "\n")
## P(X > 12) cara 2 : 0.0638
cat("P(X > 12) cara 3 :", round(p_lebih12_c, 4), "\n")
## P(X > 12) cara 3 : 0.0638
x <- 0:20
warna <- ifelse(x > 12, "firebrick", "yellow")
barplot(dpois(x, 8), names.arg = x, col = warna,
main = "Distribusi Poisson (lambda = 8)",
xlab = "Jumlah unggahan per menit (x)", ylab = "P(X = x)")
legend("topright", legend = c("x > 12", "x <= 12"),
fill = c("firebrick", "yellow"), bty = "n")
Kesimpulan: P(X = 5) = 0,0916 (9,16%) dan P(X > 12) = 0,0638 (6,38%).
Diketahui: \(X \sim N(\mu = 3;\ \sigma = 0{,}5)\) detik
Standarisasi:
\[Z = \frac{X - \mu}{\sigma} = \frac{4 - 3}{0{,}5} = 2\]
\[P(X > 4) = P(Z > 2) = 1 - P(Z \le 2) = 1 - 0{,}9772 = 0{,}0228\]
(Nilai \(P(Z \le 2) = 0{,}9772\) diperoleh dari tabel Z.)
Loading terlama 5% berarti 95% data berada di bawah batas, sehingga dicari \(x\) dengan \(P(X > x) = 0{,}05\) atau \(P(X \le x) = 0{,}95\).
Dari tabel Z, \(z_{0{,}95} = 1{,}645\).
\[x = \mu + z\,\sigma = 3 + (1{,}645)(0{,}5) = 3 + 0{,}8225 = 3{,}8225 \text{ detik}\]
mu <- 3
sigma <- 0.5
# a) P(X > 4)
z_hit <- (4 - mu) / sigma
p_z <- 1 - pnorm(z_hit) # lewat nilai Z
p_x <- pnorm(4, mean = mu, sd = sigma, lower.tail = FALSE) # langsung
cat("Nilai Z :", z_hit, "\n")
## Nilai Z : 2
cat("P(Z > 2) :", round(p_z, 4), "\n")
## P(Z > 2) : 0.0228
cat("P(X > 4) langsung :", round(p_x, 4), "\n")
## P(X > 4) langsung : 0.0228
# b) Batas 5% loading terlama (persentil ke-95)
z_95 <- qnorm(0.95)
batas <- mu + z_95 * sigma
batas2 <- qnorm(0.95, mean = mu, sd = sigma, lower.tail = TRUE)
cat("Nilai z (persentil 95) :", round(z_95, 3), "\n")
## Nilai z (persentil 95) : 1.645
cat("Batas waktu (rumus) :", round(batas, 4), "detik\n")
## Batas waktu (rumus) : 3.8224 detik
cat("Batas waktu (qnorm) :", round(batas2, 4), "detik\n")
## Batas waktu (qnorm) : 3.8224 detik
x <- seq(1, 5, length.out = 500)
y <- dnorm(x, mean = mu, sd = sigma)
plot(x, y, type = "l", lwd = 2, col = "skyblue",
main = "Distribusi Normal Waktu Muat (mu = 3, sigma = 0,5)",
xlab = "Waktu loading (detik)", ylab = "Kepadatan")
# area P(X > 4)
xs <- seq(4, 5, length.out = 100)
polygon(c(4, xs, 5), c(0, dnorm(xs, mu, sigma), 0),
col = rgb(1, 0, 0, 0.4), border = NA)
# garis batas 5% terlama
abline(v = batas, col = "orange", lty = 2, lwd = 2)
legend("topright",
legend = c("P(X > 4) = 0,0228", paste("Batas 5% =", round(batas, 3), "detik")),
fill = c(rgb(1, 0, 0, 0.4), NA), border = c("skyblue", NA),
lty = c(NA, 2), col = c(NA, "orange"), bty = "n")
Kesimpulan:
ringkasan <- data.frame(
Nomor = c("1a", "1b", "2", "2", "2", "3", "3", "4", "4"),
Keterangan = c("Jumlah komentar", "Durasi video",
"P(X = 2)", "Rata-rata", "SD",
"P(X = 5)", "P(X > 12)",
"P(loading > 4)", "Batas 5% terlama (detik)"),
Hasil = c("Diskrit", "Kontinu",
round(dbinom(2, 10, 0.25), 4), 2.5, round(sqrt(10 * 0.25 * 0.75), 4),
round(dpois(5, 8), 4), round(ppois(12, 8, lower.tail = FALSE), 4),
round(pnorm(4, 3, 0.5, lower.tail = FALSE), 4),
round(qnorm(0.95, 3, 0.5), 4))
)
print(ringkasan, row.names = FALSE)
## Nomor Keterangan Hasil
## 1a Jumlah komentar Diskrit
## 1b Durasi video Kontinu
## 2 P(X = 2) 0.2816
## 2 Rata-rata 2.5
## 2 SD 1.3693
## 3 P(X = 5) 0.0916
## 3 P(X > 12) 0.0638
## 4 P(loading > 4) 0.0228
## 4 Batas 5% terlama (detik) 3.8224