Kita dapat menemukan berbagai metode Resampling , atau secara longgar disebut metode " simulasi ", yang bergantung pada resampling atau pengocokan sampel. Mungkin ada perbedaan pendapat sehubungan dengan terminologi yang tepat, tetapi diskusi berikut mencoba untuk menggeneralisasi dan menyederhanakan apa yang tersedia dalam literatur yang sesuai:
Metode resampling digunakan dalam (1) memperkirakan presisi / akurasi statistik sampel melalui penggunaan subset data (misalnya Jackknifing) atau menggambar secara acak dengan penggantian dari satu set titik data (misalnya bootstrap) (2) Saling menukar label pada titik data saat melakukan signifikansi tes ( tes permutasi, juga disebut tes eksak, tes pengacakan, atau tes pengacakan ulang) (3) Memvalidasi model dengan menggunakan subset acak (bootstrap, validasi silang) (lihat wikipedia: metode resampling )
BOOTSTRAPING
" Bootstrapping adalah metode statistik untuk memperkirakan distribusi sampling dari estimator dengan sampling dengan penggantian dari sampel asli". Metode ini memberikan ukuran akurasi (didefinisikan dalam hal bias , varians , interval kepercayaan , kesalahan prediksi atau ukuran lain semacam itu) untuk estimasi sampel.
Ide dasar bootstrap adalah bahwa kesimpulan tentang populasi dari data sampel ( sampel → populasi ) dapat dimodelkan dengan melakukan resampling data sampel dan melakukan inferensi pada (sampel ulang → sampel). Karena populasi tidak diketahui, kesalahan sebenarnya dalam statistik sampel terhadap nilai populasinya tidak dapat diketahui. Dalam bootstrap-samples, 'populasi' sebenarnya adalah sampel, dan ini dikenal; maka kualitas kesimpulan dari data sampel ulang → sampel 'benar' dapat diukur. "lihat wikipedia
Yvar <- c(8,9,10,13,12, 14,18,12,8,9, 1,3,2,3,4)
#To generate a single bootstrap sample
sample(Yvar, replace = TRUE)
#generate 1000 bootstrap samples
boot <-list()
for (i in 1:1000)
boot[[i]] <- sample(Yvar,replace=TRUE)
Dalam masalah univariat, biasanya dapat diterima untuk menguji ulang pengamatan individu dengan penggantian ("case resampling"). Di sini kami mengubah sampel data dengan penggantian, dan ukuran sampel ulang harus sama dengan ukuran set data asli.
Dalam masalah regresi, resampling kasus mengacu pada skema sederhana resampling kasus individu - sering baris data yang ditetapkan dalam masalah regresi, variabel penjelas sering diperbaiki, atau setidaknya diamati dengan kontrol lebih dari variabel respon. Juga, kisaran variabel penjelas mendefinisikan informasi yang tersedia dari mereka. Oleh karena itu, untuk menguji ulang kasus berarti setiap sampel bootstrap akan kehilangan beberapa informasi (lihat Wikipedia ). Jadi akan logis untuk mengambil sampel baris data secara adil Yvar
.
Yvar <- c(8,9,10,13,12, 14,18,12,8,9, 1,3,2,3,4)
Xvar <- c(rep("A", 5), rep("B", 5), rep("C", 5))
mydf <- data.frame (Yvar, Xvar)
boot.samples <- list()
for(i in 1:10) {
b.samples.cases <- sample(length(Xvar), length(Xvar), replace=TRUE)
b.mydf <- mydf[b.samples.cases,]
boot.samples[[i]] <- b.mydf
}
str(boot.samples)
boot.samples[1]
Anda dapat melihat beberapa kasus berulang karena kami mengambil sampel dengan penggantian.
" Bootstrap parametrik - model parametrik dipasang pada data, sering kali dengan kemungkinan maksimum, dan sampel angka acak diambil dari model terpasang ini . Biasanya sampel yang diambil memiliki ukuran sampel yang sama dengan data asli. Kemudian kuantitas, atau perkiraan Yang menarik, dihitung dari data ini. Proses pengambilan sampel ini diulang berkali-kali seperti pada metode bootstrap lainnya. Penggunaan model parametrik pada tahap sampling metodologi bootstrap mengarah ke prosedur yang berbeda dari yang diperoleh dengan menerapkan teori statistik dasar. untuk inferensi untuk model yang sama. "(lihat Wikipedia ). Berikut ini adalah bootstrap parametrik dengan asumsi distribusi normal dengan parameter mean dan standar deviasi.
Yvar <- c(8,9,10,13,12, 14,18,12,8,9, 1,3,2,3,4)
# parameters for Yvar
mean.y <- mean(Yvar)
sd.y <- sd(Yvar)
#To generate a single bootstrap sample with assumed normal distribution (mean, sd)
rnorm(length(Yvar), mean.y, sd.y)
#generate 1000 bootstrap samples
boot <-list()
for (i in 1:1000)
boot[[i]] <- rnorm(length(Yvar), mean.y, sd.y)
Ada varian lain dari bootstrap, silakan baca halaman wikipedia atau buku statis yang bagus tentang pemasangan kembali.
JACKNIFE
"Pengukur jackknife dari suatu parameter ditemukan dengan secara sistematis meninggalkan setiap pengamatan dari dataset dan menghitung estimasi dan kemudian menemukan rata-rata dari perhitungan ini. Diberikan sampel ukuran N, estimasi jackknife ditemukan dengan menggabungkan estimasi dari setiap N − 1
estimasi dalam sampel. " lihat: wikipedia Berikut ini menunjukkan cara jackknife Yvar
.
jackdf <- list()
jack <- numeric(length(Yvar)-1)
for (i in 1:length (Yvar)){
for (j in 1:length(Yvar)){
if(j < i){
jack[j] <- Yvar[j]
} else if(j > i) {
jack[j-1] <- Yvar[j]
}
}
jackdf[[i]] <- jack
}
jackdf
"bootstrap reguler dan jackknife, perkirakan variabilitas suatu statistik dari variabilitas statistik itu antara subsampel, daripada dari asumsi parametrik . Untuk jackknife yang lebih umum, jackknife pengamatan penghapusan-m, bootstrap dapat dilihat sebagai acak aproksimasi itu. Keduanya menghasilkan hasil numerik yang sama, itulah sebabnya masing-masing dapat dilihat sebagai aproksimasi yang lain. " Lihat pertanyaan ini di Bootstrap vs Jacknife.
UJI RANDOMISASI
"Dalam uji parametrik, kami secara acak mengambil sampel dari satu atau lebih populasi. Kami membuat asumsi tertentu tentang populasi tersebut, paling umum bahwa mereka terdistribusi normal dengan varian yang sama. Kami membuat hipotesis nol yang dibingkai dalam hal parameter, seringkali dalam bentuk m1 -m2 = 0. Kami menggunakan statistik sampel kami sebagai perkiraan parameter populasi yang sesuai, dan menghitung statistik uji (seperti saat tes). Misalnya: dalam uji t Student untuk perbedaan dalam cara ketika varians tidak diketahui, tetapi dianggap menjadi sama. Hipotesis yang menarik adalah bahwa H0: m1 = m2
. Salah satu hipotesis alternatif akan dinyatakan sebagai:HA: m1 < m2
. Diberikan dua sampel yang diambil dari populasi 1 dan 2, dengan asumsi bahwa ini adalah populasi yang terdistribusi normal dengan varian yang sama, dan bahwa sampel diambil secara independen dan acak dari setiap populasi, maka statistik yang distribusinya diketahui dapat dielaborasi untuk diuji H0
.
Salah satu cara untuk menghindari asumsi distribusi ini adalah pendekatan yang sekarang disebut statistik non - parametrik, peringkat - urutan, peringkat - suka, dan bebas - distribusi. Statistik bebas distribusi ini biasanya dikritik karena kurang "efisien" daripada tes analog berdasarkan asumsi populasi terdistribusi secara normal.
Pendekatan alternatif lain adalah pendekatan pengacakan - "proses penetapan peringkat secara acak untuk pengamatan terlepas dari pengetahuan seseorang yang sampelnya adalah anggota. Tes pengacakan memanfaatkan prosedur semacam itu, tetapi melakukannya dengan beroperasi pada pengamatan daripada gabungan pemeringkatan pengamatan. Karena alasan ini, distribusi statistik analog (jumlah pengamatan dalam satu sampel) tidak dapat dengan mudah ditabulasikan, meskipun secara teoritis dimungkinkan untuk menyebutkan distribusi semacam itu "( lihat )
Tes pengacakan berbeda dari tes parametrik dalam hampir setiap hal. (1) Tidak ada persyaratan bahwa kami memiliki sampel acak dari satu atau lebih populasi — bahkan kami biasanya tidak mengambil sampel secara acak. (2) Kami jarang berpikir dalam hal populasi dari mana data berasal, dan tidak perlu berasumsi apa pun tentang normalitas atau homoseksualitas (3) Hipotesis nol kami tidak ada hubungannya dengan parameter, tetapi diucapkan agak samar-samar, seperti, misalnya, hipotesis bahwa perlakuan tidak berpengaruh pada kinerja peserta. (4) Karena kami tidak peduli dengan populasi, kami tidak peduli dengan memperkirakan (atau bahkan menguji) karakteristik populasi tersebut (5) Kami menghitung beberapa semacam statistik uji, namun kami tidak membandingkan statistik itu dengan distribusi yang diajukan. Sebagai gantinya, kami membandingkannya dengan hasil yang kami peroleh ketika kami berulang kali mengacak data di seluruh kelompok, dan menghitung statistik yang sesuai untuk setiap pengacakan. (6) Bahkan lebih dari tes parametrik, tes pengacakan menekankan pentingnya penugasan acak peserta untuk perawatan. "lihat .
Jenis uji pengacakan yang sangat populer adalah uji permutasi. Jika ukuran sampel kami adalah 12 dan 5, permutasi total yang mungkin adalah C(12,5) = 792
. Jika ukuran sampel kami 10 dan 15 maka lebih dari 3,2 juta pengaturan akan mungkin. Ini adalah tantangan komputasi: Lalu bagaimana? Sampel . Ketika alam semesta dari pengaturan yang mungkin terlalu besar untuk disebutkan mengapa tidak mengambil sampel pengaturan dari alam semesta ini secara independen dan acak? Distribusi statistik uji pada seri sampel ini kemudian dapat ditabulasi, rata-rata dan variansnya dihitung, dan tingkat kesalahan yang terkait dengan perkiraan uji hipotesis.
UJI PERMUTASI
Menurut wikipedia "Tes permutasi (juga disebut uji pengacakan , uji pengacakan ulang , atau tes eksak ) adalah jenis uji signifikansi statistik di mana distribusi statistik uji di bawah hipotesis nol diperoleh dengan menghitung semua nilai yang mungkin dari statistik uji di bawah penataan label pada titik data yang diamati. Tes permutasi ada untuk setiap statistik uji, terlepas dari apakah distribusinya diketahui atau tidak. Dengan demikian, kita selalu bebas memilih statistik yang paling membedakan antara hipotesis dan alternatif dan yang meminimalkan kerugian. "
Perbedaan antara permutasi dan bootstrap adalah bahwa sampel bootstraps dengan penggantian, dan sampel permutasi tanpa penggantian . Dalam kedua kasus, urutan waktu pengamatan hilang dan karenanya pengelompokan volatilitas hilang - dengan demikian memastikan bahwa sampel berada di bawah hipotesis nol dari pengelompokan volatilitas.
Permutasi selalu memiliki semua pengamatan yang sama, jadi mereka lebih seperti data asli dari sampel bootstrap. Harapannya adalah bahwa tes permutasi harus lebih sensitif daripada tes bootstrap. Permutasi merusak pengelompokan volatilitas tetapi tidak menambahkan variabilitas lainnya .
Lihat pertanyaan tentang permutasi vs bootstrap - "Tes permutasi terbaik untuk menguji hipotesis dan bootstrap yang terbaik untuk memperkirakan interval kepercayaan ".
Jadi untuk melakukan permutasi dalam hal ini kita bisa mengubah replace = FALSE
contoh bootstrap di atas.
Yvar <- c(8,9,10,13,12, 14,18,12,8,9, 1,3,2,3,4)
#generate 1000 bootstrap samples
permutes <-list()
for (i in 1:1000)
permutes[[i]] <- sample(Yvar,replace=FALSE)
Dalam hal lebih dari satu variabel, hanya memetik baris dan mengacak ulang urutan tidak akan membuat perbedaan karena data akan tetap sama. Jadi kami merombak variabel y. Sesuatu yang telah Anda lakukan, tetapi saya tidak berpikir kita tidak perlu perombakan ganda dari keduanya x
dan y variables
(seperti yang telah Anda lakukan).
Yvar <- c(8,9,10,13,12, 14,18,12,8,9, 1,3,2,3,4)
Xvar <- c(rep("A", 5), rep("B", 5), rep("C", 5))
mydf <- data.frame (Yvar, Xvar)
permt.samples <- list()
for(i in 1:10) {
t.yvar <- Yvar[ sample(length(Yvar), length(Yvar), replace=FALSE) ]
b.df <- data.frame (Xvar, t.yvar)
permt.samples[[i]] <- b.df
}
str(permt.samples)
permt.samples[1]
METODE MONTE CARLO
"Metode Monte Carlo (atau percobaan Monte Carlo) adalah kelas luas dari algoritma komputasi yang bergantung pada pengambilan sampel acak berulang untuk mendapatkan hasil numerik; biasanya seseorang menjalankan simulasi berkali-kali untuk mendapatkan distribusi entitas probabilistik yang tidak diketahui. Nama tersebut datang dari kemiripan teknik dengan tindakan bermain dan merekam hasil di kasino judi nyata. "lihat Wikipedia
"Dalam statistik terapan, metode Monte Carlo umumnya digunakan untuk dua tujuan:
(1) Untuk membandingkan statistik yang bersaing untuk sampel kecil dalam kondisi data realistis. Meskipun Tipe I kesalahan dan sifat kekuatan statistik dapat dihitung untuk data yang diambil dari distribusi teoritis klasik (misalnya, kurva normal, distribusi Cauchy) untuk kondisi asimptotik (yaitu, ukuran sampel yang tak terbatas dan efek perawatan yang sangat kecil), data nyata sering dilakukan tidak memiliki distribusi seperti itu.
(2) Untuk memberikan implementasi tes hipotesis yang lebih efisien daripada tes yang tepat seperti tes permutasi (yang sering tidak mungkin untuk dihitung) sementara lebih akurat daripada nilai-nilai kritis untuk distribusi asimptotik.
Metode Monte Carlo juga merupakan kompromi antara perkiraan pengacakan dan uji permutasi . Sebuah uji pengacakan perkiraan berdasarkan pada subset yang ditentukan dari semua permutasi (yang mencakup rumah tangga berpotensi besar yang permutasi telah dipertimbangkan). Pendekatan Monte Carlo didasarkan pada sejumlah tertentu dari permutasi yang ditarik secara acak ( bertukar kehilangan kecil dalam presisi jika permutasi digambar dua kali - atau lebih sering - untuk efisiensi tidak harus melacak permutasi yang telah dipilih ). "
Baik tes MC dan Permutasi kadang-kadang secara kolektif disebut tes pengacakan . Perbedaannya adalah di MC kita sampel sampel permutasi, bukan menggunakan semua kombinasi yang mungkin lihat .
VALIDASI SILANG
Gagasan di luar validasi silang adalah bahwa model harus diuji dengan data yang tidak digunakan agar sesuai dengan model. Validasi silang mungkin paling sering digunakan dalam konteks prediksi .
"Validasi silang adalah metode statistik untuk memvalidasi model prediktif. Himpunan-himpunan data digunakan untuk digunakan sebagai set validasi ; model sesuai dengan data yang tersisa (set pelatihan) dan digunakan untuk memprediksi set validasi. Rata-rata kualitas prediksi di set validasi menghasilkan ukuran keseluruhan dari akurasi prediksi.
Salah satu bentuk validasi silang meninggalkan pengamatan tunggal pada satu waktu; ini mirip dengan pisau lipat. Lain, cross-validasi K-fold, membagi data menjadi himpunan bagian K; masing-masing diberikan secara bergantian sebagai set validasi. "lihat Wikipedia . Validasi silang biasanya dilakukan dengan data kuantitatif. Anda dapat mengonversi kualitatif (data faktor) Anda menjadi kuantitatif entah bagaimana agar sesuai dengan model linier dan menguji model ini. Berikut ini sederhana strategi bertahan di mana 50% data digunakan untuk prediksi model sedangkan sisanya digunakan untuk pengujian. Mari kita asumsikan Xvar
juga variabel kuantitatif.
Yvar <- c(8,9,10,13,12, 14,18,12,8,9, 1,3,2,3,4)
Xvar <- c(rep(1, 5), rep(2, 5), rep(3, 5))
mydf <- data.frame (Yvar, Xvar)
training.id <- sample(1:nrow(mydf), round(nrow(mydf)/2,0), replace = FALSE)
test.id <- setdiff(1:nrow(mydf), training.id)
# training dataset
mydf.train <- mydf[training.id]
#testing dataset
mydf.test <- mydf[test.id]
Tidak seperti tes bootstrap dan permutasi, dataset validasi silang untuk pelatihan dan pengujian berbeda. Gambar berikut menunjukkan ringkasan resampling dalam berbagai metode.
Semoga ini bisa membantu sedikit.