1. Monte Carlo
Simulasi yang memanfaatkan informasi mengenai sebaran data yang diketahui (dihipotesiskan, dianggap tahu) dengan pasti
Simulasi didasarkan pada pembangkitan bilangan acak dari sebaran hipotetik
Perilaku yang ingin dipelajari dapat diketahui jika proses diulang berkali-kali
Banyak digunakan untuk “mengetahui” sebaran dari statistik
Pada kasus contoh acak yang diambil berasal dari populasi yang menyebar normal, nilai statistik uji t akan menyebar \(t_{db=(n-1)}\), sementara untuk populasi dengan sebaran lainnya, perlu dikaji ulang sebaran dari nilai statistik uji t
\(t=\frac{\bar{x}-\mu_{0}}{s/\sqrt{n}}\)
Simulasi dilakukan untuk melihat hasil dari sebaran hipotetik populasi ketika menghitung nilai statistik uji t
Ilustrasi 1
Misalkan \(X\) ~ \(N(0,1)\), jika diketahui \(Y=2X\), berapa \(P(Y>2)\) ?
Algoritma
Bangkitkan \(X\)~\(N(0,1)\)
Hitung \(Y=2X\)
Ulangi langkah 1 dan 2 sebanyak 100000 kali
Hitung presentasi nilai \(𝑌>2\)
Aplikasi di R
n = 100000
x = rnorm(n)
y = 2*x
y1 = ifelse (y > 2, 1, 0)
mean(y1) #P(Y>2) secara empirik
## [1] 0.16084
pnorm(2,0,2,lower.tail=F) #P(Y>2 dari sebaran hipotetik)
## [1] 0.1586553
Ilustrasi 2
Jawaban:
Aplikasi di R
lambda<-2
N<-100000
k<-1
x<-rexp(N,lambda)
y<-ifelse(x>k,1,0)
hasil<-mean(y) #alpha
hasil
## [1] 0.13596
lambda<-4
N<-100000
k<-1
x<-rexp(N,lambda)
y<-ifelse(x>k,1,0)
hasil<-mean(y) #kuasa uji
hasil
## [1] 0.01821
Ilustrasi 3
Berikut data dari sebaran eksponensial, \(H_0:λ=1\) , Apa kesimpulan yang bisa diambil ?
Algoritma
Hitung \(t_{data}=|\frac{\bar{x}-\mu _{0}}{s/\sqrt{n}}|\) dari data
Bangkitkan 10 contoh acak yang menyebar \(exp(\lambda =1)\)
Hitung \(t_{dist}=|\frac{\bar{x}-\mu _{0}}{s/\sqrt{n}}|\) dari sebaran hipotetik
Ulangi langkah 2 dan 3 sebanyak 10000 kali
Hitung \(p-value=P(t_{dist}>t_{data})\)
lambda = 1
k = 10000
data1 = c(1.6876, 0.03037, 0.91673, 1.34939, 0.08164, 0.0312, 0.61068, 0.63169, 2.99986, 2.70955)
n = length(data1)
m = mean(data1)
s = sd(data1)
tdata = abs((m-1/lambda)/(s/sqrt(n)))
data2 = matrix(rexp(n*k,lambda),k)
m1 = apply(data2,1,mean)
s1 = apply(data2,1,sd)
tdist = abs((m1-1/lambda)/(s1/sqrt(n)))
y = ifelse(tdist > tdata,1,0)
pvalue = mean(y)
kesimpulan = ifelse(pvalue<0.05, "Tolak H0", "Tak Tolak H0")
pvalue
## [1] 0.7792
kesimpulan
## [1] "Tak Tolak H0"
2. Jacknife
Misalkan terdapat sampel \(y=(y_1,y_2,...,y_n)\) untuk menduga \(θ\) dengan penduga \(\hat{\theta}=f(y)\)
Tujuannya adalah menduga \(SE(\hat{\theta})\)
Sampel observasi dari \(y_i=(y_i,...,y_{i−1},y_{i+1},..,y_n)\) untuk \(i=1,..,n\) disebut Jacknife Samples
Stastistik dari Jacknife adalah \(\hat{\theta}_{(i)}=f(y_{(i)})\)
Ilustrasi
Dugalah rasio item1 dengan total item menggunakan Jacknife !
Algoritma
Hitung \(\hat{\theta }=\) \(r=\frac{\bar{y}}{\bar{x}+\bar{y}}\)
Tentukan sampel janknife \(x_{(i)}\) dan \(y_{(i)}\); \(i=1,…., n\)
Hitung penduga jacknife
Aplikasi di R
store = LETTERS [1:6]
item1 = c(1363, 670, 761, 746, 991, 798)
item2 = c(1087, 571, 518, 612, 770, 655)
data1 = data.frame(store, item1, item2)
n = nrow(data1)
teta_hat = mean(data1$item1)/(mean(data1$item1)+mean(data1$item2))
y = matrix (NA,n,n-1)
x = matrix (NA,n,n-1)
for(i in 1:n){
y[i,] = data1$item1[-i]
x[i,] = data1$item2[-i]
}
ybar = apply(y,1,mean)
xbar = apply(x,1,mean)
teta_i = ybar/(xbar+ybar)
teta_jk = n*teta_hat-(n-1)*mean(teta_i)
var_jk = (n-1)/n*(sum(teta_i^2)-(n*mean(teta_i)^2))
se_jk = sqrt(var_jk)
teta_jk
## [1] 0.5584068
se_jk
## [1] 0.006207102
3. Bootstrap
Ukuran n kecil mengakibatkan beberapa teori peluang dan statistika inferensia tidak terpenuhi. Selain itu, ukuran n kecil juga menjadi masalah dalam suatu pendugaan parameter yang berkaitan dengan tingkat keakuratan dan ketelitian.
Ketika n kecil dan tidak ada informasi sebaran populasi dapat diatasi dengan Metode Resampling Bootstrap
Ide dasar dari bootstrap adalah membangun data semu dengan menggunakan informasi data asli
Efisien untuk mendapatkan hasil yang robust
Misalkan sebuah sampel \(y=(y_1,..., y_n)\) untuk mengestimasi \(𝜃\) dengan estimator \(\hat{\theta}=f(y)\), dilakukan langkah-langkah sebagai berikut:
Mensimulasikan sampel berulang dengan ukuran n dari \(y\to y_{(i)}^{b}\) secara berulang.
Menghitung stastistik \(\hat{\theta}_{(i)}^{b}=f(y_{(i)}^{b})\)
Mempelajari perilaku statistik selama 𝑁 pengulangan.
Estimator Bootstrap
\(\hat{\theta }_{b}=\frac{1}{N}\sum_{i=1}^{N}\hat{\theta }_{(i)}^{b}\)
\(V_{b}(\hat{\theta})=\frac{1}{N-1}\sum_{i=1}^{N}(\hat{\theta }_{(i)}^{b}-\hat{\theta}_{b})^{2}\)
Ilustrasi
Dugalah rasio item1 dengan total item menggunakan bootstrap !
Algoritma
Aplikasi di R
store = LETTERS [1:6]
item1 = c(1363, 670, 761, 746, 991, 798)
item2 = c(1087, 571, 518, 612, 770, 655)
data1 = data.frame(store, item1, item2)
n = nrow(data1)
b = 1000 #jumlah iterasi atau pengulangan dalam proses bootstrap
y = matrix(sample(data1$item1, n*b, replace = T),b)
x = matrix(sample(data1$item2, n*b, replace = T),b)
ybar = apply(y,1,mean)
xbar = apply(x,1,mean)
teta_i = ybar/(xbar+ybar)
teta_b = mean(teta_i)
var_b = (sum(teta_i^2)-(b*teta_b^2))/(b-1)
se_b = sqrt(var_b)
teta_b
## [1] 0.5579762
se_b
## [1] 0.03675839
Jadi penduga rasio item1 dengan total item menggunakan bootstrap adalah 0.5564 dengan standar error 0.0375