Soal
1. Mensimulasikan perbandingan ketakbiasan dari rata-rata contoh dan median contoh
2. Mensimulasikan perbandingan ketakbiasan ragam dengan pembagi n dan n-1
Jawaban No. 1
Untuk menjawab nomor satu, kita akan melakukan perbandingan ketakbiasan dari rata-rata contoh dan median contoh berdasarkan 2 jenis data, yaitu data yang menyebar simetris dan data Non-Simetris. Dalam hal ini, kita juga hanya akan menggunakan contoh (n) sebanyak 100.
Sebaran simetris yang digunakan adalah sebagai berikut:
- Sebaran Logistik
Sebaran logistik adalah sebaran peluang kontinu dalam teori peluang dan statistika. Sebaran ini memiliki dua parameter dan terdefinisi untuk semua bilangan real. Plot Probability Density Function (PDF)-nya simetris terhadap rata-rata. Fungsi cumulative density function (CDF)-nya adalah fungsi logistik yang digunakan dalam regresi logistik.
PDF nya sebagai berikut:
\[ f_X(x)=\frac {e^{-\frac{x-\mu}{s}}} {s(1+e^{-\frac{x-\mu}{s} })^2 },\text{ dengan } -\infty<x<\infty \]
dan CDF-nya sebagai berikut:
\[ F_X(x)= \int^x_{-\infty}xf_X(x)dx= \frac {1} {1+e^{-\frac{x-\mu}{s} }}, \text{ dengan } -\infty<x<\infty \]
- Sebaran Normal
PDF-nya sebagai berikut:
\[ f(x) = \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{1}{2}(\frac{x-\mu}{\sigma})^2} \]
Kemudian, sebaran non-simetris yang akan digunakan adalah sebagai berikut:
- Sebaran Eksponensial
Sebaran eksponensial adalah sebaran probabilitas yang digunakan untuk menggambarkan waktu antara dua kejadian yang terjadi secara berurutan dalam suatu proses Poisson. Sebaran ini memiliki satu parameter, yaitu laju (\(\lambda\)), yang menunjukkan jumlah rata-rata kejadian dalam satu satuan waktu. Fungsi kepadatan probabilitas (PDF) dari sebaran eksponensial adalah:
\[ f(x) = \begin{cases} \lambda e^{-\lambda x} & \text{for } x \ge 0 \\ 0 & \text{otherwise} \end{cases} \]
- Sebaran Beta
Sebaran beta adalah sebaran probabilitas yang didefinisikan pada interval [0,1] dan memiliki dua parameter bentuk, yaitu \(\alpha\) dan \(\beta\). Sebaran ini sering digunakan untuk memodelkan proporsi atau persentase. Fungsi kepadatan probabilitas (PDF) dari sebaran beta adalah:
\[ f(x) = \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)}x^{\alpha-1}(1-x)^{\beta-1} \]
Dilakukan pembangkitan untuk setiap sebaran sebanyak 10 juta observasi sebagai populasi yang nantinya akan diambil sampel untuk dijadikan sebaran contoh.
set.seed(15)
pop.logis = rlogis(10000000) #Logis(0,1)
pop.norm = rnorm(10000000) #Norm(0,1)
pop.exp = rexp(10000000) #Exp(1)
pop.beta = rbeta(10000000,5,1) #Beta(5,1)
par(mfrow=c(2,2))
hist(pop.logis); hist(pop.norm); hist(pop.exp); hist(pop.beta)
Dari visualisasi di atas, dapat terlihat bahwa sebaran setiap populasi
berbeda-beda. Dengan nilai mean dan median setiap sebaran setiap
populasi adalah sebagai berikut:
mean <- c(mean(pop.logis),mean(pop.norm),mean(pop.exp),mean(pop.beta))
median <- c(median(pop.logis),median(pop.norm),median(pop.exp),median(pop.beta))
sebaran <- c("Logistik", "Normal", "Eksponensial", "Beta")
data.frame(sebaran,mean,median)
Dapat terlihat bahwa nilai mean dan median cenderung sama ketika sebarannya simetris dan cenderung berbeda ketika sebarannya tidak simetris.
Ditentukan pula nilai n atau banyak sampel sebanyak 100 dan k atau banyak ulangan sebanyak 1000 untuk membuat sebaran contoh.
Sebaran Logistik
set.seed(15)
n=100;k=1000
logis = matrix(sample(pop.logis,n*k),k)
logis_mean = apply(logis,1,mean)
logis_median = apply(logis,1,median)
data.frame("\ "=c("Sampel", "Populasi"),mean=c(mean(logis_mean), mean(pop.logis)), median=c(mean(logis_median), median(pop.logis)))
Dapat terlihat dengan banyak sampel sebanyak 100 dengan ulangan sebanyak 1000 kali, nilai mean dan median sampel cukup mendekati nilai parameternya. Hal ini menunjukan bahwa mean dan median sampel tidak bias terhadap parameternya. Lebih jelasnya, dapat dilihat dari visualisasi sebaran contoh di bawah
par(mfrow=c(1,2))
hist(logis_mean); abline(v=mean(pop.logis), col="red"); legend("topleft", "Mean", lty=19,col="red")
hist(logis_median); abline(v=median(pop.logis), col="blue"); legend("topleft", "Median", lty=19,col="blue")
Gambar menunjukan mean dan median contoh menyebar di antara mean dan
median populasi yang menunjukan ketakbiasan mean dan median bagi
sampel.
Sebaran Normal
set.seed(15)
n=100;k=1000
norm = matrix(sample(pop.norm,n*k),k)
norm_mean = apply(norm,1,mean)
norm_median = apply(norm,1,median)
data.frame("\ "=c("Sampel", "Populasi"),mean=c(mean(norm_mean), mean(pop.norm)), median=c(mean(norm_median), median(pop.norm)))
Dapat terlihat dengan banyak sampel sebanyak 100 dengan ulangan sebanyak 1000 kali, nilai mean dan median sampel cukup mendekati nilai parameternya. Hal ini menunjukan bahwa mean dan median sampel tidak bias terhadap parameternya. Lebih jelasnya, dapat dilihat dari visualisasi sebaran contoh di bawah
par(mfrow=c(1,2))
hist(norm_mean); abline(v=mean(pop.norm), col="red"); legend("topleft", "Mean", lty=19,col="red")
hist(norm_median); abline(v=median(pop.norm), col="blue"); legend("topleft", "Median", lty=19,col="blue")
Gambar menunjukan mean dan median contoh menyebar di antara mean dan
median populasi yang menunjukan ketakbiasan mean dan median bagi
sampel.
Sebaran Eksponensial
set.seed(15)
n=100;k=1000
exp = matrix(sample(pop.exp,n*k),k)
exp_mean = apply(exp,1,mean)
exp_median = apply(exp,1,median)
data.frame("\ "=c("Sampel", "Populasi"),mean=c(mean(exp_mean), mean(pop.exp)), median=c(mean(exp_median), median(pop.exp)))
Dapat terlihat dengan banyak sampel sebanyak 100 dengan ulangan sebanyak 1000 kali, nilai mean dan median sampel cukup mendekati nilai parameternya. Hal ini menunjukan bahwa mean dan median sampel tidak bias terhadap parameternya. Lebih jelasnya, dapat dilihat dari visualisasi sebaran contoh di bawah
par(mfrow=c(1,2))
hist(exp_mean); abline(v=mean(pop.exp), col="red"); legend("topleft", "Mean", lty=19,col="red")
hist(exp_median); abline(v=median(pop.exp), col="blue"); legend("topleft", "Median", lty=19,col="blue")
Gambar menunjukan mean dan median contoh menyebar di antara mean dan
median populasi yang menunjukan ketakbiasan mean dan median bagi
sampel.
Sebaran Beta
set.seed(15)
n=100;k=1000
beta = matrix(sample(pop.beta,n*k),k)
beta_mean = apply(beta,1,mean)
beta_median = apply(beta,1,median)
data.frame("\ "=c("Sampel", "Populasi"),mean=c(mean(beta_mean), mean(pop.beta)), median=c(mean(beta_median), median(pop.beta)))
Dapat terlihat dengan banyak sampel sebanyak 100 dengan ulangan sebanyak 1000 kali, nilai mean dan median sampel cukup mendekati nilai parameternya. Hal ini menunjukan bahwa mean dan median sampel tidak bias terhadap parameternya. Lebih jelasnya, dapat dilihat dari visualisasi sebaran contoh di bawah
par(mfrow=c(1,2))
hist(beta_mean); abline(v=mean(pop.beta), col="red"); legend("topleft", "Mean", lty=19,col="red")
hist(beta_median); abline(v=median(pop.beta), col="blue"); legend("topleft", "Median", lty=19,col="blue")
Gambar menunjukan mean dan median contoh menyebar di antara mean dan
median populasi yang menunjukan ketakbiasan mean dan median bagi
sampel.
Kesimpulan Jawaban No. 1
Dari pengerjaan yang telah dilakukan, dapat disimpulkan bahwa rata-rata (mean) atau median contoh merupakan penduga tak bias bagi rata-rata atau median populasi pada sebaran apapun (baik simetris maupun tidak simetris).
Jawaban No. 2
Pada soal kedua, kita disuruh untuk melakukan simulasi perbandingan antara ragam dengan pembagi n (ragam populasi) dan pembagi n-1 (ragam contoh). Untuk memudahkan, didefinisikan fungsi sebagai berikut:
ragam <- function(x, sample = TRUE) {
n <- length(x)
mean_x <- mean(x)
sse <- sum((x - mean_x)^2)
if (sample) {
return(sse / (n - 1))
} else {
return(sse / n)
}
}
Jika sample = TRUE (default), maka yang digunakan adalah
pembagi n-1, dan jika false pembaginya adalah n.
Dalam hal ini, kita akan menggunakan pop.norm yang telah
digunakan pada soal sebelumnya sebagai populasinya. Akan dilakukan
simulasi untuk membandingkan kedua pembagi ini.
k = 1000 # Ulangan
n = 30 # Jumlah sampel
ragam_contoh_n <- numeric(0) # Pembagi n
ragam_contoh_n_1 <- numeric(0) # Pembagi n-1
for (i in 1:k) {
contoh <- sample(pop.norm, n)
ragam_contoh_n[i] <- ragam(contoh, sample=F)
ragam_contoh_n_1[i] <- ragam(contoh)
}
Didapat hasil sebagai berikut:
var.pop = ragam(pop.norm, F)
var.pop
## [1] 1.000289
data.frame(
Pembagi = c("n", "n-1"),
Rataan_Ragam = c(mean(ragam_contoh_n),mean(ragam_contoh_n_1)),
Selisih_Dengan_Ragam_Populasi = c(abs(mean(ragam_contoh_n)-var.pop),abs(mean(ragam_contoh_n_1)-var.pop))
)
Dari hasil di atas, dapat terlihat bahwa pembagi n-1 memiliki hasil yang lebih tidak bias daripada pada pembagi n. Hal ini menunjukan bahwa pembagi n berbias untuk ragam contoh.