Kolmogorov-Smirnov dengan data diskrit: Apa penggunaan yang tepat dari dgof :: ks.test di R?


23

Pertanyaan pemula:

Saya ingin menguji apakah dua set data diskrit berasal dari distribusi yang sama. Tes Kolmogorov-Smirnov disarankan kepada saya.

Conover ( Statistik Nonparametrik Praktis , 3d) tampaknya mengatakan bahwa Tes Kolmogorov-Smirnov dapat digunakan untuk tujuan ini, tetapi perilakunya "konservatif" dengan distribusi diskrit, dan saya tidak yakin apa artinya di sini.

Komentar DavidR pada pertanyaan lain mengatakan "... Anda masih dapat membuat tes level α berdasarkan statistik KS, tetapi Anda harus menemukan beberapa metode lain untuk mendapatkan nilai kritis, misalnya dengan simulasi."

Versi ks.test () dalam paket dgof R ( artikel , cran ) menambahkan beberapa kemampuan yang tidak ada dalam versi default ks.test () dalam paket statistik. Antara lain, dgof :: ks.test termasuk parameter ini:

simulate.p.value: logika yang menunjukkan apakah akan menghitung nilai-p oleh simulasi Monte Carlo, hanya untuk uji good-of-fit diskrit.

Apakah tujuan simulate.p.value = T untuk mencapai apa yang disarankan DavidR?

Bahkan jika ya, saya tidak yakin apakah saya benar-benar dapat menggunakan dgof :: ks.test untuk pengujian dua sampel. Sepertinya itu hanya menyediakan tes dua sampel untuk distribusi kontinu:

Jika y adalah numerik, uji dua sampel dari hipotesis nol yang dilakukan x dan y diambil dari distribusi kontinu yang sama dilakukan.

Atau, y dapat berupa string karakter yang menamai fungsi distribusi kontinu (kumulatif) (atau fungsi semacam itu), atau fungsi ecdf (atau objek class stepfun) yang memberikan distribusi diskrit. Dalam kasus ini, uji satu sampel dilakukan dari nol bahwa fungsi distribusi yang dihasilkan x adalah distribusi y ....

(Detail latar belakang: Tegasnya, distribusi saya yang mendasarinya adalah kontinu, tetapi data cenderung sangat dekat dengan beberapa poin. Setiap titik adalah hasil simulasi, dan merupakan rata-rata 10 atau 20 bilangan real antara -1 dan 1. Pada akhir simulasi, angka-angka itu hampir selalu sangat dekat dengan 0,9 atau -9. Dengan demikian klaster berarti di sekitar beberapa nilai, dan saya memperlakukan mereka sebagai diskrit. Simulasi ini kompleks, dan saya tidak punya alasan untuk berpikir bahwa data mengikuti distribusi yang terkenal.)

Nasihat?


Saya baru saja memperhatikan komentar Dr G di sini yang menunjukkan bahwa ks.boot adalah apa yang saya butuhkan, tetapi saya masih bertanya-tanya apakah opsi simulasi dgof :: ks.test akan berfungsi, dan apa arti "konveratif".
Mars

Jawaban:


16

Ini adalah jawaban untuk ekstensi @jbrucks (tetapi juga menjawab yang asli).

Satu tes umum apakah 2 sampel berasal dari populasi / distribusi yang sama atau jika ada perbedaan adalah tes permutasi. Pilih statistik yang diminati, ini bisa menjadi statistik uji KS atau perbedaan rata-rata atau perbedaan median atau rasio varian atau ... (apa pun yang paling berarti untuk pertanyaan Anda, Anda dapat melakukan simulasi dalam kondisi yang memungkinkan untuk melihat statistik mana yang memberi Anda hasil terbaik) dan hitung statistik itu pada 2 sampel asli. Kemudian Anda secara acak mengubah pengamatan antara kelompok (kelompok semua poin data menjadi satu kelompok besar, kemudian secara acak membaginya menjadi 2 kelompok dengan ukuran yang sama dengan sampel asli) dan menghitung statistik bunga pada sampel yang diijinkan. Ulangi ini beberapa kali, distribusi statistik sampel membentuk distribusi nol Anda dan Anda membandingkan statistik asli dengan distribusi ini untuk membentuk tes. Perhatikan bahwa hipotesis nol adalah bahwa distribusinya identik, bukan hanya berarti / median / dll. adalah sama.

Jika Anda tidak ingin berasumsi bahwa distribusinya sama tetapi ingin menguji perbedaan dalam mean / median / dll. maka Anda bisa melakukan bootstrap.

Jika Anda tahu dari mana distribusi data berasal (atau setidaknya bersedia untuk menganggap distribusi) maka Anda dapat melakukan tes rasio kemiripan pada kesetaraan parameter (bandingkan model dengan satu set parameter tunggal dari kedua kelompok ke model dengan set parameter yang terpisah). Tes rasio kemungkinan biasanya menggunakan distribusi chi-kuadrat yang baik-baik saja dalam banyak kasus (asimtotik), tetapi jika Anda menggunakan ukuran sampel kecil atau menguji parameter di dekat batasnya (varian menjadi 0 misalnya) maka perkiraan mungkin tidak bagus, Anda bisa lagi menggunakan tes permutasi untuk mendapatkan distribusi nol yang lebih baik.

Semua tes ini bekerja pada distribusi kontinu atau diskrit. Anda juga harus memasukkan beberapa ukuran daya atau interval kepercayaan untuk menunjukkan jumlah ketidakpastian, kurangnya signifikansi bisa karena daya rendah atau perbedaan yang signifikan secara statistik masih bisa berarti praktis.


Greg, terima kasih. Ini adalah jawaban umum yang sangat membantu untuk pertanyaan jbruck, dan ini juga membantu saya. (Pertanyaan saya lebih spesifik. Mungkin terlalu sempit untuk mengharapkan jawaban.)
Mars

1
@ Mars, saya pikir jawaban saya tidak langsung menjawab setidaknya sebagian dari Anda. Tes KS reguler mengasumsikan tidak ada ikatan dan menggunakan model teoritis untuk statistik uji di bawah hipotesis nol. Dengan ikatan model teoretis tidak tepat tetapi Anda dapat menggunakan simulasi (tes permutasi, mensimulasikan dari null dist, dll.) Untuk menghitung distribusi nol dan karena itu mendapatkan nilai-p, dll. Saya kira itulah yang disimulasikan Argumen yang Anda sebutkan tidak.
Greg Snow
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.